セルの Copy,Insert,Delete メソッド

スポンサーリンク

Copy メソッド

セルの値・数式・書式などを単純にコピー&ペーストするには Copy メソッドを使用します。Copy メソッドの引数としてコピー先のセルまたはレンジを指定すると、そこへ貼り付けることができます。

構文
object.Copy [Destination]

※objectはセルまたはレンジオブジェクトを表す変数

引数名 省略 説明
Destination コピー先のセル範囲を指定します。この引数を省略すると、クリップボードにコピーされます。

以下のサンプルマクロは、B3~B13の範囲にあるセルの値や書式などすべてをC3~D13へコピーします。コピー先のセル範囲の方が多いのでその分複製されるのがポイントです。

Sub sample6_33()
    'コピー&ペースト
    Range("B3:B13").Copy Range("C3:D13")
End Sub
sample6_33の実行前
sample6_33の実行前
sample6_33の実行結果
sample6_33の実行結果

PasteSpcial メソッド

Copy メソッドの引数を省略すると、コピーした内容はクリップボードへ退避されます。その後PasteSpcial メソッドを使用すると様々な貼り付け方が可能になります。

構文
object.PasteSpecial [Paste] [, Operation] [, SkipBlanks] [, Transpose]
引数名 省略 定数 説明
Paste xlPasteAll すべてを貼り付けます。
xlPasteAllExceptBorders 輪郭以外のすべてを貼り付けます。
xlPasteAllUsingSourceTheme テーマを使用してすべてを貼り付けます。
xlPasteColumnWidths 列幅を貼り付けます。
xlPasteComments コメントを貼り付けます。
xlPasteFormats 書式を貼り付けます。
xlPasteFormulas 数式を貼り付けます。
xlPasteFormulasAndNumberFormats 数式と数値の書式を貼り付けます。
xlPasteValidation 入力規則を貼り付けます。
xlPasteValues 値を貼り付けます。
xlPasteValuesAndNumberFormats 値と数値の書式を貼り付けます。
Operation xlPasteSpecialOperationAdd コピーしたデータは、対象セルの値に加算されます。
xlPasteSpecialOperationDivide コピーしたデータは、対象セルの値によって除算されます。
xlPasteSpecialOperationMultiply コピーしたデータには、対象セルの値に乗算されます。
xlPasteSpecialOperationNone 貼り付け操作で計算は行われません。
xlPasteSpecialOperationSubtract コピーしたデータは、対象セルの値が減算されます。
SkipBlanks True / False(規定値) 空白のセルを貼り付けの対象にしないようにするには、True を指定します。
Transpose True / False(規定値) データの行と列を入れ替えるには、True を指定します。

次のサンプルマクロは PasteSpecial メソッドで書式のみをコピーする例です。

Sub sample6_34()
    'クリップボードへコピー
    Range("B3:B13").Copy
    '書式だけを貼り付け
    Range("C3:D13").PasteSpecial xlPasteFormats
End Sub
sample6_34の実行前
sample6_34の実行前
sample6_34の実行結果
sample6_34の実行結果

Insert メソッド

空のセルを挿入またはコピーしたセルを挿入する場合は Insert メソッドを使用します。引数として右または下のどちらへセルをシフトさせるかを指定します。この引数を省略すると、セル範囲の形に適した方向にシフトされます。

構文
object.Insert [Shift]
引数名 省略 定数 説明
Shift xlShiftToRight セルを右方向へシフトする
xlShiftDown セルを下方向へシフトする

Insertメソッドの使用例

次のサンプルマクロは単純にセルを挿入する例です。挿入箇所にはエクセルが自動的に書式を補完しています。

Sub sample6_35()
    '空のセルを挿入(右方向へシフト)
    Range("C3:C13").Insert xlShiftToRight
End Sub
sample6_35の実行前
sample6_35の実行前
sample6_35の実行結果
sample6_35の実行結果

Insertメソッドの使用例(Copy メソッド実行後)

Copy メソッド実行後に、Insert メソッドを使用すると、コピーしたデータを挿入することができます。

sample6_36()
    'クリップボードへコピー
    Range("B3:B13").Copy
    'コピーしたセルを挿入
    Range("C3:C13").Insert xlShiftToRight
End Sub
sample6_36の実行前
sample6_36の実行前
sample6_36の実行結果
sample6_36の実行結果

Delete メソッド

セルを削除したい場合は Delete メソッドを使用します。引数として左または上のどちらへセルをシフトさせるかを指定します。この引数を省略すると、セル範囲の形に適した方向にシフトされます。

構文
object.Delete [Shift]
引数名 省略 定数 説明
Shift xlShiftToLeft セルを左方向へシフトする
xlShiftUp セルを上方向へシフトする

次のサンプルマクロはセルを削除し、左方向へシフトさせて削除部分を穴埋めする例です。

Sub sample6_37()
    'セルを削除(左方向へシフト)
    Range("B3:B13").Delete xlShiftToLeft
End Sub
sample6_37の実行前
sample6_37の実行前
sample6_37の実行結果
sample6_37の実行結果
タイトルとURLをコピーしました