同じ処理を二回行った場合に
上書きさらるようにしたいのですが
実行した場合、処理中にファイルが閉じてしまいます。
解決策がありましたら教えていただきたいです。
Sub
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
どうみてもActiveWindow.Close
でウィンドウを閉じさせているからにしか見えませんが、これが意図的なものであるなら、具体的にどうしたいのか、仕様を明確にしてください。
投稿2019/11/06 23:46
総合スコア17000
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
ファイル出力の処理を二回続けて行った場合に
一回目の出力結果を上書きして作成できるようにしたいです。
で、ActiveWindow.Closeは意図的な処理なんでしょうか?
なんとなく、こうではないでしょうか?
ActiveWindow.Close
↓
ActiveWorkbook.Close
以前に確認してみましたが駄目でした。
駄目って何が駄目なんですか?
ActiveWindow.Closeは意図的なんですか?
ウィンドウを閉じる命令が書いてあるのに閉じたくないというのは矛盾している話です。
まずはウィンドウが閉じない処理を施し、その後どう駄目なのか明確にし、それについて対応策を考えないと。

0
ベストアンサー
こちらで、動作確認してみました。
あなたのソースで問題なく、動作しますが、
明示的にブックを追加するようにしてみました。
Sub シート⇒ブック(シート名 As String, フルパス名 As String)
のプロシージャのみ、以下のようにしてみてください。
これで、どうでしょうか。
VBA
1Sub シート⇒ブック(シート名 As String, フルパス名 As String) 2 Dim wb As Workbook 3 Set wb = Workbooks.Add(xlWBATWorksheet) 4 ThisWorkbook.Worksheets(シート名).Cells.Copy 5 wb.Activate 6 wb.Worksheets(1).Select 7 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 8 wb.Worksheets(1).Cells.Replace What:="#DIV/0!", Replacement:="", LookAt:=xlWhole 9 wb.Worksheets(1).Name = シート名 10 'If Dir(フルパス名) <> "" Then Kill (フルパス名) 11 wb.SaveAs Filename:=フルパス名, FileFormat:=51 12 wb.Close 13End Sub
投稿2019/11/08 05:24
総合スコア92
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。