Option Explicitステートメント

<< エクセルVBAのIE制御に利用したステートメント一覧(VBAのIE制御入門) :前の記事

<< エクセルVBAのプログラムの制御構文(VBAの初心者入門) :前の記事

こちらは、エクセルVBAOption Explicitステートメントの解説になります。こちらは、モジュール内のすべての変数に対して、明示的な宣言を強制します。

また、ステートメントとは「命令文」と訳されるようにコンピュータに具体的な動作を指定する最小単位のプログラムです。主にマクロの挙動を制御する構文や文法を指します。通常は1行で完結する部分を指しますが、If~Thenなど複数行にまたがる部分を意味することもあります。

目次

Option Explicitステートメントとは

Option Explicitステートメントは、モジュール内のすべての変数に対して、明示的な宣言を強制します。するステートメントです。モジュールレベルで使用します。

Option Explicit

Option Explicit ステートメントを使う場合は、モジュール内のどのプロシージャよりも前に記述する必要があります。

モジュールで Option Explicit ステートメントを記述する場合、変数は、Dim、Private、Public、ReDim、Static などの各ステートメントで明示的に宣言する必要があります。宣言されていない変数名を使うと、コンパイル時にエラーが発生します。

Option Explicit ステートメントを使わない場合、Deftype ステートメントで既定のデータ型が指定されていないと、明示的に宣言されていない変数のデータ型は、すべてバリアント型 (Variant) になります。

Option Explicit ステートメントを利用して、既存の変数名の入力ミスや、変数の適用範囲 (スコープ) がわかりにくいコード内で変数名の競合を避けることができます。

エラーを表示させるOption Explicitステートメントのサンプルコード


Sub sample()

    Option Explicit Sheets("Sheet1")
    
        .Range("A1").Value = "エクセル"
        .Range("A2").Value = "VBA"
        .Range("A3").Value = "入門"
    
    End Option Explicit
    
End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

エクセルVBAのOption Explicitステートメントの結果

解説

sampleのSubステートメントには引数の設定はされていません。まず、Option Explicitステートメントのオブジェクト名に「Sheets("Sheet1")」を設定しました。これによりオブジェクト名を省略して記述できるようになりました。このように操作したオブジェクトを一度指定するだけで複数のプロパティの設定を行えます。

正しいOption Explicitステートメントのサンプルコード


Type Personal
    Name As String
    Age As Byte
End Type

Sub sample()

    Dim perA As Personal
    
    Option Explicit perA
    
        .Name = "鈴木"
        .Age = 20
        
        MsgBox "名前:" & .Name & ", 年齢:" & .Age
    
    End Option Explicit
    
End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

ユーザー定義型

解説

こちらのユーザー定義型を作成した事例です。ユーザー定義型名はPersonalで、名前の変数Nameに文字列型(String)、年齢の変数Ageにバイト型(Byte)を設定しています。

続いて、変数perAに作成したユーザー定義型のPersonalを宣言しています。これによりユーザー定義型「Personal」を利用できるようになりました。そしてOption Explicitステートメントのユーザー定義型名に「perA」を設定し、これによりユーザー定義型名を省略して記述できるようになりました。

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。

VBAのIE操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。

目次

VBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。