• ベストアンサー

エクセルのマクロについてです。

学年名簿のファイルからマクロ実行ボタンを作成し、ボタンを押すと学年名簿のファイルを3つ複製して 名前を1組、2組、3組とファイルの名前を変更するマクロができるでしょうか。マクロの記録で実行しましたがうまくいきませんでした。ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.4

私が試したときは、学年名簿のファイルが置いてあるフォルダに作成されました。 作成するフォルダを指定するときは、つぎのコードを書き換えます。 例: ActiveWorkbook.SaveAs Filename:="1組.xls" →ActiveWorkbook.SaveAs Filename:="E:\学年名簿\1組.xls" 2組、3組も同様に、

tu73kxmu
質問者

お礼

無事できました。何度もありがとうございました。

その他の回答 (3)

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.3

とても幼稚なマクロですが、結果はご希望通りになります。 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の前にフォルダのパスを付けます。

tu73kxmu
質問者

補足

ご回答ありがとうございました。実行するとどこにファイルが保存されているのか確認できませんでした。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

発想を変えて、 学年名簿のファイルを、 1組と名前を変えて保存 次に2組と名前を変えて保存 次に3組と名前を変えて保存 学年名簿と名前を変えて保存し、元に戻しておく であれば、自動記録できると思いますが、 如何でしょうか。 (自動記録中に複製したファイルには中途半端なマクロが記録されてしまいますので、 一旦全部消して、学年名簿からマクロを実行して下さい。)

tu73kxmu
質問者

お礼

お見事。無事解決。すっきりしました。

tu73kxmu
質問者

補足

お見事。無事解決できました。ありがとうございました。

  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

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

tu73kxmu
質問者

補足

ご回答ありがとうございました。実行エラー58,すでに同名のファイルが存在しますとのメッセージがでてきました。

関連するQ&A