選択範囲の数値に同じ数値を追加したり演算する〜Excel VBA 3行マクロ
3行マクロ講座 47回〜すぐに役立つ3行マクロ
選択範囲の数値に同じ数値を追加する
3行マクロ講座 41回では、範囲を指定してその範囲内の数値に一括加算するというEvaluateメソッドを使ったマクロを紹介しました。
今回は、汎用的に使うために、範囲を指定しないで、選択範囲に対して同じ数値を加算したり、
減算したり等の演算をするという3行マクロです。
(サンプルファイルは、こちらから 3行マクロ47回サンプルデータ)
選択範囲に数値を加算、減算等もできる
指定した範囲、Range("G3:G35") のそれぞれのセルの値に対して、Evaluate("G3:G35+3")で3を加算するという意味のコードになります。

Sub 範囲に一括加点する()
Range("G3:G35").Value = Evaluate("G3:G35+3")
End Sub

違う範囲に加算や減算を行い時は、の部分を書き換えれば良いのですが、汎用的に選択範囲を対象としたコードが欲しい場合もあります。
この場合、Evaluateメソッドでは、数式の記述が少しだけ複雑になります。
というのは、その範囲の セル参照を文字列として取得する必要があるからです。
Selectionに対してAddressプロパティで、選択範囲のアドレスを取得してやります。

この場合、Evaluateメソッドでは、数式の記述が少しだけ複雑になります。
というのは、その範囲の セル参照を文字列として取得する必要があるからです。
Selectionに対してAddressプロパティで、選択範囲のアドレスを取得してやります。

コードは、このように変更します。

Sub 選択範囲に一括減点する()
Selection.Value = Evaluate(Selection.Address & "-30")
End Sub

選択範囲の値から一括-30しました。


イミディエイトウィンドーからも実行することができます。
Sub マクロ名()〜 End Sub を書く必要はありません。 コード内にカーソルを置きEnterキーで実行されます。こちらもお試しください。
Sub マクロ名()〜 End Sub を書く必要はありません。 コード内にカーソルを置きEnterキーで実行されます。こちらもお試しください。
Selection.Value = Evaluate(Selection.Address & "-30")
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク
おすすめコンテンツ