【Excelマクロ】宣言 Dim

Excelマクロ

変数を宣言してエラーを防ぐ

VBAで変数を利用する際、特に何もしなくても使うことができます。

しかし、使うことはできますが、意図しないエラーや不具合を防ぐために、あえて変数の宣言を行うことをお勧めします。

変数の宣言を行うことで、「想定外の値が入る」「入力ミス」といった間違いに気づきやすくなり、コードの誤りを事前に防ぐことができます。

今回は、変数の宣言方法について、次の2つの方法を解説します。

  1. Dimだけで宣言する方法
  2. Option ExplicitとDimを併用する方法

1. Dimだけで宣言する方法

変数の宣言の基本は、Dim ステートメントを使うことです。書き方は次の通りです。

Dim 変数名 As 型

こうすることで、「この変数を使います!」と宣言をすることができます。

そこにプラスして、は、変数にどのような値を入れるかを指定します。

型を入れるメリットは、その変数に入る内容を制限することができ、例えば、その変数には「数字しか入らない」とか、「文字だけ入れていい」とかそういう縛りを設けることができます。

次に主な型をいくつか紹介します。

  • 整数型(Integer, Long)
    • Integer:-32,768〜32,767の数値を入れることができます。
    • Long:-2,147,483,648〜2,147,483,647の数値を入れることができます(大きい数値用)。
  • 文字列型(String)
    • 文字列(テキストデータ)を入れることができます。

使用例

Dim i As Integer  ' 整数型の変数iを宣言
Dim sheet_name As String  ' 文字列型の変数sheet_nameを宣言

上記のように宣言することで、それぞれの変数には指定した型以外の値を代入できなくなります。

例:エラーの発生

Dim i As Integer
i = 40000  ' Integerの範囲を超えるためエラー

メリット:
例のように、変数に型を指定することで、想定外のデータが入ることを防ぎます。

2. Option ExplicitとDimを併用する方法

Option Explicit を使用することで、変数の利用の制限をすることができます。

Option Explicitとは?

Option Explicitを入力すると、すべての変数を宣言しなければエラーになります。

これにより、変数名の入力ミスや宣言していない変数を使用した場合に、すぐに問題に気づくことができます。

Option Explicitの使い方

Option Explicit は、VBEのコードモジュール(コードを書くところ)の一番上に記載します。

Option Explicit

Sub Sample()
    Dim sheet_name As String  ' 変数を宣言
    shet_name = ActiveSheet.Name  ' 入力ミスした変数名(エラーになる)
End Sub

上記の例では、変数名を「sheet_name」とする予定が「shet_name」になっています(eが1文字抜けている)。

この場合、shet_name は宣言されていないため、エラーが発生することで、入力時には「sheet」と打っているつもりでも、機械的に確認をしてくれ、変数名が間違っていることを教えてくれるわけです。

Option Explicitを自動的に適用する方法

この「Option Explicit」ですが、上記でご説明した通り、直接入力することもできますが、初期設定として自動的に適用させる方法があります。

  1. VBEを開きます。
  2. メニューから 「ツール」→「オプション」を選択。
  3. 「全般」タブで「変数の宣言を強制する」にチェックを入れます。

これで新しいコードモジュールには自動的に「Option Explicit」が挿入されるようになります。

まとめ

  • Dimステートメント を使って、変数に入る値の型を制限することでエラーを防げます。
  • Option Explicit を使用することで、宣言していない変数の使用を防ぎ、入力ミスによるエラーを回避できます。
  • 自動的にOption Explicitを有効化する設定 を行うと、最初から制限されるため、コードを書く際のミスを未然に防げます。

おすすめポイント
変数を利用する際には、必ず宣言を行うことを心がけましょう。これにより、想定外の動作やバグを減らし、よりミスの少ないマクロを作成できます。

コメント