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