2 つのボタンを持つ非常に単純なモーダルフォームを作成しました。1 つはフォームを閉じるだけで、もう 1 つは を呼び出しますApplication.RTD.RefreshData
。Excel 2003 ではこれで問題なく動作しますが、Excel 2010 ではApplication.RTD.RefreshData
クラッシュします。
実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラー
フォームをモードレスとして作成すると、Excel 2003 と Excel 2010 の両方ですべて正常に動作します。
価値があるのは、これがフォームの背後にあるすべてのコードです。
Private Sub RefreshDataButton_Click()
Application.RTD.RefreshData
End Sub
Private Sub CloseButton_Click()
Call Unload(Me)
End Sub
そして、シートで次のコードを使用してフォームを呼び出します。
Private Sub CommandButton1_Click()
Dim form As UserForm1
Set form = New UserForm1
form.Show vbModal
End Sub
私はこれに関する情報を求めて Google と SO を調べましたが、役に立ちませんでした。Application.RTD.RefreshData
これは Excel 2010 の既知の問題ですか、それともモーダル フォームから呼び出すことは本当に許可されていないのでしょうか?
編集: Excel セッションに RTD サーバーがないとわかる限り、それを追加する必要があります。
EDIT2: 詳細な調査: Excel 2003 または 2007 ではエラーは発生しません。2010 年と 2013 年に発生します。