前回の記事:Excel VBA スタンダード試験対策1 プロシージャ
前回に引き続き、自分の試験対策として公式テキストを参考にExcel VBAの基本をまとめる。
公式テキストを購入すると学習用のデータをダウンロードすることができる。
テキストだけでは実際の試験問題の感覚を掴みづらいという問題があるが、
付属の模擬問題を理解できるまで解いておけば本番の試験でも役に立つ。
配列
変数には1つの値しか代入することはできない。
1つの値を代入した後に別の値を代入した場合は、後から代入された値が上書きされ、先に代入された値は消えてしまう。
しかし、配列を用いることで複数の値を代入することができる。
配列の宣言は以下のように行う。
1 2 3 4 5 6 7 8 9 10 |
Sub Test() '次に記述するA(4)の4は要素の上限を示す Dim A(4) As Long '配列は1ではなく0からスタートするため、要素の数は5つになる。 A(0) = 3 A(1) = 2 A(2) = 5 A(3) = 1 A(4) = 9 End Sub |
Split関数で配列を返す
Split関数を用いることで、文字列を指定した文字で区切り、配列として返すことができる。
1 |
Split("テ,ス,ト", ",") |
この場合は「テ,ス,ト」という文字列を「,」で区切って配列にして返している。
1 2 3 4 |
Sub Test() Dim X As Variant X = Split("テ,ス,ト", ",") End Sub |
このコードではXの中に「,」で区切られた文字列が各要素としてVariant型で格納される。
具体的にはX(0)は「テ」、X(1)は「ス」、X(2)は「ト」となる。
動的配列
配列を宣言することで複数の値を変数に格納することができる。
しかし、格納する値の数がいくつあるのかわからない場合がある。
その際は、要素の数を指定せずに配列を宣言することができる。
この配列を動的配列と呼ぶ。
1 2 3 4 |
Sub Test() Dim X() As Long ReDim X(3) End Sub |
動的配列の宣言時は要素の数を指定せず、 () の中を空欄にして宣言する。
その後、ReDimを用いて要素の数を指定する。
この時、ReDimで要素数を変更すると格納されていた値が消えてしまう点に注意する必要がある。
事前に代入されていた値を消したくない場合には動的配列を宣言し、要素を指定する際に以下のように記述すれば良い。
1 |
ReDim Preserve X (3) |
ReDimで要素の数を指定するときに Preserve を含めると先に代入していた値をそのまま残すことができる。
オブジェクト変数
変数には数値や文字列を格納することができるが、
そのほかにもセル、ワークシート、ブック(エクセルファイル)そのものを格納することもでき、
これらを格納する変数をオブジェクト変数と呼ぶ。
1 2 3 4 5 6 7 |
Sub Test() Dim X As Worksheet, Y As Workbook, Z As Range Set X = ActiveSheet Set Y = Workbooks("Test1.xlsx") Set Z = Range("B4") Set X = Nothing End Sub |
オブジェクト変数を宣言するときには、セル、シート、ブックのそれぞれの型があるので適切な型を指定する必要がある。もしくはObjectと呼ばれるすべてのObjectを表すものを利用する。
Nothingはオブジェクトヘンスを破棄する際に宣言する。
また、オブジェクト変数を格納するときにはSetを利用する。
文字列の結合
文字列を結合する際には、& という記号を用いる。
1 2 3 4 |
Sub Test() Dim X As String X = "テ"&"ス"&"ト" End Sub |
このように、ダブルクォーテーション「””」で文字列を囲み、さらにそれらを&で繋げることで文字列を結合することができる。
次回:ステートメント
コメント