Excel VBA セル範囲を別の複数シートにコピーする-FillAcrossSheets

Excel VBAであるシートの特定のセル範囲別の複数のシートコピーする方法の記録です。

この場合は「FillAcrossSheets」メソッドを使います。

< スポンサーリンク >





「FillAcrossSheets」メソッド構文

式.FillAcrossSheets (Range, Type)

 = Sheetsオブジェクトを表す変数です。

Range = 必須。コレクション内のすべてのワークシートに指定するセル範囲です。セル範囲は、コレクション内のワークシートの1つに存在する必要があります。

Type = 省略可能。セル範囲のコピー方法を指定します。

Typeの指定は以下。

内容
xlFillWithAll値と書式をコピーします
xlFillWithContents値のみをコピーします
xlFillWithFormats書式のみをコピーします

VBAで特定のセル範囲を別の複数のシートにコピーする

Sheet1のB2~C6セルをSheet3とSheet5にコピーしてみます。

ExcelSheet1
Sheet1
ExcelSheet3
Sheet3
ExcelSheet15
Sheet5

 

値と書式をコピー

特定のセル範囲を別の複数シートにコピーする場合、値と書式をコピーしたい場合は、Typeを省略してもOKです。

Sub test()
    Dim x As Variant

    x = Array(“Sheet1”, “Sheet3”, “Sheet5”)
    Sheets(x).FillAcrossSheets _
    Worksheets(“Sheet1”).Range(“B2:C6”)
End Sub

ExcelVBA
ExcelSheet3
Sheet3
ExcelSheet5
Sheet5

 

値のみコピー

値のみをコピーしてみます。

Sub test()
    Dim x As Variant

    x = Array(“Sheet1”, “Sheet3”, “Sheet5”)
    Sheets(x).FillAcrossSheets _
    Worksheets(“Sheet1”).Range(“B2:C6”), xlFillWithContents
End Sub

ExcelVBA
ExcelSheet3
Sheet3
ExcelSheet3
Sheet5

 

書式のみコピー

書式のみをコピーしてみます。

Sub test()
    Dim x As Variant

    x = Array(“Sheet1”, “Sheet3”, “Sheet5”)
    Sheets(x).FillAcrossSheets _
    Worksheets(“Sheet1”).Range(“B2:C6”), xlFillWithFormats
End Sub

ExcelVBA
ExcelSheet3
Sheet3
ExcelSheet5
Sheet5

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします