Excel VBAについて、よく確認することをまとめた記事です。
配列の宣言とFor Nextステートメント
- 配列の宣言
- 添字の上限値を指定する(要素数ではない)
- For Nextステートメント
- 変数counterとその初期値は省略できない
- ループ範囲は、初期値0以上~最終値9以下(counter<=9)
コード
Dim counter As Long
Dim lngArray(9) As Long '添字の上限値を指定する
For counter = 0 To 9
lngArray(counter) = counter
Debug.Print lngArray(counter); ';を付けると改行なしで出力される
Next counter
実行結果
0 1 2 3 4 5 6 7 8 9
C言語との比較
long counter; long lngArray[10]; /* 要素数を指定する */ for(counter=0 ; counter<=9 ; counter++){ lngArray[counter] = counter; printf(" %d ", lngArray[counter]); }
- 参考サイト
2種類の空文字列と既定の初期値
-
空文字列は2種類ある
- ""(長さ0の文字列)
- vbNullString(文字列型の変数の初期値)
-
空文字列はStrPtr()で区別出来る
- StrPtr(""):StrPtr()の戻り値はアドレス値となる
- StrPtr(vbNullString):StrPtr()の戻り値は0となる
変数は自動で初期化される
変数には既定の初期値が定められており、
変数を宣言すると自動で初期化される
型 初期値 Boolean FALSE Byte, Integer, Long, Single, Double 0 Currency 0 Data 1899/12/30 00:00:00 Object Nothing String vbNullString Variant Empty
エラーをクリアする
- エラーが発生していない時、Err.Numberは0
- エラーが発生すると、Err.Numberにエラー番号が格納される
- Errオブジェクトをクリアする2種類の方法
- Err.Clearを使う方法
- On Error Goto -1を使う方法
割り算の演算子
- 通常の割り算:/
-
7/2
(解答:3.5)
-
- 割り算の整数部を求める:\(半角¥マーク)
-
7\2
(解答:3)
-
- 割り算の余りを求める:Mod
-
7Mod2
(解答:1)
-
剰余演算のことを、Modulo(モジュロ)と呼ぶ。
剰余演算 - Wikipedia
Dir()関数の注意点
- フォルダのパスを指定する場合、定数
vbDirectory
の指定が必要- ファイルのパスを指定する場合は、省略可能
- ファイルやパスが見つからない場合、戻り値は
""
コード
If Dir("C:\...\folderName", vbDirectory) <> "" Then
Debug.Print "フォルダは存在します"
End If