• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SaveAsが Do~Loopでうまくいかない)

SaveAsが Do~Loopでうまくいかない

このQ&Aのポイント
  • Do~Loopを使用してSaveAsがうまくいかないエラーが発生
  • G_nameに指定されたファイル名が正しく取得できないため、保存ができない状態になっている
  • エラーの解消方法を検討する必要があります

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.3

Do~Loopで繰り返して何をやりたいのか分かりませんが (ファイルの有無を見ているのでしたらIf file_name = "" Thenだと思いますし) Workbooks(G_name).SaveAs filename:=(アドレス略) この時点でG_nameは○○○.xlsxからアドレス略の名前に変更されたので、保存した後でG_nameに変更されたアドレス略のブック名を代入しなければエラーになります。 ただし、略のところがまともであればの話ですが。

その他の回答 (3)

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

No.3の訂正 この時点でG_nameは ↓ この時点でもとのファイル名は

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

Do While file_name <> ”” ~略~ Workbooks(G_name).SaveAs filename:=(アドレス略) Loop の(アドレス略)のところを略しては、質問にならない。 変化させているのでしょう。 ・変化させないなら、同名のブックを保存する、になりアウト ・変化させる場合は、どういう名前になるのかな >file_name とfilename:=の関連は? フルパス指定していますか?

satoimogozen
質問者

補足

略の部分について Dim A_folder As String A_folder = ”C:¥User¥○○¥Desktop¥コンバート¥変換後” Workbooks(G_name).SaveAs Filename:=A_folder & ”¥” & filename となります。 Filenameと、file_nameは、関連性は無いです。

  • kon555
  • ベストアンサー率51% (1848/3569)
回答No.1

 save asは要は『名前を付けて保存』なので、同名のファイルが既にあるためエラーになっているのだと思います。  最終的なファイルが一つでいい処理なら、ループが終わった後に保存。ループごとにファイルを作りたいなら、ループ数あたりをファイル名末尾につけた連番にしてはどうでしょうか。

satoimogozen
質問者

補足

フォルダにある全てのファイルを違うフォーマットにして新しく保存したいため、ループ内で連番を付けるやり方、試してみます

関連するQ&A