ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

VBAの変数宣言

   

VBAの変数宣言について

変数を暗黙的に宣言する

エクセル VBA の場合、明示的に変数宣言せずに変数を使用すると、バリアント型(Variant)として暗黙的に変数宣言されます。
ただし、バリアント型の変数は、他のデータ型で宣言した変数よりもメモリを多く使用します。また、変数名の競合によるエラーや入力ミスによるエラーを起こすことを防ぐため通常は、変数を明示的に宣言します。

強制的に、変数を明示的に宣言する(その1)

モジュールの宣言セクションに Option Explicit ステートメントを指定するとモジュール内のすべての変数の明示的な宣言が強制されます。

Option Explicit ステートメント

この時、宣言されていない変数名やスペルミスした変数名が検出されるとコンパイル時にエラーが発生します。

explicitステートメント エラーメッセージ

強制的に、変数を明示的に宣言する(その2)

VBE(Visual Basic Editor)の [ツール] の [オプション] からも設定可能で、ここで設定すると、すべての新規モジュールに対して、Option Explicit ステートメントを自動的に追加します。

【以下 設定方法】
  1. [ツール] から [オプション] を選んでクリックします。
    option explicit 01

  2. [オプション] ダイアログボックスが表示されるので、[編集] タブの [変数の宣言を強制する] のチェックボックスにチェックを入れて「OK」ボタンをクリックします。
    option explicit_02

  3. 新しく、標準モジュールを追加してみると
    option explicit_03

  4. 自動的に、モジュールの宣言セクションに Option Explicit ステートメントが追加されます。
    option explicit_04

 - VBA基本 , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

日付時刻:年・月・日を取得(Year、Month、Day 関数)

日付から年・月・日を取得する関数 【書式】 date_year = Year ( …

対象のオブジェクトをクリアする(Clear メソッド)

Clear メソッド 対象となるオブジェクト全体をクリアします。Range オブ …

オートシェイプの種類を表す定数
オートシェイプの種類を表す定数(MsoAutoShapeType 列挙型)

MsoAutoShapeType 列挙型 オートシェイプオブジェクトの図形の種類 …

Timer 関数 使用例
日付時刻:経過時間を取得( Timer 関数 )

Timer 関数の使い方 【書式】 result = Timer () 【戻り値 …

ClearContents メソッド 例01
データをクリアする(ClearContents メソッド)

ClearContents メソッド 対象がセル範囲(Range オブジェクト) …

日付時刻:日付時刻データを計算( DateAdd 関数 )

DateAdd 関数(日付・時刻の値を加算・減算結果を取得) 【書式】 resu …

カレントフォルダの取得・設定(DefaultFilePath プロパティ)

DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …

IMEStatus 関数 例
IME の現在の状態を取得します(IMEStatus 関数)

IMEStatus 関数の使い方 【書式】 result = IMEStatus …

文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)

LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …

Randomize 関数 例1
乱数ジェネレータを初期化 (乱数系列を再設定) する(Randomize ステートメント)

Randomize ステートメントの使い方 Rnd 関数 を使用する前に使用しま …