[[20160420222815]] 『別ファイルのWEBクエリー操作について』(愛宕) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別ファイルの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 >


私の環境(2010)では動作しましたね。
(Macro1を通る処理はコメントアウトしてあります。)

Macro1の内容が開示されていないのですが、
Macro1が動く環境になっているのでは?
(その都度Querytableを削除しているとか。)
いずれにせよ、一括実行の際の動作をもっとよく観察する必要が
あるのではないですか?

(γ) 2016/04/21(木) 06:53


朝早くからありがとうございます。
通常ではMacro1が動くようにはなっておりません。
Macro1はEXCEL一般機能の外部データ取込みを自動記録したもので、以下のとおりです。
これを単独で実行すると最新情報が取り込まれますが、取込先シートには罫線やセルに色付けしたりして
いるので、新規作成ではなく更新したいと思ったのです。
BOOK_AのマクロでBusyプロパティを見る必要があるのでしょうか。

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.