
Excel VBA セルの値のみをコピーし、書式や数式を除外して貼り付けるために使用します。数式を含むセルを値として保存したい場合や、他のセルの書式を維持したい場合に便利です。使い方や注意点など、サンプルコードをもとに具体的に解説します。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る
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
「いまは、きちんと勉強しなくてもなんとかなる」は今だけ?
そのままいけば、AIの進歩で1年後には時代遅れの人になっているかも。
👉 詳細はこちら
・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
2025年解消したい。「毎日、やることが多すぎて…そんなあなたへ」
👉詳細はこちら
・Value を直接代入するため、Copy を使わず高速処理が可能
・書式や結合セルはコピーされない
Excel VBA セルの値のみをコピー|まとめ
方法 | 特徴 | メリット | デメリット |
PasteSpecial | Copy と組み合わせる | 書式を除いて値だけ貼り付け可 | クリップボードを使用するため遅い |
Value 代入 | Range.Value を直接代入 | 高速処理が可能 | 書式や結合セルがコピーされない |
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!