列挙型の使い方(思いつき)
今までは列挙型を、列数などを指定するために使用していた。
例えば、こんな感じだ。
- A列:名前を入力するセル
- B列:年齢を入力するセル
- C列:性別を入力するセル
このような場合「A列」や「1列」などの無為記号だと、直感的に理解しづらい。
Sub test1() Cells(2, 1) = "田中一郎" End Sub
しかし↓のように定義しておくと、列の指定がそのまま項目名になるため、格段に分かり易くなる。
Enum myColumn 名前 = 1 年齢 性別 End Enum
Sub test2() Cells(2, myColumn.名前) = "田中一郎" End Sub
↓ こんな風に、選択候補が出てくれるのもありがたい。
ところでふと思ったのだけど、こういう使い方って一般的なのだろうか。
Public Enum MachineType Vertical = 1 Horizontal End Enum Function GetMachineType(machine_spec As String) As MachineType Select Case machine_spec Case "V" GetMachineType = Vertical Case "H" GetMachineType = Horizontal End Select End Function
ユーザー定義関数の型を、Enumで定義した「MachineType」にすることで、先ほどと同じように選択候補を表示してくれる。
また各パラメーターを数値で扱いつつも、Vertical のように意味のある単語に置き換えて読むことが出来るため、何かと都合がよいと思った。
私が無知なだけで、昔からある、普通の使い方なのかもしれない。或いは、邪道?タブー?な使い方かも。まずはしばらく個人的に使ってみて、不都合が無いか確認するとします。
参考まで。