[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ファイルのWEBクエリー操作について』(愛宕)
お世話になります。
BOOK_Aのマクロから、BOOK_Bを開きこれのマクロ(WEBクエリー更新)を実行したいのです。
手動によるステップ実行では更新されますが、一括実行では更新されません。
どなたかアドバイスをお願いします。
 BOOK_Aのマクロ(抜粋)
    Workbooks.Open Filename:="C:\Users\user\みずほ\みずほLOTO6.xlsm"
    Application.Run "みずほLOTO6.xlsm!RenewLoto6_Tbl"
 BOOK_B(みずほLOTO6.xlsm)のマクロ
Sub RenewLoto6_Tbl()  'テーブルを更新する
    Worksheets("取込データ").Activate	
    If ActiveSheet.QueryTables.Count = 0 Then 
        Call Macro1   '---クエリテーブルが無ければ実行---
    End If	
    With ActiveSheet.QueryTables(1)
        .Connection= "URL;http://www.mizuhobank.co.jp/takarakuji/loto/loto6/index.html"
        .WebTables = 1   '---1番上の表を取り込みデータを更新する---
        .Refresh
    End With
End sub
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Macro1の内容が開示されていないのですが、
Macro1が動く環境になっているのでは?
(その都度Querytableを削除しているとか。)
いずれにせよ、一括実行の際の動作をもっとよく観察する必要が
あるのではないですか?
(γ) 2016/04/21(木) 06:53
Sub Macro1()
'   -------- 新規作成時に使用する --------------
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.mizuhobank.co.jp/takarakuji/loto/loto6/index.html", _
        Destination:=Range("$B$2"))
        .Name = "ロト6"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
(愛宕) 2016/04/21(木) 10:42
いやいやすっかり放置したことになっていました。どうも失礼。 自宅でしかアクセスせず、アクセス回数も最近減っていたので見逃してしまっていました。
それで、もう一度質問を読み直してみたのですが、 BackgroundQuery周りを確認されたらどうでしょうか。
というのは、 .BackgroundQuery = True と設定されていて、 実行時には、Refreshとだけしているので、 Trueにしたがって、本体命令は直ぐに次の命令に制御が移り、 Backgroundで取得が遅れてなされる、という状況なのでしょう。
遅れても更新されれば問題がなく、更新すらされないということなら、 別の問題があるのでしょう。私にはわかりません。
(γ) 2016/04/24(日) 12:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
 Modified by kazu.