2023年9月18日月曜日

属性の共通な変数の一群を、配列と言うか、コレクションで管理して使いやすくする小技がなかなかに ー Enum変数(VBAマクロ)

    
総務省の”国民のための情報セキュリティサイト”をのぞきましたが、古くさい。
イモデザインで、デザインのプラットフォームがあまり変更されていないのか。

まして、マイナカードで個人情報が政府によって一括管理する時代が来るんだ。
そんな時に、勤務時間がブラック企業貼りの上級公務員は、ワープロが関の山。

まして、エクセルでマクロを組めるような奇特な御仁すら、存在しないだろう。
そんな印象のサイトでしたが、個人情報の定義がひとくされ説明されています。

個人情報には、氏名や住所、生年月日、性別などの住民票記載がベースみたい。
これだと、エクセルで個人的に作る住所録も似たようなもので、管理も必要だ。

なので、こういった住所録からマクロを使って、検索やら抽出などが可能です。
それで、この住所録にVBAでプログラムを組む際に、面白い変数を発見したの。

それは”Enum”変数と言いまして、複数のヒモ付け要素を親の変数で扱います。
まあ、”個人情報”を親とすると、ヒモ付けされる要素は氏名とか住所になるな。

Option Explicit
Enum 個人情報 '列挙型名。
    氏名 = 1 ’連番が振られる、"個人情報.氏名”なら”1”になる
    住所
    生年月日
    性別
End Enum ’子要素数分の連番、1~4が割り振られる

Sub Sample01()
    Cells(2, 個人情報.氏名) = "横浜太郎"
    Cells(2, 個人情報.住所) = "神奈川県横浜市"
    Cells(2, 個人情報.生年月日) = "20230101"
    Cells(2, 個人情報.性別) = "男"
End Sub

   
この定義づけで変数名を出力させると、個人情報.氏名が1、個人情報.住所が2。
と言う風に、定義づけられますので、住所録の管理に適した変数になるだろう。

シート列には、”変数の順番で、”氏名”、”住所”、”生年月日”、”性別”を割振り。
つまり、変数に割当てられた連番が列番号と符合しますので、操作がしやすい。

仮に項目の多い大規模データベースは、変数の文字数は最大限に短くしておく。
連番の振られる子要素も、文字数を極力抑えておけば、記述の手間も省けます。

他には、例えばコードで「If 個人情報.」と入力すればプロパティが出現します。
候補が列挙されますので、Tabキーで選択すればよいわけで、意外に便利です。

というわけで、このEnum変数と言うのは、変数のコレクション、配列みたい。
ネットの記事では、オブジェクト指向になってメインコードの簡潔さを保ったまま、メンテナンスできると説明されていたのですが、確かに可読性が高まるので、どでかいデータベースには便利だなとも思ったのでした。

エディターではプロパティに子要素表示



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿