この人頭いいなと思ったエピソード

ファイルを開いた時にWebクエリを一括自動更新できるマクロを作りたいのですが、
下記だと「この操作によって[データの更新]コマンドはいったん中止されます。よろしいですか?」となり
うまく動作しません。

Private Sub Workbook_Open()
Sheets("データ1").Select
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
End Sub

どのように書き換えればよろしいのでしょうか。
教えてください。よろしくお願い致します。

A 回答 (3件)

すみません。


メッセージが表示されているタイミングは.Saveでしたので・・・。
.RefreshAllではBackgroundQueryが使えないので以下のように変更しました。
Private Sub Workbook_Open()
Sheets("データ1").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
ActiveWorkbook.Save
End Sub
こちらをお試しください。
    • good
    • 0

私の環境ではそのコードで問題なく動きましたが表示が出て困るということでしたらこちらを参考にして見てください。


Private Sub Workbook_Open()
Application.DisplayAlerts = False 'ポップアップ警告非表示
Sheets("データ1").Select
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
もし、.RefreshAllに時間が掛ることにより.Saveが失敗するようでしたら.Saveの前の行に
BackgroundQuery = False
を追記して見てください。
(バージョンによっては動作しないと聞いたことがありますが・・・。)
    • good
    • 0

「Webクエリの一括更新」中に


ActiveWorkbook.Saveをしているのでは?
コメントまたは削除してみてください。

ただし自動で保存されなくなると思うので
自分で保存してください。
    • good
    • 0

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


おすすめ情報