.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. VBA Enumとは?VBA Enum(列挙型)の宣言の仕方・変数

VBA Enumとは?VBA Enum(列挙型)の宣言の仕方・変数

  • C#
  • プログラミング言語
公開日時:   更新日時:
VBA Enumとは?VBA Enum(列挙型)の宣言の仕方・変数
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    VBA Enumをどう使えばいいのか悩んでいます。

    プロジェクト
    マネージャー
    では、VBA Enumについて基本から見ていきましょう。

    VBA Enumとは?


    VBAのEnumとは、Long型のConst定数に名前を付けて、それらをひとまとめにして参照しやすくしたものです。

    例えば、色データとして赤=1、緑=2、青=3と番号を付け、これらの数値を直接VBAのコードに記述したとします。

    これでも問題なく動作しますが、色データを変更する必要が出てきた時に、ひとつひとつすべてを変更するのは大変ですし、視認性もよくありません。このようなときに使用するのがEnum(列挙型)です。

    Enum(列挙型)を使って定数を定義すると、数値を直接指定する代わりに定義した名前で指定できます。

    また、意味のある名前を付けることでVBAプログラム(マクロ)の可読性も向上します。結果として、開発スピードの向上にも繋がります。

    VBA Enum(列挙型)の宣言の仕方

    VBA Enum(列挙型)の宣言の仕方は下のようになります。

    「名前」には、列挙型の名前を付けます。この「名前」を使って変数を宣言できるようになります。

    「メンバ名」は、任意の定数式(定数値)に付ける名前です。自分だけが分かる名前にしても良いですが、できれば他人が見ても分かりやすい名前を付けた方が良いでしょう。

    「定数式」は、任意の定数値を指定します。この「定数式」を省略しますと「直前の値+1」(通し番号)が割り当てられます。

    VBA Enum(列挙型)変数

    VBAでEnum(列挙型)を宣言すると、それを使って変数を宣言できるようになります。

    列挙型変数は、Long型変数なので色々な整数値を入れられますが、基本的には定義されたメンバの値のみ代入するようにした方が良いでしょう。

    下のサンプルプログラム(Sample1)は色データ列挙型(colorIndex)を宣言し、それを使って宣言した変数ciに色データenmGreenを代入してイミディエイトウィンドウに値を出力しているものです。

    ここでは、変数ciにenmGreenを代入していますので、結果は【ci = 2】と表示されます。

    VBA Enum(列挙型)メンバへのアクセス方法

    VBAのEnum(列挙型)で宣言されたメンバにアクセスするには、上の項目でご紹介した変数を宣言する方法以外に、「名前.メンバ名」と記述してもアクセスが可能です。

    下のサンプルプログラム(Sample2)は色データ列挙型(colorIndex)を宣言し、普通にLong型で宣言した変数lngに色データenmBlueを代入してイミディエイトウィンドウに値を出力しているものです。

    ここでは、変数lngにenmBlueを代入していますので、結果は【lng = 3】と表示されます。

    PrivateとPublicの違い

    VBAにおいて、Privateで宣言したEnum(列挙型)は、宣言したモジュール内でのみ使用できます。それに対し、Publicで宣言したEnum(列挙型)はプロジェクト全体で使用できます。

    VBAプログラム(マクロ)が比較的小さいうちは良いのですが、ある程度大きくなってくると、機能別にモジュールを分けて記述することが多くなります。

    そのような時、そのモジュール内だけで参照できればよいEnum(列挙型)はPrivateで宣言し、すべてのモジュールで参照したいEnum(列挙型)はPublicで宣言するなどの使い分けができます。

    VBA Enum(列挙型)の使い方


    VBAのEnum(列挙型)の代表的な使い方として、Excelのセル(列)の指定があります。

    列のデータは項目を増やしたり減らしたりする可能性がありますので、Enum(列挙型)を使って定義しておくと、後の修正が楽にできます。

    例えば、列の項目に個人情報の「名前」「年齢」「身長」「体重」を設け、2行目にデータを設定するマクロを記述することを考えます。

    これをプログラミングすると、以下に記載するサンプルプログラム(Sample3_1)のようになります。

    そこへ「性別」という項目を新たに追加すると、サンプルプログラム(Sample3_2)のようになります。

    Enum(列挙型)を用いることで、必要な項目を単純に追加するだけで簡単に修正できることが分かるでしょう。

    サンプルプログラム Sample3_1

    Excel VBAの個人情報登録サンプルプログラムの雛形です。

    サンプルプログラム Sample3_2

    Excel VBAの個人情報登録サンプルプログラムの雛形に、「性別」を追加したプログラムです。

    システム
    エンジニア
    子要素を使えば値の追加もできるのは便利ですね。

    プロジェクト
    マネージャー
    列管理ができるのも大きな特徴ですね。

    VBAのEnum(列挙型)は上手に使えばとても便利な機能!

    VBAのEnum(列挙型)は、上手に使えばとても便利な機能です。また、他の言語(C++、C#、Pythonなど)にも同様な機能がありますので、ぜひ覚えて使用してみてください。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job