- ベストアンサー
エクセルマクロで他のブックを複製するには?
件名の操作ができるマクロを書きたいのですが、どなたか教えて頂けるでしょうか。 エクセル2007で、マクロで同フォルダにある別のブックそのものをコピーし、 同フォルダに複製してできたブックに別名をつけて保存するという作業をしたいと思っております。 別ブックからシート情報をコピーする方法などは見つかったのですが、 他のブックそのものをコピーするという方法が見つかりませんでした。 これが可能な事なのかもわかっていません。 どうぞよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>マクロで同フォルダにある別のブックそのものをコピーし、同フォルダに複製してできたブックに別名をつけて保存 'コピーするブック名と対応する保存別名を設定したシートをアクティブにして実行 '拡張子を含める場合は、Const xExtent = "”、とする Option Explicit Sub CopyRobo() 'Const xExtent = ".xls" Const xExtent = "" Dim xSheet As Worksheet Dim xPath As String Dim xName As String Dim xName_To As String Dim xLast As Long Dim nn As Long Application.ScreenUpdating = False Application.DisplayAlerts = False xPath = ThisWorkbook.Path & "\" Set xSheet = ActiveSheet xSheet.Columns("C").ClearContents xLast = xSheet.Cells(Rows.Count, "A").End(xlUp).Row For nn = 1 To xLast 'ブック名はActiveSheetのセルに設定されている If IsEmpty(xSheet.Cells(nn, "A").Value) Or IsEmpty(xSheet.Cells(nn, "B").Value) Then xSheet.Cells(nn, "C").Value = "What's your Name?!" Else xName = xSheet.Cells(nn, "A").Value & xExtent xName_To = xSheet.Cells(nn, "B").Value & xExtent If (xName = xName_To) Then xSheet.Cells(nn, "C").Value = "The Same!!" Else If (xName = ThisWorkbook.Name) Or (xName = ThisWorkbook.Name) Then xSheet.Cells(nn, "C").Value = "Bad Name!!" Else FileCopy (xPath & xName), (xPath & xName_To) End If End If End If Next Epilogue: xSheet.Columns("A:C").AutoFit Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub