タイトル : Re^3: createobject 投稿日 : 2012/06/13(Wed) 21:51 投稿者 : 魔界の仮面弁士
> 確認すると6.5になっていました。 すみません、勘違いです。Excel 2007 は 6.5 で正しいです。 VBA7 は Excel 2010 で採用されているバージョンです。 http://msdn.microsoft.com/ja-jp/library/ee691831.aspx <蛇足情報> VBA7 では、LongLong 型や CLngLng 関数などの、64bit対応の機能が追加されています。 http://msdn.microsoft.com/en-us/library/ff520658%28PROT.10%29.aspx なお、Office 2010 の DVD には 64bit 版のインストーラが同梱されていますが、 既定のセットアップのまま進めた場合は、32bit版がインストールされるようになっています。 </蛇足情報> > SolidWork(64bit版)というソフトを使っていますが SolidWork ですか? SolidWorks ではなく? > Set swapp = CreateObject("sldworks.application") そのコードを実行した結果、そのアプリがどのように立ち上がるのかは、 アプリケーション(SolidWork)側の仕様によるもので、VBA 側のバージョンは関係ありません。 (同じアプリケーションでも、設定によって振る舞いが変わる可能性もありますし) > Set swapp = GetObject("", "sldworks.application") Excel などでは、 Set xlBook = GetObject("C:\temp\依頼書.xls") 'Set xlApp = xlBook.Application 'Set xlWindow = xlApp.Windows(1) 'xlApp.Visible = True 'xlWindow.Visible = True のように、文書ファイル名を指定して、既存のオブジェクトを得る手法もありますが、 (ファイルが開かれていない場合は、そのファイルが自動的に開かれる) 私はSolidWorkとかいうCADソフトを使ったことが無いため、あまり情報を持ち合わせていません。 Office 等に比べると利用者数が少ないでしょうし、回答は付きにくいかも知れませんね。 > を早速試したのですが、createobjectを実行したときと同じ動作になりました。 前回の回答に挙げた「ROT」を辿る方向でも調査してみてください。 もしも、下記の「VBのGetObjectで取得できるオブジェクトを列挙する」にて、 起動済みのオブジェクトが見つかるなら、そこから取得できるかと思います。 http://www1.koalanet.ne.jp/akiya/vbtaste/vbp/ |