定数の使い方

定数って何?



定数とは変数と同じく数値や文字列を別の文字に割り当てられる仕組みだよ!ただし、文字通り定められた値なので変数と違い、マクロの途中で値を変更することは出来ないよ!具体的な例と一緒に勉強しよう!
定数とは、変数と同じようにユーザー側で独自に定義することが出来ます。
定数を宣言するときはConstを使います。
Constステートメントのルールは次の通りになります。
Const 定数名 As 定数の型 = 値
変数の時と違いDimステートメントではありません。型に関しては変数の時と同じと考えてください。
実際のコードと一緒に見ていきましょう。
必ず、「定数」という空のワークシートを作成してから下記プロシージャを実行するようにしてください。
定数の働きを具体的にみるためにFor文という繰り返し処理を使っています。For文に関しては別記事で詳しく説明します。
Sub Teisu()
Const MIN_COL As Long = 2
Const MAX_COL As Long = 10
Const MIN_ROW As Long = 2
Const MAX_ROW As Long = 10
Const MONOO As String = "ものお"
Dim i As Long
Dim j As Long
MsgBox MIN_COL
MsgBox MAX_COL
MsgBox MIN_ROW
MsgBox MAX_ROW
MsgBox MONOO
'"定数"シートをアクティブにします
Worksheets("定数").Activate
'For文で列方向2から10まで繰り返し
For j = MIN_COL To MAX_COL
'For文で行方向2から10まで繰り返し
For i = MIN_ROW To MAX_ROW
Cells(i, j) = 1
Next i
Next j
End Sub
さっそく実行して、MsgBoxで各定数の値をみていきましょう。
Const MIN_COL As Long = 2


Const MAX_COL As Long = 10


Const MIN_ROW As Long = 2


Const MAX_ROW As Long = 10


Const MONOO As String = "ものお"


上記の通り、宣言時の値が表示されましたね。数値ではなく文字列も使用可能です。
定数は変数の宣言とは違い、宣言時に必ず値を入れる必要がありますので注意しましょう。
次に定数の実用例としてワークシート「定数」に1という値を埋めるコードを作りました。
まず、26行目で列方向に2~10まで+1しながら繰り返し、29行目に行方向に2~10まで+1しながら繰り返し31行目で対象セルに1を代入しています。


定数の良いところはこのようなケースで簡単に数値を変更出来る点です。試しにMAX_COLとMAX_ROWの値を10から5に変更してみましょう。
Const MAX_COL As Long = 5
Const MAX_ROW As Long = 5
一度「定数」シートの値は削除後実行してください。
下記図のようになりましたね。このようにマクロの中で何度も使う数値に定数を定義しておくと、毎処理で数値を変更する必要がなく、定数の定義を変更すればすべての使用箇所で同じ定数を使うことが出来ます。


定数は、マクロの処理数が多くなり複雑になるほどその威力を発揮します。
最後におすすめの定数の書き方ですが、ぜひ大文字で統一してください。
こうすることで、大文字=定数と一目で理解することができ、マクロの可読性が上がります。
まとめ
今回は定数について説明しました。
変数と似ていますが、マクロで変更する必要がなく、度々使用する場合はぜひ定数宣言してマクロのメンテナンスのしやすさを向上させましょう。
コメント