ITサポーターTsuchida

VBA Basic7

第7章 定数(コンスタント)について

VBAには実行中に値が変化する変数の他に、実行中に値が変化しない定数もあります。 変数に比べると定数はあまり使われませんが、存在は知っておいた方がいいと思います。

プロシージャ内で直接数値や文字列を記述する定数をリテラルと呼び、モジュールあるいはプロシージャの先頭で宣言する定数をコンスタントと呼びます。この章ではコンスタントについて紹介します。

コンスタントの定数を使う意味は2つあります。

●何ども使う文字や数値を、プロシージャで何どもに記述しなくて済む

●定数の変更が生じる時、このConstの値の修正で済む

 

コンスタントの定数も変数と同じように、データ型を指定します。コンスタントの定数は最初から値を持たせるので、宣言の際に値も指定します。

コンスタントの定数の例は以下のとおりです。

Const gameName As String = "ウィンブルドン"

gameNameという文字列の定数を宣言し、定数の中はウィンブルドンという文字列をセットするという意味になります。

 

日付の定数に関してだけは注意が必要です。

日付のデータの値は数値で、表示形式で日付に見せているだけです。 そのため日付を定数で宣言するときは、日付と認識させるために、前後をシャープ(#)で囲みます。

※シャープは正式には、井桁やハッシュマークといいます。

Const startDate As Date = #07/03/2017#

数値は何も囲まずに、文字列はダブルクォーテーション(")で囲い、日付はシャープで囲います。これはリテラルでもコンスタントでも一緒です。

 

プログラミングの際に、定数はできるだけ使わないように昔はよく言われたものですが、ExcelのVBAでは定数を使うことは避けられません。まずは定数以外の方法を検討します。定数以外に方法がなければ定数を使うようにします。