VBA 列挙型変数を使ってみる「列挙型変数Enum」



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、皆さん『列挙型変数』といワードを聞いたことがありますか?

もしかしたら初めて聞いたという方も多いかもしれませんね(*_*;

列挙型変数の使い方メリットは次のような事が挙げられます。

  • 列挙型変数の使い方『Enumで変数・要素名・値を宣言する』
  • 列挙型変数のメリット『名前を付けた数値を使用する場合に便利』

今回は列挙型変数の使い方・メリットについてご紹介していきます(^.^)

列挙型変数を使うには「Enum」で宣言する

列挙型変数を使うには「Enum」を使って宣言します。

列挙型変数は要素名と値をあらかじめ設定してデータを扱うことができます。Enum の中には Long 型の定数値を設定します(列挙型変数には、長整数型の値しか設定できません。)

Enum 変数名
  要素名 = 値
  要素名 = 値
  要素名 = 値
 ・
 ・
 ・
End Enum

他の変数と違う部分は「モジュールの一番上に宣言する必要がある」ことです。

 

 

宣言時に『宣言時に値を設定しなかった【所から】順に数値が加算されます

Enum ABC '値を設定していないので0から加算される
  a '0になる
  b '1
  c '2
End Enum

このサンプルで言うと、もしも【a】の値に1を設定していた場合、【b】の値は2になります。

列挙型変数の使い方

では実際に列挙型変数を使用してみましょう!

列挙型変数は選択肢が複数あるときに便利な変数です、例えば以下のようなテーブルがあったとします。

このようなテーブルがあった場合に列挙型は活躍します。

下記のコードでは列の番号を名前で扱うことができるのです(^^♪

Enum 列  '
    No = 1 'Noから下の値は1ずつ加算されていく
    氏名
    性別
    年齢
    身長
    体重
End Enum
Sub Sample()

 '列の番号を名前で扱うことができる
 Debug.Print Cells(2, 列.No).Value
 Debug.Print Cells(2, 列.氏名).Value
 Debug.Print Cells(2, 列.性別).Value
 Debug.Print Cells(2, 列.年齢).Value
 Debug.Print Cells(2, 列.身長).Value
 Debug.Print Cells(2, 列.体重).Value

End Sub

ただこれだと定数を使用してもあまり変わらないのではないか?と思われてしまうかもしれません(*_*;

では、なぜ列挙型変数が存在するのか?実は列挙型変数には使用するメリットがあるんです!

列挙型変数を使用するメリットとは?

列挙型変数のメリットそれは『インテリセンス』が使用できるということです(^^♪

インテリセンス
インテリセンスとはVBEでの自動入力補完機能を指します。

『列挙型変数名.』まで入力すると要素名の一覧が表示されより効率的なコーティングが可能になるのです。

このようにインテリセンスを使用することによって、定数名を確認したりする必要もなくなるわけです。

まとめ、列挙型変数は積極的に使ったほうがいい

今回は列挙型変数の宣言、使用方法について簡単にご紹介していきましたがいかがでしたでしょうか?

列挙型変数はインテリセンスを使用することができる便利なものですが、あまり使用されたり、紹介されていないような気がします。

個人的にはもう少し列挙型変数を使用したコードを紹介していきたいと思います(^^)/

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver