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

違う範囲に加算や減算を行い時は、G3:G35の部分を書き換えれば良いのですが、汎用的に選択範囲を対象としたコードが欲しい場合もあります。
この場合、Evaluateメソッドでは、数式の記述が少しだけ複雑になります。
というのは、その範囲の セル参照を文字列として取得する必要があるからです。
Selectionに対してAddressプロパティで、選択範囲のアドレスを取得してやります。
コードは、このように変更します。
Sub 選択範囲に一括減点する()
    Selection.Value = Evaluate(Selection.Address & "-30")
End Sub
    
選択範囲の値から一括-30しました。
イミディエイトウィンドーからも実行することができます。
Sub マクロ名()~ End Sub を書く必要はありません。 コード内にカーソルを置きEnterキーで実行されます。こちらもお試しください。
Selection.Value = Evaluate(Selection.Address & "-30")
    
今日の講義は以上です。お疲れ様でした。

スポンサーリンク
スポンサーリンク
おすすめコンテンツ