
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ベーシック選択問題集をご用意しました。
・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ベーシック選択問題集をご用意しました。
・Value を直接代入するため、Copy を使わず高速処理が可能
・書式や結合セルはコピーされない
Excel VBA セルの値のみをコピー|まとめ
| 方法 | 特徴 | メリット | デメリット |
| PasteSpecial | Copy と組み合わせる | 書式を除いて値だけ貼り付け可 | クリップボードを使用するため遅い |
| Value 代入 | Range.Value を直接代入 | 高速処理が可能 | 書式や結合セルがコピーされない |
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。