セル範囲のデータを選択中の複数シートに一括コピー
 サンプルではInputBoxでユーザが指定する範囲のデータを選択中の
シートすべてにコピーします。

※指定した範囲と同アドレスのセル範囲へのコピーです。また、
 複数のシートを手動で選択するにはCtrlキーを押しながら順に
 シートを選択します。コードから行う場合はArray関数を使用します。
 (例)Sheets(Array(1, 2)).Select
    Sheets(Array("Sheet1", "Sheet2")).Select

'=======標準モジュール========

Sub CopyRangeToSelectedSheets()

    '複数シートを選択していない場合は中断
    If ActiveWindow.SelectedSheets.Count < 2 Then
        MsgBox "複数シートを選択してください"
        Exit Sub
    End If
    
    Dim Rng As Range
    
    On Error Resume Next 'キャンセル回避
    
    'コピーする範囲を選択する
    Set Rng = Application.InputBox("範囲指定", Type:=8)
    
    On Error GoTo 0 'エラー処理を初期状態に戻す
    
    '対象範囲を選択中のすべてのシートの同位置にコピー
    If TypeName(Rng) = "Range" Then
        ActiveWindow.SelectedSheets.FillAcrossSheets _
            Range:=Rng, Type:=xlFillWithAll
    End If

End Sub

※FillAcrossSheetsメソッドのType引数には・・・
 xlFillWithAll、xlFillWithContents、xlFillWithFormulas
 が指定できます。

 また、このメソッドは複数シートを選択した状態でメニューの
”編集”- ”フィル”- ”作業グループへコピー”の動作をマクロ
記録することで確認できます。

Excel97/2000



戻る


Excel Word Access VBA! モーグ