マクロルーティン#18(数式を入力せずに値だけを入力する)
マクロで計算して計算結果をセルに入力する
皆さんこんにちは。
今回はマクロで計算して値だけをセルに入力する方法をご紹介します。
★計算式が入っているとその分容量が大きくなってしまいますよね。。
そんなときはマクロで計算してセルには値だけ入るようにしましょう!
★次の図のようなデータがあります。
このデータのD列に消費税を入れたいです。このとき計算式は入れたくないです。
◆目標
まずD2セルにいれる消費税の値をマクロで計算して値だけをいれる。
◆書くコード
Range("D2").Value = Range("C2").Value * 0.1
◆解説
読み方:D2の値 は C2の値 × 0.1
これは大丈夫ですね!
今後、この一行のコードを10行目の分まで書けば消費税の値を入れることができます。
でも、2行目から10行目まで9行も同じようなコードを書かなくてもいい書き方があるのでそれをご紹介します。
◆考え方
★先ほどのコードで、2行目を表す「2」の部分を 3,4,5,6,7,8,9,10 と置き換えて実行すればよい。
先ほどのコード:Range("D2").Value = Range("C2").Value * 0.1
★ローマ字の「i」に置き換えてみる
・Range("D i ").Value = Range("C i ").Value * 0.1
これで「i」を2から10までひとつづつ増やしていけばいい。
◆書くコード
◆解説
・For i = 2 to 10
➡これは「i」が2,3,4,5,6,7,8,9,10と、2から10まで変わってね。という指示の書き方です。
次の行に実行するコードを書き終わったら、最後に必ずNextで閉じます。
・Range("D" & i ).Value
Range("D i ").Value ←これじゃダメなの?
<"D i " だとマクロが動いてくれない理由>
Dは文字なのでダブルクォーテーションで囲います。
i は 2,3,4,5,6,7,8,9,10 と変わっていく変数です。
"D i "と書くとDi という文字列とみなされるので i は単独で変数扱いをされなくなります。
なので、Dはダブルクォーテーションで囲って、i はそのままで、二つを「&」でつなげてあげます。
右辺の Range("C" & i).Value これも上と同じ解説です。
* 0.1
これは大丈夫ですね。掛け算は「*」アスタリスクです。
コードウィンドウの一番上に次の図のように
「Option Explicit」と表示されている場合は削除してくださいね。
これが表記された状態だと今ご紹介したマクロは動きません。
これは変数を使うときに変数であるという宣言をしなければならないのです。
たとえば、今回紹介したマクロでは「i」を変数として使っているので、
「Dim i as Long」(= i は整数が入る変数です)
という変数宣言の一行を書かなければいけません。
★変数宣言を強制することによって、わざわざ複雑にすることはありません。
◆まとめ
長々書いてしまいましたが、次の図のとおりこのまま書き方を覚えておけば応用はきくのです!
★まずは、このままコードをまねして書いてみましょう。書いているうちに自分のものになりますよ!
◆動画
動画でも解説しています。
それでは、次回マクロルーティン#19で。
この記事が気に入ったらサポートをしてみませんか?