Typeステートメント

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

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

目次

Typeステートメントとは

Typeステートメントは、1 つまたは複数の要素を持つユーザー定義のデータ型 (ユーザー定義型) を宣言します。モジュール レベルで使います。

Type ユーザー定義型名 要素1(変数・定数名) As データ型 要素2(変数・定数名) As データ型End Type

構文[Private | Public] Type varnameelementname [([subscripts])] As type[elementname [([subscripts])] As type]. . .
キーワード省略説明
Public省略可能です。すべてのプロジェクトのすべてのモジュールのどのプロシージャからも参照できるユーザー定義型を宣言するときに指定します。
Private省略可能です。宣言が行われたモジュール内でのみ参照できるユーザー定義型を宣言するときに指定します。
varname×必ず指定します。宣言するユーザー定義型の名前です。変数の標準的な名前付け規則に従って指定します。
elementname×必ず指定します。ユーザー定義型を構成する要素の名前です。要素名は、変数の標準的な名前付け規則に従って指定します。ただし、キーワードを使うこともできます。
subscripts省略可能です。ユーザー定義型を構成する要素の名前です。要素名は、変数の標準的な名前付け規則に従って指定します。ただし、キーワードを使うこともできます。
type×必ず指定します。要素のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、10 進型 (Decimal) (現在はサポートされていません)、日付型 (Date)、文字列型 (String) (可変長の場合は String、固定長の場合は String * length)、オブジェクト型 (Object)、バリアント型 (Variant)、ほかのユーザー定義型、オブジェクトの種類のいずれかを指定できます。

Type ステートメントは、モジュール レベルでのみ使用できます。Type ステートメントでユーザー定義型を宣言すると、その宣言の適用範囲内であれば、どこからでもその型の変数を宣言できるようになります。ユーザー定義型の変数の宣言には、Dim、Private、Public、ReDim、または Static のいずれかのステートメントを使います。

標準モジュールでは、ユーザー定義型は既定でパブリックになり、その適用範囲はキーワード Public で変更できます。クラス モジュールでは、ユーザー定義型は常にプライベートになり、適用範囲はキーワード Public では変更できません。

Type...End Type ブロック内では、行番号と行ラベルは使えません。

ユーザー定義型は、データ型の異なる多数の関連する要素で構成されるデータ レコードでよく使われます。次の例は、ユーザー定義型の中に固定サイズの配列を含めたものです。

Type StateData
CityCode (1 To 100) As Integer ' サイズ固定型 (静的) 配列を宣言します。
County As String * 30
End Type

Dim Washington(1 To 100) As StateData

この例では、StateData には固定サイズの配列 CityCode が含まれており、レコード Washington は StateData と同じ構造になっています。

ユーザー定義型の中で固定サイズの配列を宣言する場合は、変数ではなく数値リテラルまたは数値定数を使って、次元を宣言する必要があります。

Typeステートメントのサンプルコード


Type Personal
    Name As String
    Age As Byte
End Type

Sub sample()

    Dim perA As Personal
    
    perA.Name = "鈴木"
    perA.Age = 20
    
    MsgBox "名前:" & perA.Name & ", 年齢:" & perA.Age
    
End Sub

実行結果

ユーザー定義型

解説

こちらの事例では、「名前」と「年齢」のユーザー定義型を作成しています。
ユーザー定義型名はPersonalで、名前の変数Nameに文字列型(String)、年齢の変数Ageにバイト型(Byte)を設定しています。今回は2つだけの設定ですが、扱う要素が多くなればなるほど利便性が高くなります。

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