ブックの接続を更新します。
構文
expression.Refresh
式WorkbookConnection オブジェクトを表す変数。
注釈
DisplayAlerts プロパティが False の場合、ダイアログ ボックスは表示されず、更新メソッドは接続情報不足の例外で失敗します。
接続の更新に失敗しても、他の接続の更新操作には影響ありません。
接続が Power Query で作成したクエリをワークシート テーブルに読み込むと、接続のバックグラウンド更新がオフになり (OLEDBConnection オブジェクトの BackgroundQuery プロパティが False)、クエリ全体が評価に失敗します (たとえば、ステップ内の error 式や、Number.FromTextなどの関数が 1 つのセル内ではなくステップの値の計算中に失敗する場合など)。 Refresh メソッドは、一般的な説明 ("アプリケーション定義またはオブジェクト定義のエラー") を含む実行時エラー 1004 を発生させます。 クエリによって生成されるエラー メッセージは含まれません。 クエリのエラー メッセージを取得するには、バックグラウンド更新を無効にして、QueryTable オブジェクトの Refresh メソッドを使用してテーブルを更新します。 そのメソッドは同じエラー番号を出し、その説明にはクエリのエラー (例: [Expression.Error] ...) が含まれます。
バックグラウンド更新が有効になっている場合、更新が完了する前に Refresh メソッドが返され、更新中に発生したエラーは呼び出し元コードに返されません。
クエリの結果の個々のセルにエラーが発生しても、更新は失敗しません。 更新は成功し、これらのセルは空のままになります。
例
この例では、作業中のシート上のすべてのクエリ テーブルを更新し、失敗した各更新のエラー メッセージが即時ウィンドウに書き込みます。 代わりに WorkbookConnection オブジェクトに対して Refresh を呼び出すと、汎用的な説明のみがレポートされます。
Sub RefreshQueryTables()
Dim lo As ListObject
For Each lo In ActiveSheet.ListObjects
If lo.SourceType = xlSrcQuery Then
On Error Resume Next
' lo.QueryTable.WorkbookConnection.Refresh would report only a generic description.
lo.QueryTable.Refresh BackgroundQuery:=False
If Err.Number <> 0 Then Debug.Print lo.Name & ": " & Err.Description
On Error GoTo 0
End If
Next lo
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。