- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SaveAsが Do~Loopでうまくいかない)
SaveAsが Do~Loopでうまくいかない
このQ&Aのポイント
- Do~Loopを使用してSaveAsがうまくいかないエラーが発生
- G_nameに指定されたファイル名が正しく取得できないため、保存ができない状態になっている
- エラーの解消方法を検討する必要があります
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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:=の関連は? フルパス指定していますか?
- kon555
- ベストアンサー率51% (1848/3569)
回答No.1
save asは要は『名前を付けて保存』なので、同名のファイルが既にあるためエラーになっているのだと思います。 最終的なファイルが一つでいい処理なら、ループが終わった後に保存。ループごとにファイルを作りたいなら、ループ数あたりをファイル名末尾につけた連番にしてはどうでしょうか。
質問者
補足
フォルダにある全てのファイルを違うフォーマットにして新しく保存したいため、ループ内で連番を付けるやり方、試してみます
補足
略の部分について Dim A_folder As String A_folder = ”C:¥User¥○○¥Desktop¥コンバート¥変換後” Workbooks(G_name).SaveAs Filename:=A_folder & ”¥” & filename となります。 Filenameと、file_nameは、関連性は無いです。