- ベストアンサー
エクセルマクロ
例えばA1セルに入力されている値を常にファイル名に して保存するということはマクロで可能でしょうか? A1セルの値は変化し、ファイル名は上書きしていくという かたちにしたいのですが。 という質問をさせて頂き回答も頂いて解決かと思ったのですが、回答していただいたマクロだと、A1セルの値がその前と同一の場合、ファイル削除のマクロが「パス名が無効です」というこでそれ以上動きません、たびたびすいませんが回答頂ければ幸いです
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この質問は過去質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=794869 に関連しています。 #1の方の通りです。ファイル削除の部分に変更を加えました。また、エラー処理も付けます。 Sub THSFILE_SAVE() Dim myFname0 As String Dim myFname As String On Error GoTo ERRH myFname0 = ThisWorkbook.Name myFname = Sheets(1).Range("A1").Value ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & myFname '--ここから条件分岐 If myFname0 <> myFname & ".xls" Then Kill ThisWorkbook.Path & "\" & myFname0 End If '--ここまで Exit Sub ERRH: End Sub
その他の回答 (1)
- guruguru2
- ベストアンサー率29% (39/132)
>A1セルの値がその前と同一の場合、ファイル削除のマクロが「パス名が無効です」というこでそれ以上動きません A1のセルの値とその前の値が同一ってことは、今開いているファイルがA1のセルの値と同じってことですよね? それなら (1)今開いているファイル名(ブック名)とA1のセルの値が同じかどうかを判断 (2)-1違う場合:ファイルをA1の値で保存後、保存前のファイルを削除 (2)-2同じ場合:そのまま上書き保存。保存前のファイルの削除はしない。 というのはどうでしょう? (というより質問を理解していなかったらごめんなさい(T T))
お礼
ありがとうございます。 確かに、それでできると思うのですが、変数が絡んだ その条件式がうまくできなかったもので。。。
お礼
たびたび申し訳ありません。 おかげで無事解決しました ありがとうございました。