ExcelマクロVBA入門 | 第110回.ユーザー定義型(構造体)Type | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-05-09

第110回.ユーザー定義型(構造体)Type


Type ステートメントを使って、異なるデータ型を組み合わせた独自のデータ型を作成できます。


ユーザー定義型には 1 つまたは複数のデータ型の要素、配列、または事前に定義したユーザー定義型を格納することができます。


[Private | Public] Type varname
elementname [([subscripts])] As type
[elementname [([subscripts])] As type]
. . .

End Type


Public 省略可能です。
すべてのプロジェクトのすべてのモジュールのどのプロシージャからも参照できるユーザー定義型を宣言するときに指定します。
Private 省略可能です。

宣言が行われたモジュール内でのみ参照できるユーザー定義型を宣言するときに指定します。
varname 必ず指定します。
宣言するユーザー定義型の名前です。
変数の標準的な名前付け規則に従って指定します。
elementname 必ず指定します。
ユーザー定義型を構成する要素の名前です。要素名は、変数の標準的な名前付け規則に従って指定します。
ただし、キーワードを使うこともできます。
subscripts 省略可能です。
配列の要素の次元を指定します。
動的配列を宣言する場合は、かっこだけを指定します。引数 subscripts の構文は次のとおりです。
[lower To] upper [,[lower To] upper] . . .
引数 lower を省略すると、配列の添字の最小値は Option Base ステートメントによって制御されます。
Option Base ステートメントが記述されていない場合は、添字の最小値は 0 になります。
type 必ず指定します。
要素のデータ型を指定します。バイト型 (Byte)、ブール型 (Boolean)、整数型 (Integer)、長整数型 (Long)、通貨型 (Currency)、単精度浮動小数点数型 (Single)、倍精度浮動小数点数型 (Double)、10 進型 (Decimal) (現在はサポートされていません)、日付型 (Date)、文字列型 (String) (可変長の場合は String、固定長の場合は String * length)、オブジェクト型 (Object)、バリアント型 (Variant)、ほかのユーザー定義型、オブジェクトの種類のいずれかを指定できます。

Type ステートメントは、モジュール レベルでのみ使用できます。


ユーザー定義型は、その型の変数を宣言して使用します。


つまり、Type ステートメントは型(LongやString等と同様)を定義しているだけです。


ユーザー定義型は、複数のフィールド(項目)を持つレコードのような使い方が出来ます。



使用例.


社員を管理する場合、


番号

氏名

所属

住所

電話


このような項目がある場合、これをユーザー定義型として定義します。


Type type社員
  番号 As Long
  氏名 As String
  所属 As String
  住所 As String
  電話 As String
End Type
Sub sample()
  Dim 社員 As type社員
  社員.番号 = 1101
  社員.氏名 = "名前"
  ・・・
End Sub

これだけでは、さほど有効な使い方にはなりません。


ユーザー定義型が活躍するのは、これを配列として定義し、


大量データを扱うような場面になります。






同じテーマ「ExcelマクロVBA入門」の記事

第111回.静的配列
第112回.動的配列(Redim)
第113回.配列に関連する関数
第114回.セル範囲⇔配列
第115回.Split関数
第116回.ファイル操作U(OpenとClose)
第117回.ファイル操作U(Line Input #)

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • ユーザー定義型(構造体)Type

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP