こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルのマクロについて

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

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

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

投稿日時 - 2009-11-26 03:07:45

QNo.5476710

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2009-12-01 14:04:37

ANo.2

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

投稿日時 - 2009-12-01 13:34:37

ANo.1

「Webクエリの一括更新」中に
ActiveWorkbook.Saveをしているのでは?
コメントまたは削除してみてください。

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

投稿日時 - 2009-11-28 01:11:30

あなたにオススメの質問