VBA最初の一歩(その5)変数と宣言|Excel VBA |
変数とは一言で言えば、”箱”のようなものです。この箱の中にはさまざまなデータを格納することが出来ます。
X = 10
とすれば、変数Xには数値"10"が格納され・・・
MyName = "Excel"
とすると、変数MyNameには文字列”Excel”が格納されます。
プログラミングを行う上では、変数にどんなデータを格納するのかを明示するという原則があります。
”どんなデータ”(データの種類)を表すのがデータ型といわれるもので、代表的なデータ型をあげれば・・・
文字列型:String
数値型:Integer,Long,Single,Double・・・
オブジェクト型:Object(総称),Application,Workbook,Worksheet,Range,Shape・・・
バリアント型:Variant(あらゆるデータを格納できます)
などがあります。
宣言をする際には・・・
Dim X As String '文字列
Dim Y As Integer '整数型
Dim WB As Workbook 'ブック
Dim Rng As Range 'セル範囲
データの格納には・・・
X = "My Name is Excel"
Y = 10
Z = Y * 2 '他の変数との計算結果を代入
のように、右辺を左辺の変数に代入するという形をとりますが、ブック、シートなどのオブジェクト型の場合は代入の仕方が少し異なり、Set ステートメントというものを用います。
例えば・・・
[ブック]Set Wb = Workbooks("MyBook.xls")
Set Wb = ActiveWorkbook
[シート]
Set Sh = ActiveWokrbook.Worksheets("Sheet1")
Set Sh = Wb.Worksheets("Sheet1") 'ブックを参照する変数を用いた場合
Set Sh = Worksheets("sheet1") 'シート名による特定
Set Sh = Worksheets(1) 'インデックスによる特定
Set Sh = Sheet1 'コード名(オブジェクト名)による特定
[セル範囲]
Set Rng = Range("A1:A5")
Set Rng = ActiveSheet.Range("A1:A5")
Set Rng = Sh.Range("A1:A5") 'シートを参照する変数を用いた場合
このようにして、オブジェクトの名称やインデックスなどにより対象を特定し、Setステートメントを用いて変数に格納します(”オブジェトを参照する”といいます)。