マクロ講座列挙体(ユーザー定義列挙型)Enumを作って楽をする

マクロ 96回
Enum ステートメント 列挙体
VBAのEnumステートメントは、プログラム内で特定のグループの値に名前を付けるために使用される機能です。
Enumを使うことで、プログラムが読みやすくなり、コードの理解がしやすくなります。
Enumは宣言セクションに記入します。数値をそのままプログラム内に書く場合(決め打ち)と比べて、読みやすくまた管理もしやすくなります。
(サンプルファイルは、こちらから Enumを作って楽をするサンプルデータ)
この記事で学べる内容
- 1. VBAのEnumステートメントの基本的な使い方と概念を理解できる。
- 2. Enumを使用することでコードの読みやすさや理解が容易になることを学ぶ。
- 3. Enumの宣言方法と数値の書き方がわかる。
- 4. サンプルファイルを用いたEnumの具体的な使用例を見ることができる。
- 5. Enumを使った転記の実践方法を学ぶ。
あなただけの虎の巻、列挙体(ユーザー定義列挙型)Enumを作って楽をする 詳しく紹介 マクロ中級
静止画像とテキストでは、理解しずらい事もありますので、その時は下記動画をご覧になり参考にしてください。
コード入力の定数に使うと入力がめちゃ楽ちん
Enumって普段あまり使わない言葉かもしれません。でもEnumはマクロのコードが複雑になればなるほど役立つ機能です。
こちらのサンプルでEnumの使用例をみてみましょう。入力用のシートのC列に入力した値がデータベースに蓄積される形です。
通常はデータを集計表に順番通りに転記するわけです。
順番どおりの場合のコードをOffset関数を使って書いたケースです。もちろんFor文を使ってループすることも可能です。
データを集計表にそのまま転記する訳ですが、中には、また別の用途のために受け取ったデータの並び順どおりに出力しないケースがあります。
Enumを作った出力コードの書きかたを説明します。nameを分かり易い名前に変更してやります。
さらに列見出しに列番号を割り当てましょう。
Enumを使ったコードの例
順番通りではない場合に、その転記先に合わせたEnumを列番号として割り当てます。
転記先のアドレスが、Cells(trow, col.顧客ID)などのようになっているので、そこには、入力元の対応するnyuuryoku.Value を入れるだけです。
Cells(trow, col.顧客名).Value = nyuuryoku.Offset(1, 0).Value '顧客名の場合は、転記先のアドレスは、Cells(trow, 7)と書いたことと同じになります。
Cells(trow, col.フリガナ).Valueの場合は、Cells(trow, 8).Valueと書いたことと同じになります。
3列目に入れるのは性別なので、Enumの3を割り当てています。同様に都道府県には4としています。
Enumに列番号を割り当てた際の便利さは、コードを書いている人にとって、列番号を気にせずに書けるという点にあります。