パーツ化とは
ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。
パーツ化のサンプルコード
具体的な方法は以下です。Module1にコピペしてください。
'■税抜き価格から税込価格を計算する
Public Sub sample()
Dim money As Long: money = 0
'■税込み計算をパーツ化した場合
money = Call_TAXinclude(100) '110
money = money + Call_TAXinclude(300) '440(110+330)
'■税込み計算をパーツ化しない場合
money = 100 * 1.1 '110
money = money + 300 * 1.1 '440(110+330)
End Sub
'■実際に計算するプロシージャ(パーツ化されたコード部分)
Public Function call_TaxIncrude(ByVal num As Long)
call_TaxIncrude = num * 1.1
End Function
注意点(よくある初心者の勘違い)
- 「Module1」などのモジュールに対して、一つの処理しか書けないんじゃないの?
→一つのモジュールに何個もプロシージャ(Sub ~End Sub)は書けます。 - コードが別の場所に書いてあるから、よくわからなくなる。(何のために分割するのかわからない)
→パット見よくわからないかもしれませんが、税率変わったときにすべての*1.1を書き換える?
それのが面倒。 - 今回の例(税込価格算出)は理解したが、実際のコードでどこで分割したらいいかわからない。
まずは同じ処理を一つにまとめてみて、概念を理解したほうがいいと思います。
特にInternetExplorerやSeleniumBasicでの自動操作の場合、
前任者が、読み込み待ち処理をパーツ化しておらず、
Webページを読み込む度に5行以上のコードが存在し、
パーツ化の概念理解している人が100行で書けるコードが、1000行になって見にくい状態でした。 - 実際には上記コードもいいコードではありません。
理由は税率なんてそこまで変わるわけではない。=定数化しておきましょう。



コメント