【エクセルVBA】定数(Const)の使用方法と書き方

投稿者: | 2021年3月14日
excelアイコン

エクセルバージョン

マイクロソフト365

 

本日はエクセルの定数(Const)について解説していきたいと思います。

定数(Const)はVBAで修正が入った場合パラメーターを設定する際に非常に効果(視覚的に)がある、有意義ある機能なので、是非この機会に覚えちゃいましょう(^O^)

現場経験がない方は分からないかもですが、現場のプログラマーなら普通レベルで使用している、一般的な機能なので是非この機会にマスターしちゃいましょう!

それではいってみましょう!

 

変数と定数の違い

特徴

変数は途中で値を代入することができます。

定数は途中で値を代入することができません。

このような特徴があるので下記のサンプル例で試してみます。

 

変数の場合は実行途中に値を代入することが可能】

【結果】→ 1

 

定数の場合は実行途中に値を代入することが不可】

【結果】下記のようなエラーが出ます。

定数値変更エラー

 

どのような場面で使用するか

使用場面

・処理の途中で値が変わらない箇所。

・同じ使用用途の箇所がコードの中に複数ある場合。

このような時に定数が威力を発揮します。

 

定数の記述場所

モジュールと1番目のプロシージャの先頭の間に記述します。

定数記述場所

又は、

プロシージャ内にも記述できます。

 

定数の記述方法

定数記述例

【記述方法解説】

Const : Constステートメントで最初にConstと記述します。

COL : 定数名を記述(ここは自分で名前を決めます。英語大文字で記述するのが一般的です)

as Integer : 型を指定します。

1 : 値を指定します。

 

VBAサンプル

例えば下記のようなA列の数字をB列に修正して書き出したい場合、定数を使用すると時短と記述ミス防止ができます。

 

列の変更

A列のデータ

A列の書出しをB列に修正する場合、10か所のcellsのの1を、全て2に書き換えなくてはいけないので面倒だし時間がかかります。

 

定数を使用した場合

定数COLは1のA列です。

定数COLを2B列に変更で修正完了です。

下記のようにA列のデータをB列に書き出す場合、定数の値を1か所を➔2に変更するだけで、全てのcellsの列がB列に一瞬で変更ができるので、記述ミス防止にもなるし、大幅な時短が可能になります。

 

データ型

データ型は下記が使用できます。

Integer
Long
String
Boolean
Byte
Currency
Single
Double
Date
Variant

 

定数のスコープ(適用範囲)

スコープ(適用範囲)に関しては、エクセルVBAしか扱ったことがない場合は、少々難しいのでだけ覚えておけばいいと思います。

ここは分からなくてもVBAを使用するくらいなら問題ないので分からなくても大丈夫です!

 

定数は既定値でモジュールレベル内のPrivateなので、使用時はConstの前にPrivateキーワードを記述しなくてもOKです。(モジュールでしか使用できません。)

パブリックモジュールレベルの定数を宣言するには、Constステートメントの前にPublicキーワードを記述します。(モジュールでも使用できます。)

 

まとめ

変数に非常によく似ていますが、プロシージャのに記述することで!これは定数だよ!って記述するのが現場ではごく一般的です。

VBAで後で修正が入った時にまとめて修正できるように作成時に同じ箇所が複数ある場合や、パラメーターの設定時に、定数の使用を強くお勧めします。

そうすることにより、修正時に記述ミスや、他の人が修正する場合でも簡単に修正が可能になるので、コードを全て書き終えたら、定数にできる箇所があれば積極的に変更していきましょう。

以上です。

【エクセルVBA】変数の記述と使用方法