エクセルVBAでクラスモジュールを使う 【第4回】VBAで相対参照の四則演算式を指定列に入れる
相対参照の計算式を複数行に自動で設定できると結構便利なので試してみました。例えば、
① D列に=F列 - H列の数式を組み込むケース
② E列に=F列 - G列の数式を組み込むケース
作成したプロシージャの使い方としては、
① Call 汎用.Col_A_equal_B_calc_C("MainSheet", "D2", "F2", "-", "H2")
シート名"MainSheet"の2行目から始まるデータを対象範囲として、
D列に、 =F列 - H列の式を組み込む(第4引数が四則演算子)
② Call 汎用.Col_A_equal_B_calc_C("MainSheet", "E2", "F2", "-", "G2")
シート名"MainSheet"の2行目から始まるデータを対象範囲として、
E列に、 =F列 - G列の式を組み込む(第4引数が四則演算子)
※対象範囲の最下行はプロシージャが探して設定してくれます。
RowNoBottom_Main = 汎用.Ck_EndxlDown0_F(WS, Cell_C)の
汎用.Ck_EndxlDown0_F(WS, Cell_C)は、対象範囲の最終行を取り出す別のプロシージャを呼び出して、結果をRowNoBottom_Mainに代入しています。
FormulaToSet = Cell_A & ":" & Split(Range(Cell_A).Address, "$")(1) & RowNoBottom_MainのSplit(Range(Cell_A).Address, "$")(1)は第2引数で入力したセル名からSplit関数で$を区切り文字にして列名のアルファベットを取り出しています。
やり方はいろいろありそうですが、上記の【改良前】と【改良後】では、【改良後】の方がかなりわかり易くなりました。