ExcelVBA セルの値のみをコピーし、書式や数式を除外して貼り付ける方法

 

Excel VBA セルの値のみをコピーし、書式や数式を除外して貼り付けるために使用します。数式を含むセルを値として保存したい場合や、他のセルの書式を維持したい場合に便利です。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA セルの値のみをコピー|シーン

以下のシーンで利用します。

1.計算結果を固定し、数式を削除したい。

2.ある範囲のデータを別のシートへコピーする際、書式を維持せず値だけを貼り付けたい。

3.外部データを取り込み、数値を加工する。

 

「値のみコピー」は PasteSpecial メソッドを使います。 また、Value プロパティを使うことで、よりシンプルに値をコピーできます。

 

注意点

・PasteSpecial は Range.Copy と Range.PasteSpecial のセットで使用する必要があります。

・Value を直接コピーする方法は PasteSpecial よりも高速ですが、結合セルなど特殊な書式はコピーされません。

・Application.CutCopyMode = False を実行しないと、コピーの点滅枠が残ることがあります。

 

Excel VBA セルの値のみをコピーサンプルコード

PasteSpecial を使った値のみコピー

Option Explicit

Sub CopyValues_PasteSpecial()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' コピー元シート
    
    ws.Range("A1:B10").Copy ' コピー
    ws.Range("D1").PasteSpecial Paste:=xlPasteValues ' 値のみ貼り付け
    
    Application.CutCopyMode = False ' コピーの点滅枠を解除
End Sub

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

・Copy でコピーした後、PasteSpecial Paste:=xlPasteValues で値のみ貼り付け
・Application.CutCopyMode = False でクリップボードをクリア

Value プロパティを使ったシンプルな方法

Option Explicit

Sub CopyValues_Direct()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' コピー元シート
    
    ws.Range("D1:D10").Value = ws.Range("A1:A10").Value ' 値のみコピー
End Sub

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

・Value を直接代入するため、Copy を使わず高速処理が可能
・書式や結合セルはコピーされない

 

Excel VBA セルの値のみをコピーまとめ

方法 特徴 メリット デメリット
PasteSpecial Copy と組み合わせる 書式を除いて値だけ貼り付け可 クリップボードを使用するため遅い
Value 代入 Range.Value を直接代入 高速処理が可能 書式や結合セルがコピーされない

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問