[[20021112092707]] 『AfterRefreshイベントがうまく認識してくれない』(HT) ページの最後に飛ぶ

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

 

『AfterRefreshイベントがうまく認識してくれない』(HT)

Excelの外部データの取り込み(ファイルオープン時自動更新に設定)で、とあるデータ

ベースからデータをExcelに引張ってきた時に発生するイベントを拾いたい。 しかし、

リファレンスマニュアルを見ながらAfterrefresh関数を使ってやっても上手くいかず根本的に関数の使い方や目的が違うのかと悩んでいます。


 みやほりんが 未解決ログ解消を目的に 2010/04/20 17:30 ごろ、投稿しました。
 トピ主の[HT]さんの投稿は2002/11/12 09:27:07でした 。
 
AfterRefreshイベントのヘルプは誤記が多く、また、不親切でもあるので、
ヘルプを読んだだけで動作させるのはかなり困難だと思われます。
 
///////////////////////////////////////////////////////////////////////
'ヘルプの使用例の誤記 覚書
Private Sub QueryTable_AfterRefresh(Success As Boolean)
    If Success
        ' クエリが正常に終了しました。
    Else
        ' クエリが失敗したか、またはキャンセルされました。
    End If
End Sub
 
'引数は「ByVal Success As Boolean」が正解のようである。
'「If Success」のあとの 「Then」 が抜けている。
///////////////////////////////////////////////////////////////////////
 
 
以下単純な例。
Classモジュールを挿入し、下記コード入力
 
'///////////////////////////////////////////////
 Public WithEvents qt As QueryTable

 Private Sub qt_AfterRefresh(ByVal Success As Boolean)
     If Success Then
         MsgBox "クエリが正常に終了しました。"
     Else
         MsgBox "クエリが失敗したか、またはキャンセルされました。"
     End If
 End Sub
'///////////////////////////////////////////////
 
標準モジュールへ下記コード入力。
'///////////////////////////////////////////////
 Dim X As New Class1

 Sub Initialize_It()
     Set X.qt = ThisWorkbook.Sheets(1).QueryTables(1)
 End Sub
'///////////////////////////////////////////////
 
Initialize_Itプロシージャを実行後、クエリの更新を行うと、
AfterRefreshイベントマクロが実行されます。
 
なお、私自身もClassモジュールの扱いが不慣れなため、この書き方には
自信がありません。「これが正解」という点があれば、ご指摘願います。
 
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.