[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/03/03(Fri) 17:12
投稿者名:
Eメール:
URL :http://msdn2.microsoft.com/ja-jp/library/cfh4d3ys(ja-jp,vs.80).aspx
タイトル:
アドインでツールウィンドウ
VBE上でコードを編集するアドインを作りました。
フォームを表示しフォーム上のボタンを押すとコードを編集するアドインですが
フォームではなくプロパティウィンドウやイミデイトウィンドウみたいなウィンドウにしたいと思っ
ていま
す。
いろいろ調べてみるとCreateToolWindowというのを見つけましたがどんなに実行してみても
"ActiveX コンポーネントはオブジェクトを作成できません。"
とエラーしてしまいます。
CreateToolWindowを検索してみてもあまりヒットしないので原因が全くわかりません。
どなたかご教授していただけないでしょうか?

#中途半端な知識しかないので足りない説明もありますがご了承ください。

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As
AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
    Set VBInstance = Application
    Set mwinToolWindow = VBInstance.Windows. _
        CreateToolWindow(AddInInst:=VBInstance.Addins(1), _
                            ProgId:="HLogSetVB.frmAddIn", _
                           Caption:="検索", _
                      GuidPosition:="{6C7B3F63-A90E-4872-8954-CFC239C4461E}", _
                            DocObj:=mdcmInst)
End Sub

投稿時間:2006/03/03(Fri) 17:15
投稿者名:
Eメール:
URL :http://msdn2.microsoft.com/ja-jp/library/cfh4d3ys(ja-jp,vs.80).aspx
タイトル:
Re: アドインでツールウィンドウ
すいません宣言文がありませんでした。追加します。

Public VBInstance             As VBIDE.VBE
Private mwinToolWindow        As VBIDE.Window
Private mdcmInst              As frmAddIn

投稿時間:2006/03/03(Fri) 17:36
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: アドインでツールウィンドウ
ドッキング可能なウィンドウの話だとしたら、VB付属のサンプルの
  \SAMPLES\VB98\Taborder\TABORDER.VBP
が参考になるでしょう。

> "ActiveX コンポーネントはオブジェクトを作成できません。"
UserDocument の生成に失敗しているのかも。

投稿時間:2006/03/03(Fri) 18:27
投稿者名:
Eメール:
URL :http://msdn2.microsoft.com/ja-jp/library/cfh4d3ys(ja-jp,vs.80).aspx
タイトル:
Re^3: アドインでツールウィンドウ
有難うございます。
試してみます。

> ドッキング可能なウィンドウの話だとしたら、VB付属のサンプルの
>   \SAMPLES\VB98\Taborder\TABORDER.VBP
> が参考になるでしょう。
>
> > "ActiveX コンポーネントはオブジェクトを作成できません。"
> UserDocument の生成に失敗しているのかも。

投稿時間:2006/03/07(Tue) 08:16
投稿者名:
Eメール:
URL :
タイトル:
Re^3: アドインでツールウィンドウ
TabOrderのコードを修正して思い通りの動きができました。
魔界の仮面弁士さんありがとうございました。

が、VBのVBEは正しく動きましたが、ExcelのVBEはエラーしてしまいました。
以下の方法で、TabOrderをExcelでも動かせないか試しました。
1)TabOrder.vbpを起動
2)参照設定でMicrosoft Excel 9.0 Object Libraryにチェック
3)デザイナのConnectをオブジェクト表示しアプリケーション(P)の選択を
 Microsoft Excel
 に変更
4)規定のロード方法(L)
 を
 Startup
 に変更
5)モジュールmodMainの
 Global gVBInstance  As VBIDE.VBE
 を
 Global gVBInstance  As Excel.Application
 に変更
6)モジュールmodMainの
 Global gwinWindow   As VBIDE.Window
 を
 Global gwinWindow   As Excel.Window
 に変更
7)gVBInstance.Windows.CreateToolWindow
 をすべて
 gVBInstance.VBE.Windows.CreateToolWindow
 に変更
して実行しますとCreateToolWindowのところで「型が違います」エラーが発生します。
ExcelのCreateToolWindowメソッドの書き方が間違っているのでしょうか?
VBE.Windows.CreateToolWindowにするとヘルプも出てきませんのでさっぱりです。
よろしくお願いします。
 

投稿時間:2006/03/07(Tue) 10:44
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: アドインでツールウィンドウ
> ヘルプも出てきませんのでさっぱりです
手順に関しては、Office Developer Edition 付属のヘルプをご覧下さい。

MSDNライブラリ 2001年10月版をお持ちであれば、下記が参考になるかも知れません。
[Office開発環境]
 [Office 2000 ドキュメント]
  [Microsoft Office 2000/Visual Basic プログラマーズ ガイド]
   [第 2 部 Office ソリューションの開発]
    [第 11 章 アドイン、テンプレート、ウィザード、およびライブラリ]

> 3)デザイナのConnectをオブジェクト表示しアプリケーション(P)の選択を
>  Microsoft Excel
>  に変更
Excel VBA の開発環境用のアドインを作成するのですか?
それとも、Excel本体の画面用のアドインを作成するのですか?

前者であれば、「Visual Basic for Applicationis IDE」を選択してください。
後者の場合は、ドッキングウィンドウは使えないかと。(CreateToolWindowの対象外)


> 2)参照設定でMicrosoft Excel 9.0 Object Libraryにチェック
もし、VBA 用のアドインを作成したいのであれば、参照設定にて
「Microsoft Visual Basic 6.0 Extensibility」を外して、替わりに
「Microsoft Visual Basic for Applications Extensibility 5.3」を追加しましょう。


> 6)モジュールmodMainの
>  Global gwinWindow   As VBIDE.Window
>  を
>  Global gwinWindow   As Excel.Window
>  に変更
Excel 本体側のウィンドウを操作したいのであれば、Excel.Window です。
VBA 開発環境のウィンドウを操作したいのであれば、VBIDE.Window です。


> 7)gVBInstance.Windows.CreateToolWindow
>  をすべて
>  gVBInstance.VBE.Windows.CreateToolWindow
>  に変更
> して実行しますとCreateToolWindowのところで「型が違います」エラーが発生します。
VBE プロパティはその名の通り、Visual Basic Editor 周りの操作に使われます。

VBE 系を使わないなら、Excel ライブラリの型でもよいでしょうが、VBE プロパティに
アクセスしているなら、以降は VBIDE ライブラリ内の型を使ってください。

投稿時間:2006/03/07(Tue) 15:49
投稿者名:
Eメール:
URL :
タイトル:
Re^5: アドインでツールウィンドウ
魔界の仮面弁士さん、細かい解説まで書いていただきましてありがとうございます。
今回作成していますのはVBAの開発支援です。
あと書き忘れていましたが、自分の環境はProfessionalです。
Developer Editionはもっていないのですが
そのせいか「Visual Basic for Applicationis IDE」が選択できません。
もしかしてProfessionalでは無理なのでしょうか?

投稿時間:2006/03/08(Wed) 18:47
投稿者名:neptune
Eメール:
URL :
タイトル:
Re^6: アドインでツールウィンドウ
こんちは
> もしかしてProfessionalでは無理なのでしょうか?
このあたりから調べていけば環境に必要なDLL?が存在するかどうか
チェックできるんじゃないですか?
hhttp://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/modcore/html/deovrcreatingcomaddinforvisualbasiceditor.asp

投稿時間:2006/03/09(Thu) 10:06
投稿者名:
Eメール:
URL :
タイトル:
Re^7: アドインでツールウィンドウ
neptuneさんおかげで解りました助かりました。
しかし実行してみるとやはり型が違いますと出るので、じっくり調べてみると
CreateToolWindowの最初の引数はAddInなのにCOMAddInが来ていたためにエラーしていました。
COMAddInの読み出しに設定されていたのでチェックを外したところ完璧に動きました!
わざわざCOMAddInを使えるようにしていたのが裏目にでていました。

ありがとうございました。