Excel VBA xlPasteValuesは、コピーしたセルの値だけを貼り付ける定数です。数式や書式を含まない、値のみの貼り付けを行う際に使用します。具体的な使い方や、注意点やサンプルコードを紹介します。
日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用されます。
・数式を含むセルの計算結果のみを貼り付けたい。
・フォーマットやリンクを含まない値だけを他のセルに転記したい。
・大量のデータを処理する際に、書式設定や数式を無視して、値だけをコピーする必要がある。
Range.PasteSpecialメソッドと共に xlPasteValues を使用します。まず、コピー元のセルをコピーし、次に貼り付け先で PasteSpecial メソッドを使用して値のみを貼り付けます。
・コピー元セルの値のみを貼り付けるので、書式設定や数式は貼り付けられません。
・貼り付け先のセルには、元の書式がそのまま残ります。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Sub PasteValuesExample()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' コピー元のセル範囲を選択してコピー
ws.Range("A1:B2").Copy
' 貼り付け先のセルを選択し、値のみを貼り付け
ws.Range("D1").PasteSpecial Paste:=xlPasteValues
' クリップボードをクリア
Application.CutCopyMode = False
End Sub
1.変数の宣言
・ws: Worksheet 型の変数。作業シートを保持します。
2.シートの指定
・Set ws = ThisWorkbook.Sheets("Sheet1"): Sheet1を操作シートとして設定します。
3.コピー元のセル範囲を選択してコピー
・ws.Range("A1:B2").Copy: A1からB2の範囲をコピーします。
4.貼り付け先のセルを選択し、値のみを貼り付け
・ws.Range("D1").PasteSpecial Paste:=xlPasteValues: D1セルを選択し、PasteSpecialメソッドを使用して値のみを貼り付けます。
5.クリップボードをクリア
・Application.CutCopyMode = False: クリップボードの内容をクリアします。
サンプルコードでは、xlPasteValuesを利用してセルの値だけを他のセルに貼り付ける方法を理解できます。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。