【開発環境】
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 はインストールされていません。
当然開発環境は問題ありませんので、ライセンス問題になるのでしょうか?
CommonDialog は、ランタイム ライセンスのみでは動作しません。
デザインタイム ライセンスが要求されます。
ランタイムのみの環境に、デザインタイムライセンスを入れれば
CreateObject が成功することは検証していますが……そもそも
デザインタイムライセンスを再頒布することはできないのですから、
CreateObject せず、フォームに貼って使用するしか無いでしょう。
> CommonDialog は、ランタイム ライセンスのみでは動作しません。
この表現だと語弊があるかな…。
ランタイムだけで動作はしますが、「作成」する事はできない、という意味です。
http://support.microsoft.com/kb/281848/ja
もしも、実行環境での動的生成が必要なら、
「Licenses.Add」と「Controls.Add」を試してみてください。