エクセルマクロ・VBA達人養成塾小川です。
発展編終わった人向けの小ネタ。
A列のすべてのデータを消すマクロ。以下のどれでも結果は同じになります。
Sub DeleteLineA() Columns("A:A").ClearContents Range("A1:A" & Range("A65536").End(xlUp).Row).ClearContents Range(Range("A1"), Range("A65536").End(xlUp)).ClearContents Range("A1", "A" & Range("A65536").End(xlUp).Row).ClearContents Range("A1", Range("A65536").End(xlUp)).ClearContents Range(Range("A1"), "A" & Range("A65536").End(xlUp).Row).ClearContents End Sub
ポイントは…。
Range(arg1, arg2) 型では、 arg1, arg2 にセル(オブジェクト)を指定することもできるし、セル番地(文字列)を指定することもできる、というところ。
「片方は文字列、片方はオブジェクト」なんて無節操きわまりない引数指定も可能。
もっとも、個人的には、こんな節操のないオーバーロードを実装するメソッドがExcel VBAにあるのはどうかと思います。
以上。
手元に自信ない人は自分でテストケースを作れなくて何を言っているのか分かりにくいと思われるネタ。
「じっと見ていても訳が分からない」、「自分で試しに書いても構文エラーになって実行できない」という人は、VBA以前に手元を改善。今日から毎日、特打を20分 × 5日やってください。これは義務です。