INDEX
Optionの概要
コードの動作を設定する VBAの予約語 | ||
Option 概要 Option ステートメントは、VBAのコードの動作を制御するために使用されます。コードの冒頭に記述し、変数の宣言の強制や比較方法の指定などを行います。 わかりやすく説明 VBAのコードのルールを決める命令。 |
||
|
Optionステートメントの種類
VBAで使用できる主なOptionステートメントは以下の通りです。
ステートメント | 説明 |
---|---|
Option Explicit |
変数の宣言を必須にする(宣言していない変数を使用するとエラーになる) |
Option Compare Binary |
文字列の比較をバイナリモード(大文字小文字を区別)で行う |
Option Compare Text |
文字列の比較をテキストモード(大文字小文字を区別しない)で行う |
Option Base 0 |
配列のデフォルトのインデックスを0から開始する(デフォルト) |
Option Base 1 |
配列のデフォルトのインデックスを1から開始する |
Option Explicitの使用例
Option Explicit
を指定すると、すべての変数を宣言する必要があります。
Option Explicit
Sub TestExplicit()
Dim x As Integer
x = 10
y = 20 ' 変数yが宣言されていないためエラー
Debug.Print x
End Sub
解説:
Option Explicit
を記述すると、すべての変数をDim
などで宣言しなければならない。- 上記の例では、
y = 20
の部分で「変数が宣言されていません」というエラーが発生する。
Option Compareの使用例
Option Compare
を使うと、文字列比較のルールを変更できます。
Option Compare Text
Sub TestCompare()
Dim str1 As String, str2 As String
str1 = "Hello"
str2 = "hello"
If str1 = str2 Then
Debug.Print "一致しました"
Else
Debug.Print "一致しません"
End If
End Sub
解説:
Option Compare Text
を指定すると、大文字小文字を区別せずに文字列を比較する。- 上記の例では
"Hello"
と"hello"
を比較しても「一致しました」と表示される。
Option Baseの使用例
Option Base
を使うと、配列のデフォルトのインデックスを変更できます。
Option Base 1
Sub TestArray()
Dim arr(5) As Integer
Dim i As Integer
For i = 1 To 5
arr(i) = i * 10
Debug.Print arr(i)
Next i
End Sub
解説:
Option Base 1
を指定すると、配列のインデックスが1から始まる。- デフォルト(
Option Base 0
)の場合、配列のインデックスは0から始まる。
Optionの注意事項
- Optionステートメントはモジュールの最上部に記述する: コードの途中で変更することはできない。
- Option Baseは1つのモジュールに1つだけ記述可能: 途中で変更することはできない。
- Option Explicitを使うと未定義の変数を防げる: 変数のスペルミスによるバグを減らせる。
よくある質問
- Q: Option Explicit を書かないとどうなりますか?
- A: 未宣言の変数を使用できるが、スペルミスによるバグが発生しやすくなる。
- Q: Option Base 1 を使うメリットは?
- A: Excelの行・列の番号と統一できるため、1から始まる配列が扱いやすくなる。
- Q: Option Compare Binary と Option Compare Text の違いは?
- A:
Binary
は大文字小文字を区別し、Text
は区別しない。
まとめ
- OptionステートメントはVBAのコードのルールを決める。
- 変数の宣言を強制するには
Option Explicit
を使う。 - 文字列の比較ルールを変更するには
Option Compare
を使う。 - 配列のインデックスを変更するには
Option Base
を使う。 - モジュールの最上部に記述し、コード全体の動作を統一する。