- ベストアンサー
エクセルVBA ファイル名操作
エクセルマクロのコードにおきまして 「フォルダの選択」ダイアログから エクセルファイル 123.xlsxを例えば 開くときに それをa.xlsxという名前に変えて 以下のそれに続くVBAコードにおいて a.xlsxを操作したいのですが、 a = Application.GetOpenFilename() Workbooks.Open a これを実行すると求めるダイアログが表示されて 使いたい123.xlsxを開くをクリックしますが これでは123.xlsxがa.xlsxにはなりません このa.xlsxのファイル名で別途ファイル作成する方法を 御教示いただけると助かります よろしくお願いします win10 office365 コードは以下 部分ですが こういう流れで作成したい所存です Sub あいう() a = Application.GetOpenFilename() Workbooks.Open a 'b.xlsxファイルを新規作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\あいう\b.xlsx", FileFormat:=xlXMLSpreadsheet 'a.xlsxファイルの1行目のA1~AG1のセルの値をコピー Workbooks("a.xlsx").Worksheets("Sheet1").Range("A1:AG1").Copy 'b.xlsxファイルのA3~AG3のセルに貼り付け Workbooks("b.xlsx").Worksheets("Sheet1").Range("A3:AG3").PasteSpecial xlPasteValues 以下省略 よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コピーが必要なのか名前を変更するのかいまいちわからないので以下で必要な方を選んでください。 Dim FileName As Variant Dim NewFile As Workbook FileName = Application.GetOpenFilename() 'ファイルのコピーがしたい 'FileCopy FileName, Left(FileName, InStrRev(FileName, "\")) & "b.xlsx" ''ファイル名を変更したい 'Name FileName As Left(FileName, InStrRev(FileName, "\")) & "b.xlsx" Set NewFile = Workbooks.Open(Left(FileName, InStrRev(FileName, "\")) & "b.xlsx") 以後NewFIleで新しいブックにアクセスできます。
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1719/2589)
コピーするのでしたら以下の方法でも Dim FileName As Variant Dim NewFile As Workbook FileName = Application.GetOpenFilename() Set NewFile = Workbooks.Open(FileName) NewFile.SaveAs "b.xlsx"
お礼
有り難うございます 出来ました
お礼
曖昧な質問でした それを念頭に 両方の場合をお答えいただき 有り難うございました。