パーツ化とは
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行になって見にくい状態でした。 - 実際には上記コードもいいコードではありません。
理由は税率なんてそこまで変わるわけではない。=定数化しておきましょう。
コメント