セルの値だけをコピーして貼り付ける方法
セルの値をコピーして貼り付けるには、セルを表すRange【レンジ】オブジェクトのCopy【コピー】メソッドを使用してコピーして貼り付ける方法がありますが、この方法の場合は指定したセルの内容をすべて(値・セルの色・罫線・数式)貼り付けになり表題の「セルの値だけコピーして貼り付ける」は実現できません。
すべて貼付けの場合のコード
Sub copyメソッド() Range("B3").Copy Range("C3") End Sub
このコードの場合はすべて貼り付けになります。
実行結果
セルの値を代入する方法
表題の「セルの値だけをコピーして貼り付ける方法」ではありませんが結果的に、セルの値だけを別のセルに貼り付けるには
代入演算子「=」を使用してセルの値を別のセルに代入する方法が簡単です。
コードと解説
Sub 代入演算子() Range("C3").Value = Range("B3").Value End Sub
代入演算子は右辺の値を左辺に代入します。つまりB3セルの値をC3セルに代入します。
単体のセルの代入の場合は、Range【レンジ】オブジェクトのValue【バリュー】プロパティは省略できますが、セル範囲を代入する場合は必須です。
実行結果
数式を除く値と書式を貼り付ける場合
上記では値のみを貼り付ける(正確には代入する)方法を説明しましたが、書式も引き継ぎたい場合があると思います。
その場合は、Range【レンジ】オブジェクトのPasteSpecial【ペーストスペシャル】メソッドを使用します。
Sub pastespecialメソッド() Range("B3").Copy Range("C3").PasteSpecial xlPasteValues Range("C3").PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub
【Range(“B3”).Copy】
Range【レンジ】オブジェクトのCopy【コピー】メソッドを使用して、B3セルをコピーします。引数Destination【ディスティネーション】に貼り付け先を指定しないので、コピーしたデータはクリップボードに保管されます。
3行目
【Range(“C3”).PasteSpecial xlPasteValues】
クリップボードに保管されているデータを指定したセル範囲に貼り付け、内容を指定して貼り付けるには、セルを表Range【レンジ】オブジェクトのPasteSpecial【ペーストスペシャル】メソッドを使用します。引数のPasteに貼り付ける内容をxlPasteValuesに設定して「値のみ貼り付ける」に設定します。
4行目
【Range(“C3”).PasteSpecial xlPasteFormats】
さらにPasteSpecial【ペーストスペシャル】メソッドの引数Pasteに「書式の貼り付け」を意味する定数のxlPasteFormatsを設定します。PasteSpecial【ペーストスペシャル】メソッドの貼り付け内容を表す引数Pasteの定数は1つしか設定できないので、複数の定数を設定する場合はこのように、別々に設定する必要があります。
5行目
【Application.CutCopyMode = False】
コピー元のB3セルがコピーモードのままで枠線が点滅しているためApplication【アプリケーション】オブジェクのCutCopyMode【カットコピーモード】プロパティにFalseを設定してコピーモードを解除します。
実行結果
以上で、セルの値だけをコピーして貼り付ける方法についての解説を終了します。
ありがとうございました。