• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELのVBAで元のブック名へ戻す方法)

EXCELのVBAで元のブック名へ戻す方法

このQ&Aのポイント
  • EXCELのVBAを使用して、得意先変換マスタ.xlsxという名前のブックを作成しました。しかし、元の得意先サブマスタ作成.xlsmに戻す方法を知りたいです。
  • VBAを使用して、得意先変換マスタ.xlsxという名前のブックを作成しましたが、元の得意先サブマスタ作成.xlsmに戻す方法を教えてください。
  • EXCELのVBAを使って、得意先変換マスタ.xlsxという名前のブックを作成しましたが、元の得意先サブマスタ作成.xlsmに戻す方法が知りたいです。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.5

No4の追加です。 シートコピーはシートをコピーして貼り付けではなくて、シートの移動またはコピーの機能を使います。 Sheets(得意先サブマスタ作成のシート名).Copy After:=Workbooks(得意先変換マスタ.xlsx).Sheets(Workbooks(得意先変換マスタ.xlsx).Sheets.Count) ふと思ったのですが > マクロでこの後に続く箇所で上記の得意先変換マスタ.xlsxを使用する際にエラーが出て しまい こちらのエラーがどのようなものか不明なのでふれませんでしたが、こちらの部分を修正変更したほうが流れとしていいのかもしれませんね。

takazou
質問者

お礼

結局得意先サブマスタ作成.xlsmに新しいシートを作成し、そこにCSVを読み込んでエクセルとして格納した後にそのシートを削除するという手順を取る事で目的を果たす事ができました。 回答の4と5でシートの事に触れていたのが参考になりました。別シートで処理をするという発想が全くありませんでした。 追加の回答をいただき本当にありがとうございました。大変参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.4

No3の追加です。 もし、得意先サブマスタ作成.xlsmにある他のシートも得意先変換マスタ.xlsxに必要なのでしたら,質問のコードの最後に再度、得意先サブマスタ作成.xlsmファイル名で保存するという手もあります。 ActiveWorkbook.SaveAs Filename:="C:\Users\**********\Desktop\得意先サブマスタ作成.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled その後、得意先変換マスタ.xlsxを開くということも必要です。 また、必要なシートが少なければNo3の方法の後に必要なシートをコピーするという手段もありますが、上記の方が単純だと思います。シートコピーした場合、得意先サブマスタ作成.xlsmを閉じる前に得意先変換マスタ.xlsxを保存しておかないとエラーになる事があります。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.3

> 流れ自体がこれでよいのか、別のやり方を考えた方がよいのか、迷っている次第です。 後に続く箇所でエラーになるという処理がどうのようなものなのかわかりませんが、得意先変換マスタ.xlsxファイルを新規に作成して、それにCSVを読み込むようにすれば、得意先サブマスタ作成.xlsmと得意先変換マスタ.xlsxの二つのブックが開いていることになりますから、アクティブなブックを切り替えて操作ができるようにはなりますよ。 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\*******\Desktop\得意先変換マスタ.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 以下は質問に記載されているコードそのままでいけるのではないでしょうか。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

> 実行してみたのですが、ブックのタイトル名は変わりませんでした。 質問に記載しているコードの最後に ThisWorkbook.Activate を追記したのですよね。その後ろに Debug.Print ActiveWorkbook.Name でイミディエイトウィンドウにアクティブなブック名が表示されますが、それが変わっていませんか? MsgBox ActiveWorkbook.Name でメッセージボックスで確認してもいいです。 あと、得意先サブマスタ作成.xlsmとは別のブックにCSVを読み込んで保存してるのだと思いましたが、得意先サブマスタ作成.xlsmにCSVを読み込んで得意先変換マスタ.xlsxとして保存してるのでしょうか? 後者だとしたら保存時にファイル名を得意先サブマスタ作成.xlsmにするしかありませんが、それだとtakazouさんの当初の思惑と違うような気がしますが・・・

takazou
質問者

補足

アドバイスいただき、ありがとうございます。 メッセージボックスで確認しましたが、得意先変換マスタ.xlsxと表示されました。 手順としては得意先サブマスタ作成.xlsm自体にCSVを読み込んで得意先変換マスタ.xlsxとして保存しています。 その後別のエクセルから得意先変換マスタ.xlsxをadoで読み込み情報を取得して得意先サブマスタ.xlsxとして保存するという流れです。 おっしゃられるように後者になりますので、それだとしたら得意先サブマスタ作成.xlsmにするしかないのでしょうか。 流れ自体がこれでよいのか、別のやり方を考えた方がよいのか、迷っている次第です。

すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.1

ThisWorkbook.Activate でマクロを実行しているブック(得意先サブマスタ作成.xlsm)がアクティブになります。

takazou
質問者

補足

早速回答いただき、ありがとうございます。 実行してみたのですが、ブックのタイトル名は変わりませんでした。 何かおかしなことをしているのでしょうか?

すると、全ての回答が全文表示されます。