コピー Copy・PasteSpecialメソッドVBA

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

VBA

Copy メソッド

  • 構文 1 では

    、コントロールまたは描画オブジェクトをクリップボードにコピーします。また、グラフのデータ要素またはデータ系列のピクチャをクリップボードにコピーします。
  • 構文 2 では

    、Range オブジェクトを指定したセル範囲へ、またはクリップボードへコピーします。
  • 構文 3 では

    、シートをブック内の他の場所にコピーします。
  • 構文 1

  • expression.Copy
  • 構文 2

  • expression.Copy(Destination)
  • 構文 3

  • expression.Copy(Before, After)
  • expression
    必ず指定します。対象となるオブジェクトへの参照を表すオブジェクト式を指定します。グラフ シート全体をコピーするときは、構文 3 で対象となる Chart オブジェクトを指定します。グラフ エリアだけをコピーするときは、構文 1 で対象となる ChartArea オブジェクトを指定します。
  • Destination
    省略可能です。バリアント型 (Variant) の値を使用します。コピー先のセル範囲を指定します。この引数を省略すると、クリップボードへコピーされます。
  • Before
    省略可能です。バリアント型 (Variant) の値を使用します。コピーしたシートを特定のシートの直前の位置に挿入するときに、そのシートを指定します。ただし、引数 Before を指定すると、引数 After を指定することはできません。
  • After
    省略可能です。バリアント型 (Variant) の値を使用します。コピーしたシートを特定のシートの直後の位置に挿入するときに、そのシートを指定します。ただし、引数 After を指定すると、引数 Before を指定することはできません。
  • 解説

  • 引数 Before と引数 After の両方を省略した場合は、新規ブックが自動的に作成され、シートはそのブック内にコピーされます。
  • Copy メソッドの使用例

  • 次の使用例は、シート 1 のコピーを、シート 3 の後に挿入します。
  • Worksheets("Sheet1").Copy after := Worksheets("Sheet3")
  • 次の使用例は、シート 1 で使われたセル範囲をコピーし、新しくワークシートを作成して、そのワークシートにコピーしたセル範囲の値を貼り付けます。

    Worksheets("Sheet1").UsedRange.Copy
    Set newSheet = Worksheets.Add
    newSheet.Range("A1").PasteSpecial Paste:=xlValues
    次の使用例は、シート 1 のセル範囲 A1:D4 をシート 2 のセル範囲 E5:H8 にコピーします。

    Worksheets("Sheet1").Range("A1:D4").Copy _
    destination:=Worksheets("Sheet2").Range("E5")

PasteSpecial メソッド

Range オブジェクトの場合

指定された範囲にクリップボードのデータを貼り付けます。

Worksheet オブジェクトの場合

指定された書式でクリップボードの内容をシートに貼り付けます。このメソッドは他のアプリケーションからデータを貼り付ける場合、または特別な形式でデータを貼り付ける場合に使います。

PasteSpecial メソッド (Range オブジェクト)

クリップボードのデータを、指定されたセル範囲に貼り付けます。

  • 構文

  • expression.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
  • expression
    必ず指定します。対象となる Range オブジェクトを表すオブジェクト式を指定します。
  • Paste
    省略可能です。バリアント型 (Variant) の値を使用します。指定範囲に何を貼り付けるかを指定します。
  • 使用できる定数は、XlPasteType クラス
  • xlPasteAll 全て 既定値
    xlPasteFormulas  
    xlPasteValues  
    xlPasteFormats 書式  
    xlPasteComments コメント  
    xlPasteAllExceptBorders 入力規則  
  • Operation
    省略可能です。バリアント型 (Variant) の値を使用します。貼り付けの方法を指定します。
  • 使用できる定数は、XlPasteSpecialOperation クラス
  • xlPasteSpecialOperationNone しない 既定値
    xlPasteSpecialOperationAdd 加算
    xlPasteSpecialOperationSubtract 減算
    xlPasteSpecialOperationMultiply 乗算
    xlPasteSpecialOperationDivide 除算
  • SkipBlanks
    省略可能です。バリアント型 (Variant) の値を使用します。クリップボードに含まれる空白のセルを貼り付けの対象にしないようにするには、True を指定します。既定値は False です。
  • Transpose
    省略可能です。バリアント型 (Variant) の値を使用します。指定すると、貼り付けのときにデータの行と列を入れ替えるには、True を指定します。既定値は False です。
  • PasteSpecial メソッド (Range オブジェクト) の使用例

  • 次の使用例は、シート 1 のセル範囲 D1:D5 の各セルのデータに、シート 1 のセル範囲 C1:C5 の対応するセルのデータを加算します。

    With Worksheets("Sheet1")
    .Range("C1:C5").Copy
    .Range("D1:D5").PasteSpecial _
    Operation:=xlPasteSpecialOperationAdd
    End With

PasteSpecial メソッド (Worksheet オブジェクト)

指定された形式で、クリップボードの内容をシートに貼り付けます。他のアプリケーションからデータを貼り付けるときや、あるいは特別な形式でデータを貼り付ける場合に使います。

  • 構文

  • expression.PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel)
  • expression
    必ず指定します。対象となる DialogSheet オブジェクト、または Worksheet オブジェクトを表すオブジェクト式を指定します。
  • Format
    省略可能です。バリアント型 (Variant) の値を使用します。クリップボードのデータの形式を文字列で指定します。
  • Link
    省略可能です。バリアント型 (Variant) の値を使用します。元のデータと貼り付けたデータの間にリンクを設定するには、True を指定します。元のデータがリンクに適さないデータである場合や、元のデータを作成したアプリケーションがリンクをサポートしない場合には、この引数は無視されます。既定値は False です。
  • DisplayAsIcon
    省略可能です。バリアント型 (Variant) の値を使用します。貼り付けたデータはアイコンとして表示するには、True を指定します。既定値は False です。
  • IconFileName
    省略可能です。バリアント型 (Variant) の値を使用します。使われるアイコンの含まれているファイルを指定するには、引数 DisplayAsIcon に True を指定します。
  • IconIndex
    省略可能です。バリアント型 (Variant) の値を使用します。アイコン ファイルのどのアイコンを使うかを示すインデックス番号を指定します。
  • IconLabel
    省略可能です。バリアント型 (Variant) の値を使用します。アイコンのラベルを文字列で指定します。
  • 解説

  • このメソッドを使う前に、貼り付け先のセル範囲を必ず選択してください。
  • このメソッドは、クリップボードの内容に合うように現在の選択範囲を変更します。
  • PasteSpecial メソッド (Worksheet オブジェクト) の使用例

  • 次の使用例は、クリップボードの Word 文書のオブジェクトを、シート 1 のセル D1 に貼り付けます。
  • Worksheets("Sheet1").Range("D1").Select
  • ActiveSheet.PasteSpecial Format:="Microsoft Word 文書 オブジェクト"
  • 次の使用例は、クリップボードの Word 文書のオブジェクトを、シート 1 のセル F5 に貼り付け、それをアイコンとして表示します。

    Worksheets("Sheet1").Range("F5").Select
    ActiveSheet.PasteSpecial _
    Format:="Microsoft Word 8.0 文書 オブジェクト", _
    DisplayAsIcon:=True

 

 

2000年01月01日|[VBサンプルコード]:[Copy]