選択範囲の数値に同じ数値を追加したり演算する
3行マクロ 47回
選択範囲の数値に同じ数値を追加する
3行マクロ講座 41回では、範囲を指定してその範囲内の数値に一括加算するというEvaluateメソッドを使ったマクロを紹介しました。
今回は、汎用的に使うために、範囲を指定しないで、選択範囲に対して同じ数値を加算したり、
減算したり等の演算をするという3行マクロです。
(サンプルファイルは、こちらから 3行マクロ47回サンプルデータ)
Excelバージョン:
選択範囲に数値を加算、減算等もできる
指定した範囲、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")
今日の講義は以上です。お疲れ様でした。