Excel。VBA。コピーして値として貼り付けを手早く処理したい
<Excel VBA>
つぎのような表があります。
C2:C5とB6:C6には、数式が設定されています。
数式では、値として固定されていません。
そこで、コピーして、そのまま値として貼り付けを行いたい。
単純な作業ですが、面倒です。
まして、一度きりでなければ、なおさら面倒です。
そこで、今回は、Excel VBAでプログラムをつくってみることにしました。
Sub 値貼り付け()
With Range("A1").CurrentRegion
.Value = .Value
End With
End Sub
実行してみます。
C2をクリックしてみると、数式ではなく、値に変わっていることが確認できます。
とてもシンプルなプログラム文ですが、コピー値の貼り付けができています。
では、プログラム文を確認しておきましょう。
With Range("A1").CurrentRegion
With~End With文です。With文をつかうことで、そのあとの構文を繰り返し入力しなくて済むようになります。
Range("A1").CurrentRegion
A1を起点とした連続するセル。すなわち、A1を起点とした表を範囲選択します。
.Value = .Value
セル範囲の値(数式の結果)を改めて、同じ範囲に代入します。
この1行だけで、コピー値として貼り付けをしています。