Exxcel VBA Tips Excelのファイル同士でセル値をコピーする
Excelのワークブック(ワークシート)同士で内容を転記するVBAマクロです。
単一のファイル同士のコピーですが、少し修正すれば、複数ファイル同士も可能でしょう。
----------------
' このツールのBookとSheetを保存
Dim ToolBook As Workbook
Dim ToolBookName As String
Dim ToolSheet As Worksheet
Dim ToolSheetName As String
' この転記元ファイル
Dim OrgBook As Workbook
Dim OrgBookName As String
Dim OrgSheet As Worksheet
Dim OrgSheetName As String
' この転記先ファイル
Dim CopyBook As Workbook
Dim CopyBookName As String
Dim CopySheet As Worksheet
Dim CopySheetName As String
' 集計ボタン押下
Public Sub 集計実行()
' 高速化開始
Range("C1").Value = "実行中"
Application.ScreenUpdating = False
' 戻り先を保存
ToolBookName = ActiveWorkbook.Name
ToolSheetName = ActiveSheet.Name
' ファイル名設定を取り込み
Call 設定読み込み
' 出力ファイルをオープン
Set CopyBook = Workbooks.Open(CopyBookName)
' 転記処理
Call 転記処理
' 出力ファイルを保存してクローズ
CopyBook.Save
CopyBook.Close
' 戻り先を表示
Workbooks(ToolBookName).Activate
Range("A1").Select
' 高速化終了
Application.ScreenUpdating = True
Range("C1").Value = "終了"
End Sub
' ファイル名設定を取り込み
Private Sub 設定読み込み()
OrgBookName = Range("C3").Value
OrgSheetName = Range("E3").Value
CopyBookName = Range("C4").Value
CopySheetName = Range("E4").Value
End Sub
' 転記処理
Private Sub 転記処理()
' コピー元ファイルのオープン
Set OrgBook = Workbooks.Open(OrgBookName)
' 転記処理 メイン
' セルA1同士を転記
CopyBook.Sheets(CopySheetName).Range("A1").Value _
= OrgBook.Sheets(OrgSheetName).Range("A1").Value
' コピー元ファイルのクローズ
OrgBook.Close
End Sub