Staticステートメント

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

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

目次

Staticステートメントとは

Staticステートメントは、変数のデータ型を宣言しメモリ領域を割り当てます。プロシージャ レベルで使用します。Static ステートメントで宣言した変数 (静的変数) の値は、プログラムが実行されている間をとおして保持されます。

Static 変数名 As データ型

構文Static varname[([subscripts])] [As [New] type] [, varname[([subscripts])] [As [New] type]] . . .
キーワード省略説明
varname×定義する変数の名前を指定します。変数の標準的な命名規則に従って指定します。
subscripts配列変数の次元を指定します。指定できる次元数の最大値は 60となります。subscriptsの構文は次のとおりです。
[lower To] upper [, [lower To] upper] . . .
引数lowerを省略した場合、配列のインデックス番号の最小値はOption Baseステートメントによって決まります。Option Baseステートメントが記述されていない場合、インデックス番号の最小値は0になります。
Newオブジェクト変数を宣言する際にNewを指定すると、Setステートメントを利用してオブジェクトへの参照を代入する必要がありません。ただし、Newを利用して、固有のデータ型の変数の宣言、または従属オブジェクトのインスタンスの宣言はできません。
type変数のデータ型を指定します。As type節は宣言する各変数に対して個別に指定します。

変数のデータ型

指定方法データ型バイト数値の範囲
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の関数、ステートメント、メソッドと同じ名前(予約語)を使用することは出来ない
  • 同一の適用範囲内で同じ名前の変数を宣言することはできない

変数の適用範囲

Staticステートメントを使ってモジュールレベルで宣言された変数は、1度行った処理で保持した値を処理が行われた後も保持し続けます。

Staticステートメントを利用して値を保持させるサンプルコード


Sub sampleA()
    
    Static a As Integer
    
    a = a + 1
    
    MsgBox a & "回目に処理です。"
    
End Sub

実行結果

こちらは、sampleAプロシージャを3回実行した結果です。

Staticステートメントの結果

解説

sampleのSubステートメントは引数の設定なしです。次にStaticステートメントを利用してプロシージャ内で変数aを宣言し、sampleAプロシージャを3回実行しています。「a=a+1」は代入演算子変数aに1足した値になり、1→2→3のように値が足し算されます。

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

このように値を保持して処理を行いたい場合は、Staticステートメントを利用するようにしましょう。また、Staticステートメントを宣言できるのはプロシージャ内になりますので、ご注意ください。

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には様々な機能が用意されていますので一度ご確認ください。