本サイトはエクセル2019で動作確認を行っています。

このような疑問にお答えします。

こんにちはロンピーです。
ExcelVBAを使用して、会社で業務改善をおこない15年ほどが経過しました。
今では部下の育成にも携わっています。
VBAのコードの改修作業をしていると、過去に書いたコードを読み返す場面があると思います。
ただ、昔に書いたVBAなのでどのような内容か忘れていることもあるでしょう。
そんな時にできるだけ読みやすく、メンテナンス性に優れたコードを書くこともVBAのレベルを上げるのに重要です。
読みやすいコードを書くにはいくつかルールはありますが、今回は「Enumステートメント」をご紹介します。
Enumステートメントとは
Enumステートメントとは列挙型のステートメントで定数(const)をひとまとめにしたものです。


要は「決まったグループをひとまとめにする。」ぐらいに理解してください。
実際の動きを見るとイメージしやすいと思うので読み進めてくださいね。
(条件)
お菓子を仕入れる会社があり、仕入れたお菓子を検査します。
問題なければ結果に手入力で、〇を記入します。
結果が〇の商品は、外観・味・においに「適」と入力するVBAを作成しましょう。
*今回の内容はあくまでVBAの可読性・メンテナンス性をよくする内容です。
条件の作業が実務に役立つかはおいておきます。
普通、以下のようなVBAを記述しますよね。
Sub 検査結果() Dim i As Long For i = 4 To 6 If Cells(i, 6) = "○" Then Cells(i, 3) = "適" '外観 Cells(i, 4) = "適" '味 Cells(i, 5) = "適" 'におい End If Next End Sub
メモを使用し、どのセルに「適」を記入したか分かるようにすることはあると思います。
「Enumステートメント」は、メモを使用しなくても、一目でどのセルに記述しているか分かるものになります。
次のコードを見てみましょう。
Enum 商品 外観 = 3 味 = 4 におい = 5 結果 = 6 End Enum Sub 検査結果() Dim i As Long For i = 4 To 6 If Cells(i, 商品.結果) = "○" Then Cells(i, 商品.外観) = "適" Cells(i, 商品.味) = "適" Cells(i, 商品.におい) = "適" End If Next End Sub
①Enum ~End Enumでくくる。
②Enumの横に「名前」を記述する。
③定数である「性質」を記述する。*今回は記入列が決まっている。
④モジュール内で「名前.性質」の書き方で記述する。
これで、「適」の記述ができました。
一目で記入したセルが商品の外観であったり、味であったりが確認できますよね。
Enumステートメントで知っておくこと
Enumステートメントでは2点知っておく必要があります。
まず、便利なインテリセンス機能が使えるということです。
インテリセンスとは、自動入力補完機能のことで、実際にコードを記述すると分かります。
今回では、モジュール内で商品と記述した後にピリオドを入力すると、勝手に「外観・味・におい」が表示され、選択できます。
これにより、打ち間違えの防止ができます。
もう一つは注意として、Enumステートメントはモジュール内でのみ使用できます。
まとめ
いかがでしたか?
Enumステートメントを知ることで、少し上級の可読性の高いコードが書けるようになります。
どんどん作業性をよくしてVBAライフを楽しみましょう。
本サイトはExcelVBAの便利さを伝えるとともに、わたくしロンピーの興味のあることを記事にしています。
ぜひ、他の記事ものぞいていってください。
それでは今回はこのへんで。