Excel VBA

[Excel VBA]読みやすいコードのために「Enumステートメント」をおぼえよう。

2021年11月16日

 

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

 

 

困ってます
少しVBAを使って業務改善ができはじめたけど、コードを読み返したときに、読みやすいコードが書けるようになりたい。

 

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

 

ロンピー

こんにちはロンピーです。

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の便利さを伝えるとともに、わたくしロンピーの興味のあることを記事にしています。

ぜひ、他の記事ものぞいていってください。

それでは今回はこのへんで。

 

 

 

 

 

 

-Excel VBA
-,

Copyright© Ronpeee blog , 2023 All Rights Reserved.