KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

VB/VBAトップへ ▼カッ飛び最後 

  VisioからExcelファイルへの保存に関して

01: 名前:ゆう投稿日:2007/10/26(金) 13:58
VisioからExcelファイルへの保存に関して質問させてください。
CreateObjectやGetObjectを使用して、Excelのオブジェクトを取得しようとしています。
その中でGetObjectのヘルプのサンプルを参照していると、
次のような個所がありました。
'Excel は起動中なので、API の SendMessage 関数を使って、
' 起動中オブジェクト テーブルに登録します。
SendMessage hWnd, WM_USER + 18, 0, 0

この起動中オブジェクトテーブルの意味がわかりません。

ここに登録せずにExcelなどのアプリケーションを起動すると何かまずいことがあるのでしょうか。

02: 名前:yoda投稿日:2007/10/26(金) 14:17
開発環境と、VisioやExcelのバージョンを教えてください。

03: 名前:‚ゆう投稿日:2007/10/26(金) 14:56
開発環境:Windows XP
Officeのバージョン:Visio2007、Excel003
です。

04: 名前:yoda投稿日:2007/10/26(金) 15:46
GetObject は、すでに起動済みのObjectを取得するために、使います。
起動していないうちに、GetObjectを使うと、エラーになると、思います。
DetectExcel は、そのためのチェックをしているのでは、ないかと思います。
Excelがまだ、起動していないことが、はっきりしている場合は、
CreateObject 関数を使います。

05: 名前:‚ゆう投稿日:2007/10/26(金) 16:17
了解しました。
既に起動しているのを取得するだけなら、GetObjectでいいはずなのに、
なぜ余分な処理を実行しているのか疑問に思ってしまいました。

最近のExcelだとどうかわかりませんが、
7.0とかのExcelだと明示的にオブジェクトテーブルに登録するよう
メッセージを送る必要があったのだと理解しました。

http://support.microsoft.com/kb/147573/ja [source] [check]

うまく使い分けて処理しようと思います。

ありがとうございます。


VB/VBAトップへ ▲カッ飛び先頭