• 締切済み

Excel 終了マクロ

次のような「終了マクロ」を作りたいと思っています。 「終了」ボタン→「名前を付けて保存」(保存ブックは別名にする)→もとのブックの書替え→ 「(新ブック名)で保存されました」というメッセージボックス→「OK」ボタン→終了 (条件) 1.「終了」と「OK」のボタン操作以外は全自動、キー入力なしとします。 2.もとのブックの書替えは、次の2工程です。   (1)一つのセルの値を2値選択で入れ換え   (2)別の一つの行の数値を全てクリア (疑問点) 名前を付けて保存のとき、もとのブックは閉じられてしまうので困ったなと思っています。 まだ実験前なのですが、うまくいくのでしょうか。 教えて下さい。よろしくお願いします。

みんなの回答

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

#1のご回答と中身は同じです。 下記をメモ帳にコピーし、デスクトップに保存し、ダブルクリックしてみてください。 Dim x Set objExcel = CreateObject("Excel.Application") 'エクセル画面を表示します objExcel.Visible = True '(1)ワークブックを開きます objExcel.Workbooks.Open "C:\Documents and Settings\xxx\My Documents\Book13.xls" objExcel.activeworkbook.worksheets("Sheet1").cells(20,"C")=333 objExcel.activeworkbook.SaveCopyAs "C:\Documents and Settings\xxx\My Documents\Book13cp.xls" objExcel.activeworkbook.worksheets("Sheet1").range("a1:C10").copy objExcel.activeworkbook.worksheets("Sheet1").select objExcel.activesheet.paste x=Msgbox("終了しますか") If x=vbOK then objExcel.Application.DisplayAlerts=False '(2)エクセルを終了します objExcel.Quit End if 'オブジェクトの破棄 Set objExcel = Nothing セルにC20に333をセットして(質問者の言う「処理」の代わりのつもり)別名保存し さらに元ブック元シート内でコピーをして(別処理をする) 保存確認メッセージを出さず、終了する。 以上でSaveCopyAsがふさわしいのではないかというテストをしたつもり。

awazo
質問者

お礼

imogasiさん > メモ帳にコピーし、デスクトップに保存し、ダブルクリックしてみてください。 これがどういう意味なのかよくわかりませんでしたが、ありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>保存ブックは別名にする のあたりが不明確なのでマクロは書けませんが ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS" のようにすると、元のブックが開いたままになります。ご参考まで

awazo
質問者

お礼

zap35さん ありがとうございました。 FileName の拡張子は、実験結果では不要でした。