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