- ベストアンサー
エクセルのマクロについてです。
学年名簿のファイルからマクロ実行ボタンを作成し、ボタンを押すと学年名簿のファイルを3つ複製して 名前を1組、2組、3組とファイルの名前を変更するマクロができるでしょうか。マクロの記録で実行しましたがうまくいきませんでした。ご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私が試したときは、学年名簿のファイルが置いてあるフォルダに作成されました。 作成するフォルダを指定するときは、つぎのコードを書き換えます。 例: ActiveWorkbook.SaveAs Filename:="1組.xls" →ActiveWorkbook.SaveAs Filename:="E:\学年名簿\1組.xls" 2組、3組も同様に、
その他の回答 (3)
- m_and_dmp
- ベストアンサー率54% (987/1817)
とても幼稚なマクロですが、結果はご希望通りになります。 Sub Duplicate() ActiveSheet.Shapes.SelectAll Selection.Delete ActiveWorkbook.SaveAs Filename:="1組.xls" ActiveWorkbook.SaveAs Filename:="2組.xls" ActiveWorkbook.SaveAs Filename:="3組.xls" ActiveWorkbook.Close End Sub 学年名簿のシートにはマクロボタンが配置されていますので、複製するとマクロボタンも複製されてしまいます。それを避けるために最初の二行でボタンを削除しています。 1組、2組、3組を学年名簿とは異なるフォルダに作成する場合は、 Filename:="1組.xls" の1組.xlsの前にフォルダのパスを付けます。
補足
ご回答ありがとうございました。実行するとどこにファイルが保存されているのか確認できませんでした。
- mitarashi
- ベストアンサー率59% (574/965)
発想を変えて、 学年名簿のファイルを、 1組と名前を変えて保存 次に2組と名前を変えて保存 次に3組と名前を変えて保存 学年名簿と名前を変えて保存し、元に戻しておく であれば、自動記録できると思いますが、 如何でしょうか。 (自動記録中に複製したファイルには中途半端なマクロが記録されてしまいますので、 一旦全部消して、学年名簿からマクロを実行して下さい。)
お礼
お見事。無事解決。すっきりしました。
補足
お見事。無事解決できました。ありがとうございました。
- IDii24
- ベストアンサー率24% (1597/6506)
Excelの外への動きなのでマクロで記録されません。 これをボタンのマクロへ貼り付け。 Dim A As String Dim B As String Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") A = Application.Workbooks(1).Path + "\" + Application.Workbooks(1).Name For i = 1 To 3 B = "学年名簿" + CStr(i) + "組" FSO.CopyFile A, B, False ' 上書き禁止。上書きOKなら true Next i Set FSO = Nothing
補足
ご回答ありがとうございました。実行エラー58,すでに同名のファイルが存在しますとのメッセージがでてきました。
お礼
無事できました。何度もありがとうございました。