この記事ではエクセルVBAの基本として“セルの操作”について解説していきます。
セルの操作はエクセルVBAでは最も使うと言ってもいいほどよく使います。
そして、最初につまずくポイントでもあります。
では行きます。
●セルとは
エクセルで言う“セル”とは、あのマス目のことです。
あのマス目一つ一つのことを“セル”と言います。
セルに数字を入れて表としたり、文章を入力することもできます。
関数を入れて計算させたり、色をつけることも。
VBAではそんなセルのことを、Rangeオブジェクト、またはCellsオブジェクトで表します。
●RangeオブジェクトとCellsオブジェクトの違い
RangeオブジェクトとCellsオブジェクトの違いは
・Rangeオブジェクト:アドレスを文字列で表します。
・Cellsオブジェクト:アドレスを数値で表します。
もし、エクセルの一番左上のセルを表す場合、
RangeオブジェクトではRange(“A1”)
CellsオブジェクトではCells(1,1)
と表します。
Rangeオブジェクトは列のアルファベットと行数。
Cellsオブジェクトは(行、列)の数値
となっています。
Rangeオブジェクトではアドレスをダブルクォーテーションで囲っていることに注意してください。
Rangeと Cellsではどちらをつかっても問題ありませんが、
Rangeの方は固定されたアドレスを指定するときに便利で、Cellsは行の位置と列の位置を数値で指定するので、for文といった繰り返し処理では使いやすいです。
●セルの指定方法
セルを選択する場合は、Selectメソッドまたは、Activateメソッドを使用します。
基本結果は同じなので、どちらを使用してもOKです。
例として、
VBAでA列の1行目を選択したい場合は,
Range(“A1”).Select
Cells(1,1).Select
となります。
B列の1行目を選択したい場合は,
Range(“B1”).Select
Cells(1,2).Select
C列の2行目を選択したい場合は,
Range(“C2”).Select
Cells(2,3).Select
となります。
では、A1~B3までを選択したい場合はどうでしょうか?
その場合はRangeオブジェクトが得意で、
Range(“A1:B3”).Select
と間に”コロン”をつけて表示します。
A1とB3とC5と飛び飛びで選択したい場合は
Range(“A1,B3,C5”).Select
と、”カンマ”をつけて表示します。
●特殊なセルの指定方法
現在、選択しているセルは
ActiveCell.Select
と“ActiveCell”を使います。
空白セルまでの連続したセル範囲は
ActiveCell.CurrentRegion.Select
と”CurrentRegion”を使います。
●Valueプロパティ
セルに入っている値はValueプロパティで表します。
セルA1に数値120を入力したい場合は、
Range(“A1”).Value
= 120
となります。
●Formulaプロパティ
セルに数式を代入したい場合はFormulaで表します。
セルA2にセルA1(120)+100と入力したい場合は、
Range(“A2”). Formula
= “A1+100”
となり、セルA2には220が表示されます。
●Deleteメソッド
Deleteメソッドは指定したセルを削除します。
Range("c3").
Delete xlToLeft
とすると、セルC3を削除し、右に詰めます。
左につめたいときはxlToLeft
上につめたいときはxlToUp
となります。
●ClearContentsメソッド
ClearContentsメソッドはDeleteメソッドがセルを消すのに対し、セルに入力されている値や数式のみを削除します。書式などは残ります。
Range("c3").
ClearContents
でセルC3に入っている値を削除します。
●Copyメソッド
コピーしたいセル.Copy
コピー先のセル
で値をコピーすることができます。
Range("A1").Copy
Range("B2")
とすると、セルA1がセルB2にコピーされます。
●まとめ
この記事ではエクセルVBAの基本として“セルの操作”について解説しました。
セルの操作はエクセルVBAでは最も使うと言ってもいいほどよく使います。
セルの操作を覚えるだけでも、エクセルVBAで出来ることが一気に増えます。
しかし、VBAの勉強を始めようとしても、この段階でつまずく人が多いです。
まず初めに、エクセルVBAでセルの操作を使いこなしてみましょう。
0 件のコメント:
コメントを投稿