Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11396 / 13645 ツリー ←次へ | 前へ→

【16311】Auto_Openマクロで起動したExcelを完全に保存終了するには? しん 04/7/25(日) 1:04 質問[未読]
【16313】Re:Auto_Openマクロで起動したExcelを... IROC 04/7/25(日) 1:11 回答[未読]
【16314】Re:Auto_Openマクロで起動したExcelを... しん 04/7/25(日) 1:21 発言[未読]
【16318】Re:Auto_Openマクロで起動したExcelを... IROC 04/7/25(日) 1:59 回答[未読]
【16319】Re:Auto_Openマクロで起動したExcelを... しん 04/7/25(日) 2:15 発言[未読]
【16320】Re:Auto_Openマクロで起動したExcelを... IROC 04/7/25(日) 2:24 回答[未読]
【16347】Re:Auto_Openマクロで起動したExcelを... しん 04/7/25(日) 20:22 お礼[未読]
【16317】Re:Auto_Openマクロで起動したExcelを... しん 04/7/25(日) 1:57 発言[未読]
【16321】Re:Auto_Openマクロで起動したExcelを... [名前なし] 04/7/25(日) 9:15 回答[未読]
【16324】Re:Auto_Openマクロで起動したExcelを... しん 04/7/25(日) 11:07 お礼[未読]

【16311】Auto_Openマクロで起動したExcelを...
質問  しん E-MAIL  - 04/7/25(日) 1:04 -

引用なし
パスワード
   下記のようなExcel自動実行マクロをファイルtest.xlsに書いて、そのファイルを自動実行させたのですが、セル"A1"の内容(test)はちゃんとファイルに保存されているのですが、ファイルの終了処理ができません。この終了作業をきちんとできるようにするには下記のVBAコードをどのように変えたらいいのでしょうか?教えて下さい。

Sub Auto_Open()

  Worksheets("Sheet1").Cells(1, 1) = "test"

  Application.DisplayAlerts = False
  ThisWorkbook.Close SaveChanges:=True
  Application.DisplayAlerts = True

  Application.Quit
  
End Sub

【16313】Re:Auto_Openマクロで起動したExcel...
回答  IROC  - 04/7/25(日) 1:11 -

引用なし
パスワード
   >ファイルの終了処理ができません

ファイルの終了処理とは、どのようなことをお考えですか?

また、どのように出来ないのでしょうか?

【16314】Re:Auto_Openマクロで起動したExcel...
発言  しん E-MAIL  - 04/7/25(日) 1:21 -

引用なし
パスワード
   ▼IROC さん:
こんばんは。

>ファイルの終了処理とは
ファイルを完全に閉じることです。あのVBAコードのままでは、Excelファイルの殻(ツールバーだけが付いた灰色のシート)が残っているため、ツールバーメニューのファイルから終了を選ぶか右上の×をクリックしないとファイルを完全に保存終了することができません。

【16317】Re:Auto_Openマクロで起動したExcel...
発言  しん E-MAIL  - 04/7/25(日) 1:57 -

引用なし
パスワード
   ▼IROC さん:
もう少し付け加えておきますと

Sub Auto_Open()

  Worksheets("Sheet1").Cells(1, 1) = "test"

  ThisWorkbook.Saved = True
  Application.Quit
  
End Sub

のように、セル内容を保存しないということにすれば、上記のようなVBAコードをtest.xlsファイルに書くことにより、このマクロを自動実行させるとファイルの完全保存終了処理が自動的にできます。もちろんファイルのセル"A1"には何も書かれれいないということにはなりますが・・・。

このような完全自動保存終了処理をセル内容を保存したときにも実現したいんです。

【16318】Re:Auto_Openマクロで起動したExcel...
回答  IROC  - 04/7/25(日) 1:59 -

引用なし
パスワード
   ファイルはCloseで閉じられると思いますが・・?

Excelのアプリケーション自体も終了させたいと言うことでしょうか?
もしそうだとすると、他のブックを開いて作業しているときは
かってに終了されてしまい不便だと思いますが・・

【16319】Re:Auto_Openマクロで起動したExcel...
発言  しん E-MAIL  - 04/7/25(日) 2:15 -

引用なし
パスワード
   ▼IROC さん:
たびたびすみません。

>Excelのアプリケーション自体も終了させたいと言うこと
です。

>もしそうだとすると、他のブックを開いて作業しているときは
>かってに終了されてしまい不便だと思いますが・・

そのような時もあるかも知れませんが、その時は他のブックをあらかじめ閉じればいいし、今回の場合のように開いているブックが自分自身だけの場合は、そのような恐れが全くないわけですから、Excelの内容の保存と同時にExcelの終了処理も自動的に行えるようなコードがあってもいいんではないかと思ったのですが・・・。Excelの仕様上、そういう保存終了処理は絶対できないということであれば仕方がないとは思いますが・・・?

【16320】Re:Auto_Openマクロで起動したExcel...
回答  IROC  - 04/7/25(日) 2:24 -

引用なし
パスワード
   Closeを使わずに、SAVEしてからquitで出来ると思いますけど・・

あと、他にブックを開いているか判別してから
処理しても良いかと思います。

【16321】Re:Auto_Openマクロで起動したExcel...
回答  [名前なし]  - 04/7/25(日) 9:15 -

引用なし
パスワード
   >Sub Auto_Open()
>
>  Worksheets("Sheet1").Cells(1, 1) = "test"
>
  ThisWorkbook.Save
>  Application.Quit
>  
>End Sub

でいいんじゃないかと。

【16324】Re:Auto_Openマクロで起動したExcel...
お礼  しん E-MAIL  - 04/7/25(日) 11:07 -

引用なし
パスワード
   ▼[名前なし] さん:
おはようございます。

>   ThisWorkbook.Save
でうまくいきました。簡単なことだったんですね。どうもありがとうございます。

おかげさまで、私が直面していたAuto_Openマクロの中で2つの処理(test.xlsのシート1のセル"A1"に"test"を書き込み、test2.xlsの内容をWeb表示するためのtest2.htmlファイルの作成)が、下記VBAコードのようにすることにより、正常にできるようになりました。また、1番目の処理(書き込み保存処理)だけはしたくない場合は

ThisWorkbook.Save

の代わりに

ThisWorkbook.Saved = True

にすればよいこともわかりました。ほんとうにどうもありがとうございます。

Sub Auto_Open()

  Worksheets("Sheet1").Cells(1, 1) = "test"

  myPath = ActiveWorkbook.Path
  Workbooks.Open Filename:=myPath & "\" & "test2.xls"
  
  Application.DisplayAlerts = False
  With ActiveWorkbook      'test2.xlsのHTML形式保存
    .SaveAs Filename:=DirectoryName$ & "test2.html", FileFormat:=xlHtml
    .Close SaveChanges:=True
  End With
  Application.DisplayAlerts = True

  'ThisWorkbook.Saved = True   '書き込み保存処理は行わない
  ThisWorkbook.Save       '書き込み保存処理も行う
  Application.Quit

End Sub

【16347】Re:Auto_Openマクロで起動したExcel...
お礼  しん E-MAIL  - 04/7/25(日) 20:22 -

引用なし
パスワード
   ▼IROC さん:
こんばんは。

>Closeを使わずに、SAVEしてからquitで出来ると思いますけど・・
>
>あと、他にブックを開いているか判別してから
>処理しても良いかと思います。

完全保存終了自動処理は

ThisWorkbook.Close SaveChanges:=True
Application.Quit

ではなく、簡単に

ThisWorkbook.Save
Application.Quit

でよいんですね。どうもありがとうございました。

11396 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free