Constステートメント

こちらでは、VBAのIE(InternetExplorer)操作に利用されたConstステートメントの解説になります。

ステートメントとは、「命令文」と訳されるように、コンピュータに具体的な動作を指定する最小単位のプログラムです。主にマクロの挙動を制御する構文や文法を指します。通常は1行で完結する部分を指しますが、If~Thenなど複数行にまたがる部分を意味することもあります。

目次

Constステートメントとは

Constステートメントは、リテラル値の代わりに使う定数を宣言します。

Const 定数名 As データ型 = 値

構文[Public | Private] Const constname [As type] = expression
キーワード省略説明
Publicすべてのモジュール内のすべてのプロシージャから参照可能な定数を宣言するために、モジュール レベルで使用するキーワードです。プロシージャ内では、指定できません。
Private省略可能です。宣言が行われたモジュール内のプロシージャからのみ参照できる定数を宣言するときに指定するキーワードです。モジュール レベルで使用します。プロシージャ内では指定できません。
constname×必ず指定します。定義する定数の名前を指定します。変数の標準的な名前付け規則に従って指定します。
type定数のデータ型を指定します。As type節は宣言する各定数に対して個別に指定します。
expression×必ず指定します。リテラル値、その他の定数、Is を除く算術演算子や論理演算子を組み合わせた式を指定します。

既定では、定数はプライベートになります。プロシージャ内では、定数は常にプライベート定数として扱われて、適用範囲 (スコープ) は変更できません。標準モジュールでは、モジュール レベル定数の既定の適用範囲をキーワード Public で変更できます。一方、クラス モジュールでは、定数はプライベート定数としてのみ使用でき、キーワード Public では適用範囲を変更できません。

複数の定数宣言を 1 行にまとめるには、定数定義をカンマ (,) で区切ります。このようにして複数の定数を 1 行で宣言した場合、キーワード Public やキーワード Private を指定すると、すべての定数定義に対してキーワードが適用されます。

定数に代入する式の中では、変数、ユーザー定義関数、Chr などの Visual Basic の組込み関数は、使えません。

定数を使うと、プログラムがわかりやすく、修正も容易になります。変数とは異なり、定数はプログラムの実行中に値を変更できません。

As type で定数のデータ型を明示的に宣言しない場合、代入する式の評価結果に最適なデータ型が割り当てられます。

Sub プロシージャ、Function プロシージャ、または Property プロシージャ内で宣言した定数は、そのプロシージャ内でのみ参照できます。プロシージャの外で宣言された定数は、宣言されたモジュール内であれば、どこからでも参照できます。定数は、式が記述できる位置であれば、どこでも使えます。

定数のデータ型

指定方法データ型バイト数値の範囲
Byteバイト型10~255
Booleanブーリアン型2真(True)又は偽(False)
Integer整数型2-32,768~32,767
Long長整数型4-2,147,483,648~2,147,483,647
Currency通貨型8-922,337,203,685,477.5808~922,337,203,685,477.5807
Single単精度浮動小数点数型4-3.402823E38~-1.401298E-45(負の数)
1.401298E-45~3.402823E38(正の数)
Double倍精度浮動小数点数型8-1.7976931348623E308~-4.94065645841247E-324(負の数)
4.94065645841247E-324~1.79769313486232E308(正の数)
Date日付型8西暦100年1月1日~西暦9999年12月31日
Objectオブジェクト型4オブジェクトを参照するためのアドレス
String文字列型10+文字列の長さ0~2GB
Variantバリアント型16倍精度浮動小数点数型の範囲と同じ
Variantバリアント型22バイト+文字列の長さ可変長の文字列型の範囲と同じ。

定数の命名規則

定数の名前は基本的に自由に命名できますが、いくつかの命名ルールがあります。定数名を命名する際は以下に注意しましょう。

  • 使用できる文字は、英字、ひらがな、全角カタカナ、漢字、数字、アンダースコア(_)
  • 先頭は文字でなければならない(数字または記号以外の文字)
  • 記号やスペースは使用できない
  • 定数名は半角255文字(全角127文字)以内にする
  • Excelの関数、ステートメント、メソッドと同じ名前(予約語)を使用することは出来ない
  • 同一の適用範囲内で同じ名前の定数を宣言することはできない

定数の適用範囲

定数も変数の適用範囲(スコープ)と同様に適用範囲があります。定数で利用できるキーワードは「Private」と「Public」の2種類になります。キーワードはConstステートメントの先頭に記述することで利用できます。それでは、それぞれどのように処理されるか確認してみましょう。

キーワードPrivate

Module1


Private Const TAX As Single = 0.08

Sub sampleA()
    
    MsgBox "みかんの消費税は" & 100 * TAX & "円

End Sub

Module2


Sub sampleB()
    
    MsgBox "ばななの消費税は" & 200 * TAX & "円

End Sub

Module2のsampleBプロシージャを実行した結果です。

定数のPrivateキーワード

キーワードPrivateで宣言した定数はモジュール内のみで有効となります。Module2のsampleBプロシージャは他のモジュールですので、sampleBプロシージャを実行するとエラーは起こりませんが、TAXは変数扱いで0となってしまいます。よって計算結果は「0円」となります。

尚、定数の既定値はキーワードPrivateですので、キーワードを記述しない場合は常にキーワードPrivateが適用されます。

キーワードPublic

Module1


Public Const TAX As Single = 0.08

Sub sampleA()
    
    MsgBox "みかんの消費税は" & 100 * TAX & "円

End Sub

Module2


Sub sampleB()
    
    MsgBox "ばななの消費税は" & 200 * TAX & "円

End Sub

Module2のsampleBプロシージャを実行した結果です。

定数のPublicキーワード

キーワードPublicで宣言した定数はすべてのモジュール内で有効となります。ですので、Module2のsampleBプロシージャを実行するとTAXは定数TAX扱いとなり、0.08が代入され、計算結果は「16円」となります。

定数のデータ型を設定して消費税を計算するサンプルコード


Sub sample()

  Const TAX As Single = 0.08
  
  MsgBox "みかんの消費税は" & 100 * TAX & "円"

End Sub

実行結果

VBAの定数

解説

例えば、定数TAXに消費税の8%を設定する場合は以下になります。8%は0.08ですので、小数点に対応した単精度浮動小数点数型(Single)で宣言しています。定数名は一般的に、すべて大文字で記述するのが慣例となっていますので、こちらでも大文字で記述します。

事例を確認するとみかん100円に対して定数TAXである0.08を乗算しています。

sampleのSubステートメントは引数の設定なしです。次にConstステートメントを利用してn,s(0)~s(3),str1の定数を宣言しています。それぞれ、定数nには整数型(Integer)の「3」、定数sには整数型(Integer)の「1~4」、定数str1には文字列型(String)の"足し算:"を設定しています。
そしてDebugオブジェクトのPrintメソッドで定数を結合・足し算させ、「足し算:5」を表示させます。

最後はEndステートメントを利用してsampleプロシージャを終了させます。

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

  • このエントリーをはてなブックマークに追加
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。