アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。
素人質問ですが、どうぞよろしくお願いいたします。

BOOK1のSheet1にwebクエリが設定されています。
Sheet1にはコマンドボタンが二つあり、
CommandButtun1にはクエリを更新するマクロ。
CommandButtun2にはクエリを更新してブックを閉じるマクロがあります。

コマンドボタン2をクリックすると、Webクエリを更新して、
ブックをメッセージなしで上書き保存したいのですが、
下記のマクロではうまく動作しません。
クエリ更新のあとの、ブック保存、クローズするマクロが動作しない状況です。

CommandButtun1のWSH.Popupが原因のようですが、
何か回避方法がありましたら、ご教授いただけませんか?


CommandButtun1には下記のマクロ
Private Sub CommandButton1_Click()

'独自のエラーメッセージを表示する(On Errorステートメント)
On Error GoTo Err_Msg

'webクエリ更新
Range("H6").Select
Selection.QueryTable.Refresh BackgroundQuery:=False

中略

Exit Sub

'エラーメッセージの指定
Err_Msg:
Dim WSH As Object
Set WSH = CreateObject("Wscript.Shell")
WSH.Popup "完了しました。", 3, "自動的に閉じます", vbYesNo + vbInformation
Set WSH = Nothing
End
End Sub
-------------------------------------------------------------------------
CommandButtun2には下記のマクロ
Private Sub CommandButton2_Click()

CommandButton1.Value = True

If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
ActiveWorkbook.Close
End Sub

A 回答 (2件)

現象は


1.コマンドボタン2をクリックする
2.コマンドボタン1のWEBクエリ更新が実行される
3.エラーが発生して「自動的に閉じます」が表示される
4.コマンドボタン2に復帰して保存するつもりがされない
という事ですか?

だとしたらエラーメッセージの指定部分に書いているEnd命令で終了しているのが原因なので,
対策1:End命令を削る
対策2:エラーメッセージの指定ブロックに行かない(エラーを出さない)ようにコマンドボタン1のプログラムを改修する?
対策3:何かの理由でEnd命令が削れないなら,コマンドボタン2内にWEBクエリの更新を書いて(endさせず)引き続き保存を行う
などかなと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
現象ですが、

"1.コマンドボタン2をクリックする
2.コマンドボタン1のWEBクエリ更新が実行される
3.エラーが発生して「自動的に閉じます」が表示される
4.コマンドボタン2に復帰して保存するつもりがされない"

3.の部分のエラーはありません。
クエリ更新のあと”完了しました”のポップアップ表示後、
EXCELに戻り、次のプログラムには移行しません。

End はクエリ更新処理を繰り返し行っているため、
削除はできない状態です。
プログラムの改修を試みたいと思います。

お礼日時:2011/07/11 13:22

エクセル使ったことないけど(詳しくないけど)まず、


On error goto Err_Msg
をコメント化して(先頭に’をつけて)、実行しどの行で問題が発生しているのかを調べ、なんでそこでエラーが起きるのかを質問したほうが良いと思う。 エラーが起きた後のフローだけを書いてもらっても、わからない。 (問題は中略部分にあるんじゃないかな)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!