
ExcelVBA 「ユーザー定義型」を使用することで、複数の関連データを一つの単位(構造体)としてまとめて扱えるようにします。これにより、コードの可読性とメンテナンス性が向上します。使い方や注意点など、サンプルコードをもとに具体的に解説します。
2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用で表示します。
1.顧客情報(名前、住所、電話番号など)のような関連データを1つの型でまとめる。
2.配列やコレクションで複雑なデータを管理する際に便利
3.複数のデータを1つの関数やプロシージャで簡単にやり取りする。
ユーザー定義型は、標準モジュールで定義し、プロシージャや関数で使用します。
1.定義する場所
ユーザー定義型は、標準モジュール内に定義します。
2.定義の構文
Type 型名
メンバ1 As データ型
メンバ2 As データ型
...
End Type
1.標準モジュールに定義
ユーザー定義型は標準モジュール内で定義する必要があります。他のモジュールやフォームモジュール内には定義できません。
2.PublicまたはPrivateの指定
型のスコープを意識して、適切に Public や Private を使用します。
3.名前の競合に注意
型名が既存のVBAキーワードや他の変数名と競合しないようにします。
Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Public Type CustomerInfo
Name As String
Address As String
PhoneNumber As String
End Type
Sub TestUserDefinedType()
' ユーザー定義型の変数を宣言
Dim customer As CustomerInfo
' メンバに値を設定
customer.Name = "山田 太郎"
customer.Address = "東京都千代田区"
customer.PhoneNumber = "012-3456-7890"
' 値を表示
MsgBox "名前: " & customer.Name & vbCrLf & _
"住所: " & customer.Address & vbCrLf & _
"電話番号: " & customer.PhoneNumber
End Sub
標準モジュール(複数の顧客情報を管理する場合に配列で使用)
Option Explicit
Public Type CustomerInfo
Name As String
Address As String
PhoneNumber As String
End Type
Sub TestArrayWithUserDefinedType()
Dim customers(1 To 2) As CustomerInfo
' 1人目のデータを設定
customers(1).Name = "山田 太郎"
customers(1).Address = "東京都千代田区"
customers(1).PhoneNumber = "012-3456-XXXX"
' 2人目のデータを設定
customers(2).Name = "鈴木 花子"
customers(2).Address = "大阪府大阪市"
customers(2).PhoneNumber = "098-7654-YYYY"
' データを表示
Dim i As Integer
For i = LBound(customers) To UBound(customers)
MsgBox "名前: " & customers(i).Name & vbCrLf & _
"住所: " & customers(i).Address & vbCrLf & _
"電話番号: " & customers(i).PhoneNumber
Next i
End Sub
ユーザー定義型は必ず標準モジュール内で定義する。PublicまたはPrivateを指定して、スコープを適切に管理。配列や複雑なデータ構造での使用はコードの効率を向上させます。
エラーが出たら、まず定義場所とスペルを確認してください。
これらのポイントを押さえれば、初心者でもユーザー定義型を安心して活用できます。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。