MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【VBA】プログラムにExcelの数式を組み込む
profile-img
投稿者: 横田 一達さん
投稿日:2023/02/22 12:00
更新日:
like-img
分類
技術
テクノロジー
その他
キャリア
運用・保守 / テクニカルサポート
投稿内容

VBAのプログラムにExcelの数式を組み込むためのコードを紹介していきます。


上の画像は、A列にある本体価格とB列にある軽減税率かどうかの判定(食品などで〇の場合は8%、その他は10%)、

C列はA列とB列で税込金額を表示する内容となっております。

画像C2セルの数式は「=IF($B2="",$A2*1.1,$A2*1.08)」となっておりますが、

VBAを利用して、数百・数千件など膨大データを取り込んで計算する場合、Excelの数式を毎回コピーして貼り付けするのは負担が大きくなります。

そこで、データを取り込む際にC列の数式をプログラムに組み込むことにより、負担を軽減することができます。


C2セルだけに数式を入力したい場合は

・Range("C2").Formula = "=IF($B2="""",$A2*1.1,$A2*1.08)"

・Range("C2").FormulaR1C1 = "=IF(RC2="""",RC1*1.1,RC1*1.08)"

※ダブルクォーテーションなどは文字として認識させるように注意してください

と入力します


「.FormulaR1C1」は数式をR1C1形式で設定します。複数のセルにExcelの数式を組み込みたい場合はこちらをお勧めします。

A列に金額が記載されている分だけC列に数式を入力したい場合は

・Range(Cells(2, 3), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 3)).FormulaR1C1 = "=IF(RC2="""",RC1*1.1,RC1*1.08)"

となります。

R1C1形式から通常の形式へ数式を変更する場合は、Excelのオプションから[数式]-[R1C1参照系列を使用する]

のチェックを外してください。


以上、VBAプログラムにExcelの数式を組み込む方法でした。

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3