HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > セルに貼り付ける(Pasteメソッド)

即効テクニック

セル操作関連のテクニック

セルに貼り付ける(Pasteメソッド)

(Excel 2000)
引数を省略した場合、クリップボードの内容を指定したワークシートの選択範囲に貼り付けます。選択範囲以外に貼り付ける際にはDestinationで貼り付け先を指定します。また、引数LinkにTrueを指定するとリンク貼り付けもできますが、DestinationとLinkの併用はできません。

 構文  Object.Paste(Destination, Link)

 設定項目        内容
  Object          Worksheetオブジェクト
  Destination     貼り付け先のセル範囲を表すRangeオブジェクト [省略可能]
  Link            リンク貼り付けをする(True)、しない(False) [省略可能]
●サンプル●
Sub PasteSamp1()

    Range("A1").Copy
    Range("B2:B7").Select
    '----(1)
    ActiveSheet.Paste
    '----(2)
    ActiveSheet.Paste Destination:=Range("C2:C7")

End Sub
(1)のステートメントは、選択範囲であるセルB2〜B7にCopyメソッドでコピーしたセルA1の内容を貼り付けています。このステートメントの前に貼り付け先の選択が必要です。(2)のステートメントはDestinationで貼り付け先をC2〜C7に指定しています。このサンプルの場合、コピー元が単体のセルであるため、どのようなセル範囲にも貼り付けが可能ですが、クリップボードの内容が指定したセル範囲の形状に合わない場合にはエラーとなりますので、注意してください。

●ポイント●
リンク貼り付けをする際には、Destinationで貼り付け先を選択できないため、必ず貼り付け先を選択する必要があります。つまり、他のシートに貼り付ける際には必ずそのシートを選択しなくてはいけません。しかし、リンク貼り付けとはコピー元を参照する数式をコピー先に入力する処理ですから、もし貼り付け先シートを選択したくない場合には、Formulaプロパティを使って数式を入力してください。
逆にDestinationを指定する場合には、Objectで指定するワークシートとDestinationで指定するセル範囲の含まれるワークシートが別のワークシートであっても問題無く動作しますので、常に「Activesheet.Paste」と、Activesheetを指定していても構いません。