Excel VBA質問箱 IV

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

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


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

【38873】保存しているのに確認ダイアログが出る hide 06/6/13(火) 11:12 質問[未読]
【38894】Re:保存しているのに確認ダイアログが出る Mariko 06/6/13(火) 21:20 発言[未読]
【38903】Re:保存しているのに確認ダイアログが出る 漂流民 06/6/14(水) 1:46 発言[未読]
【38904】Re:保存しているのに確認ダイアログが出る ichinose 06/6/14(水) 6:58 発言[未読]
【38915】Re:保存しているのに確認ダイアログが出る hide 06/6/14(水) 11:54 質問[未読]
【38924】Re:保存しているのに確認ダイアログが出る ichinose 06/6/14(水) 14:07 発言[未読]
【38925】Re:保存しているのに確認ダイアログが出る hide 06/6/14(水) 14:49 お礼[未読]

【38873】保存しているのに確認ダイアログが出る
質問  hide  - 06/6/13(火) 11:12 -

引用なし
パスワード
   初めて質問させていただきます。

メインのブックの中に作業用シートを作り、
それを別ブックに保存してから終了する、ということをやろうとしています。
その時にメインのブックを強制的に上書き保存して
から閉じているのに、なぜか確認ダイアログが表示され、
保存を「いいえ」にすると、メインのブックが壊れてしまいます。

以下はそのコードです。
なにかアドバイスをお願いいたします。

Private Sub CommandButton4_Click()

Set WB = ThisWorkbook

WB.Worksheets("作業シート").Select
WB.Worksheets("作業シート").Move
Application.Dialogs(5).Show
ActiveWorkbook.Close (False)

If MsgBox("作業を続けますか?", vbYesNo + vbInformation) = vbNo Then
    WB.Save
    If Workbooks.Count = 1 Then
      Application.Quit
    Else
      WB.Close (False)
    End If
  End If
End If
End Sub

【38894】Re:保存しているのに確認ダイアログが出る
発言  Mariko  - 06/6/13(火) 21:20 -

引用なし
パスワード
   ▼hide さん:
>
>Private Sub CommandButton4_Click()
>
>Set WB = ThisWorkbook
>
>WB.Worksheets("作業シート").Select
>WB.Worksheets("作業シート").Move
>Application.Dialogs(5).Show
>ActiveWorkbook.Close (False)
>
On Error Resume Next

>If MsgBox("作業を続けますか?", vbYesNo + vbInformation) = vbNo Then
>    WB.Save

On Error GoTo 0

>    If Workbooks.Count = 1 Then
>      Application.Quit
>    Else
>      WB.Close (False)
>    End If
>  End If
>End If
>End Sub

で、出来ませんか・・・

【38903】Re:保存しているのに確認ダイアログが出る
発言  漂流民  - 06/6/14(水) 1:46 -

引用なし
パスワード
   こんばんわ
回答ではありません、悪しからず。

▼Mariko さん:
問題はそう簡単ではないように思いますよ?!

▼hide さん:
現象、確認させていただきました。

>    If Workbooks.Count = 1 Then
>      Application.Quit
>    Else

    If Workbooks.Count = 1 Then
      Application.Quit
      WB.Close (False)
    Else
のようにすれば、
>なぜか確認ダイアログが表示され、
の確認ダイアログは消えます。
ただ、
>メインのブックが壊れてしまいます。
は残ります(苦笑)


んで、hide さんのコードを元に簡素化させた検証コードです
(新規ブックの標準モジュールに↓を記述しブック保存後
testを実行、・・・で保存したブックが開かない)

Sub test()
  Dim WB As Workbook
  Set WB = ThisWorkbook
  
  WB.ActiveSheet.Move
  ActiveWorkbook.Close False
  
  Application.Quit
  WB.Save
  WB.Close False

  WB.Close
  Set WB = Nothing
End Sub


分かったことは、
1.Application.Quitしエクセルが終了しても「タスクマネージャ」の
  プロセスを確認すると「EXCEL.EXE」が残っている。
  (プロセスが正常終了していない)
2.http://support.microsoft.com/kb/199212/JA/
  の「原因」かも・・・
  (すいませんまだ全部読んでいないのですが)
ご参考になれば・・・

すいません、お力になれませんm(__)m

【38904】Re:保存しているのに確認ダイアログが出る
発言  ichinose  - 06/6/14(水) 6:58 -

引用なし
パスワード
   皆さん、おはようございます。

このコードをお借りして、私の環境で検証してみました。

>Sub test()
>  Dim WB As Workbook
>  Set WB = ThisWorkbook
>  
>  WB.ActiveSheet.Move
>  ActiveWorkbook.Close False
>  
>  Application.Quit
>  WB.Save
>  WB.Close False
>
>  WB.Close
>  Set WB = Nothing
>End Sub
>
>
>分かったことは、


この現象が発生したのは、
 Win98&Excel2000 SR-1(Office2000Pro)
この環境では、

>プロセスを確認すると「EXCEL.EXE」が残っている。
>メインのブックが壊れてしまいます。

の両方を確認できましたが、

Win98&Excel2000 SP-3(Office2000Pro)
では確認できず、正常にExcelプロセス終了し、ブックも破壊されていません。


尚、Win2000&Excel2002-SP3(Office2002Pro)
では確認できず、正常にExcelプロセス終了し、ブックも破壊されていません。

漂流民さんの提示されたMS社サイトにも対象が

Microsoft Excel 2000 Standard Edition

とありましたが、
hide さんのExcelのバージョンは何を使っておられるのですか?

【38915】Re:保存しているのに確認ダイアログが出る
質問  hide  - 06/6/14(水) 11:54 -

引用なし
パスワード
   Marikoさん、漂流民さん、ichinoseさん、
ご意見ありがとうございます。

今更ですが、End If が一個多い事に気が付きました。
すいません・・・

>hide さんのExcelのバージョンは何を使っておられるのですか?

使用している エクセルは2000 SR-1 です
ちなみにOSは WindowsXP Pro です

いろいろ試した結果、

If MsgBox("作業を続けますか?", vbYesNo + vbInformation) = vbNo Then
  Application.Quit
End If

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set WB = ThisWorkbook
If WB.Saved = False Then
  WB.Save
End If

End Sub

とするとダイアログも出ず、ファイルの破損もなかったです。
ただ、上記のやり方だと他のブックが開いていても
一緒に閉じてしまうので、あまり好ましくありません。

他にやり方がありましたら、
どうぞ教えてください。

【38924】Re:保存しているのに確認ダイアログが出る
発言  ichinose  - 06/6/14(水) 14:07 -

引用なし
パスワード
   ▼hide さん:
こんにちは。

>
>>hide さんのExcelのバージョンは何を使っておられるのですか?
>
>使用している エクセルは2000 SR-1 です
>ちなみにOSは WindowsXP Pro です

であるならば、SP3にUpdateすればエラー回避が出来ると思います。
(Win98&Excel2000 SP-3では、エラーは発生しないと申し上げました)
Winが違っても大丈夫だと思いますが・・・。

どなたか確認できる方確認してみてください。


http://office.microsoft.com/ja-jp/officeupdate/default.aspx

↑の上部の「Officeのアップデート」の「アップデートの確認」で行うと
必要なUpdateが行われると思います。


私だったら、まず、これを行いますが・・・。

【38925】Re:保存しているのに確認ダイアログが出る
お礼  hide  - 06/6/14(水) 14:49 -

引用なし
パスワード
   ▼ichinose さん:
SP3をインストールしたところエラー回避できました
ありがとうございます。

以前きちんと確認せずにSP3にアップデートして、
ACCESSが不調になったことがあったので、
アップデートをしていませんでした。
オフィスもきちんとアップデートしないと駄目ですね

ichinoseさん、漂流民さん、Marikoさん
本当にどうもありがとうございました。

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