CreateObjectのエラーについて


ハイライト  2008-04-05 13:23:45  No: 100545  IP: 192.*.*.*

【開発環境】
Windows XP Pro SP3 / Visual Basic 6.0 SP6

以下のようにコモンダイアログをCreateObjectで利用しています。

      Dim objDialog As Object

      Set objDialog = CreateObject("MSCOMDLG.COMMONDIALOG")

開発環境では実行できますが、他の環境では

      「実行時エラー '429'」
      「ActiveX コンポーネントはオブジェクトを作成できません。」

となります。ランタイム等は最新版をインストールしてあります。
ただし、上記のエラーも発生するPCと発生しないPCがあります。このいずれのPCも、ランタイムのみで Visual Basic はインストールされていません。

当然開発環境は問題ありませんので、ライセンス問題になるのでしょうか?

編集 削除
魔界の仮面弁士  2008-04-05 16:46:36  No: 100546  IP: 192.*.*.*

CommonDialog は、ランタイム ライセンスのみでは動作しません。
デザインタイム ライセンスが要求されます。

ランタイムのみの環境に、デザインタイムライセンスを入れれば
CreateObject が成功することは検証していますが……そもそも
デザインタイムライセンスを再頒布することはできないのですから、
CreateObject せず、フォームに貼って使用するしか無いでしょう。

編集 削除
魔界の仮面弁士  2008-04-05 18:18:03  No: 100547  IP: 192.*.*.*

> CommonDialog は、ランタイム ライセンスのみでは動作しません。
この表現だと語弊があるかな…。

ランタイムだけで動作はしますが、「作成」する事はできない、という意味です。
http://support.microsoft.com/kb/281848/ja


もしも、実行環境での動的生成が必要なら、
「Licenses.Add」と「Controls.Add」を試してみてください。

編集 削除