4/20/2025

Excel。VBA。コピーして値として貼り付けを手早く処理したい【COPY】

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行だけで、コピー値として貼り付けをしています。