• 締切済み

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

ファイルを開いた時にWebクエリを一括自動更新できるマクロを作りたいのですが、 下記だと「この操作によって[データの更新]コマンドはいったん中止されます。よろしいですか?」となり うまく動作しません。 Private Sub Workbook_Open() Sheets("データ1").Select ActiveWorkbook.RefreshAll ActiveWorkbook.Save End Sub どのように書き換えればよろしいのでしょうか。 教えてください。よろしくお願い致します。

みんなの回答

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.3

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

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.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 を追記して見てください。 (バージョンによっては動作しないと聞いたことがありますが・・・。)

  • soaikats
  • ベストアンサー率58% (14/24)
回答No.1

「Webクエリの一括更新」中に ActiveWorkbook.Saveをしているのでは? コメントまたは削除してみてください。 ただし自動で保存されなくなると思うので 自分で保存してください。

関連するQ&A