【VBA】Enum(列挙型変数)の使い方|サンプルコード多数

この記事では、VBA(Visual Basic for Applications)で使用するEnum(列挙型変数)について、基本的な使い方から応用例まで、詳しく解説します。Enumを使うと、コードが読みやすくなり、メンテナンスもしやすくなるというメリットがあります。それでは、具体的な内容に入っていきましょう。

目次

Enum(列挙型変数)とは?

Enumの基本

Enum(列挙型)は、特定の数値に名前をつけて一括で管理するためのデータ型です。これにより、数値そのもの(マジックナンバー)ではなく、その数値が何を意味するのかをコード上で明示することができます。

Enumの宣言と基本構文

Enumは以下のようにVBAで宣言します。

[Public | Private] Enum 名前
    要素名 [= 定数式]
    要素名 [= 定数式]
    ...
End Enum

各設定項目の詳細

項目説明
Public/PrivateEnumがどの範囲でアクセス可能かを指定します。Publicなら他のモジュールからもアクセス可能。
名前Enumの名前です。この名前を使って後でEnum型の変数を宣言します。
要素名Enum内で管理する数値につける名前です。
定数式要素名に割り当てる数値です。省略すると、前の要素+1が自動で割り当てられます。

Enumの使い方とサンプルコード

基本的な使い方

Enumを使うことで、以下のようにコードが書けます。

Enum ColumnPosition
    ColA = 1
    ColB = 2
    ColC = 3
End Enum

Sub ExampleUsage()
    Cells(1, ColumnPosition.ColA) = "Sample Text"
End Sub

このサンプルでは、ColumnPositionというEnumを作成し、ColA、ColB、ColCという名前で1, 2, 3という数値を管理しています。その後、ExampleUsageというサブプロシージャでこのEnumを使用しています。

サンプルコード1:曜日を管理するEnum

Enum DayNames
    SunDay = 1
    MonDay = 2
    TuesDay = 3
    WednesDay = 4
    ThursDay = 5
    FriDay = 6
    SaturDay = 7
End Enum

Sub DisplayDay()
    Dim currentDay As DayNames
    currentDay = TuesDay
    MsgBox "Today is " & currentDay & ", which means it's Tuesday."
End Sub

このサンプルでは、DayNamesというEnumを作成して、曜日を数値で管理しています。DisplayDayというサブプロシージャでは、currentDayという変数にTuesDay(火曜日)を代入し、それをメッセージボックスで表示しています。

サンプルコード2:色を管理するEnum

Enum ColorTypes
    ColorRed = 1
    ColorGreen = 2
    ColorBlue = 3
End Enum

Sub ApplyCellColor()
    Dim chosenColor As ColorTypes
    chosenColor = ColorRed
    Cells(1, 1).Interior.ColorIndex = chosenColor
End Sub

このサンプルでは、ColorTypesというEnumで色を管理しています。ApplyCellColorというサブプロシージャでは、chosenColorという変数にColorRed(赤)を代入し、それをセルの背景色として設定しています。

Enum(列挙型変数)に関するFAQ

Q:Enum(列挙型変数)とは何ですか?

A:Enum(列挙型変数)は、VBA(Visual Basic for Applications)で使用される特殊なデータ型の一つです。このデータ型は、特定の数値に名前を付けて管理するために使用されます。これにより、コードの可読性が向上し、メンテナンスも容易になります。

Q:Enumをどのように宣言しますか?

A:Enumは以下の形式で宣言します。

[Public | Private] Enum 名前 要素名 [= 定数式] ... End Enum

ここで、PublicまたはPrivateはアクセス修飾子であり、Enumがどの範囲で使用できるかを指定します。名前はEnumの名前、要素名はEnum内で管理する数値に付ける名前、定数式はその数値です。

Q:Enumの要素にはどのような値を割り当てられますか?

A:Enumの要素には整数値を割り当てることができます。通常、最初の要素には1が割り当てられ、次の要素には前の要素の値+1が自動で割り当てられます。ただし、特定の数値を明示的に割り当てることも可能です。

Q:Enumはどのような場面で役立ちますか?

A:Enumは、特定の数値が何を意味するのかをコード上で明示する場合に非常に役立ちます。例えば、曜日や色、状態などを管理する際にEnumを使用すると、コードが読みやすくなります。

Q:Enumの要素を変更することはできますか?

A:Enumの要素は不変です。一度Enumを宣言すると、その後で要素を動的に追加や削除することはできません。

Q:Enumと配列やコレクションとの違いは何ですか?

A:Enumは名前付きの定数を管理するためのものであり、動的に要素を追加したり削除したりすることはできません。一方で、配列やコレクションは動的に要素を管理することができます。

Q:Enumの要素名で使える文字は何ですか?

A:Enumの要素名は、アルファベット、数字、アンダースコア(_)を使用できます。ただし、名前の最初の文字は数字にすることはできません。

Q:Enumを使うと何が嬉しいですか?

A:Enumを使う最大の利点は、コードの可読性とメンテナンス性が向上することです。具体的な数値よりも名前で管理することで、コードが直感的に理解しやすくなります。

Q:Enumの要素に文字列を割り当てることはできますか?

A:Enumの要素には整数値しか割り当てることができません。文字列を割り当てることはできません。

関連動画

まとめ

Enum(列挙型変数)は、VBAでのプログラミングをより効率的かつ安全に行うための非常に有用な機能です。特に、コードの可読性とメンテナンス性が向上する点が大きなメリットです。この記事で紹介した知識とサンプルコードを活用して、ぜひEnumを使いこなしてください。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次