質問: ":r" + vbLf 'Laser ON Sleep (5000) 'Laser ON後に使用可能になるまで少し時間が必要 End If End Function ``` > > エラー内容 > > 実行時エラー '429': > > ActiveXコンポーネントはオブジェクトを作成できません。 > > > --- --- 今までやってみたこと 1. 参照設定で「Microsoft Comm Control 6.0」が追加されていなかったので追加 2. 上記参照設定を終えたあとに、フォーム編集画面のツールボックスに電話のマークの「MSComm」が追加されたので、フォームに追加しようとすると「サブジェクトは指定された操作に対して信頼されていません」とエラーが出る 3. 上記エラーを検索し、「」このページに記載のある方法をすべて試すも解決せず。(KB969898を削除しようにも見つからない・ランタイムなので「Microsoft Visual Basic 6.0 Service Pack 6 累積的な更新プログラム」がインストールできない・レジストリも指示通り変更済み) ![ツールボックス内の電話マークがMSComm](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/e7739f414987b00a530f92f84005dcf7.jpeg) ![エラー](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/f4e29115cf8da8615ee116ce0e56630a.jpeg) --- --- 使用環境 Windows 10 Pro 64bit Microsoft Office Professional 2016 32bit --- --- インストールしたもの Visual Basic 6.0 SP6 ランタイムライブラリ 第4版 http://www.vector.co.jp/soft/win95/util/se188840.html Visual Basic 6.0 SP6 ランタイムファイル 3.40 http://www.vector.co.jp/soft/win95/util/se342080.html --- もう丸二日ほどこのエラーで時間を使って疲れてしまいました^^; もうここに質問するしか道は残ってません! お知恵をお借りできれば幸いです。よろしくお願いいたします。 --- 2019年3月13日 11時00分 追記 別のパソコンで同じように作業をしたところ、エラーが出ていた箇所を進めることができました。 ただ、まだ原因がわからない状態が続いているため、問題が発生しているPCで検証を進めています。 --- 2019年3月13日 16時47分 追記 別のパソコンの環境は、OSは同じですがOfficeがProfessional 2013でした。 さらに別のパソコンで試しました。環境はOSがWin7、OfficeがProfessiolal 2013です。 こちらもうまくいきました。もしかしてOfficeの2016がだめ? --- 2019年3月14日 8時44分 追記 レジストリエディターで「648A5600-2C6E-101B-82B6-000000000014」を検索したところ、変更できる箇所が2箇所ありました。 * HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014} * HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\ActiveXCompatibility\{648A5600-2C6E-101B-82B6-000000000014} 上記2箇所のCompatibility Flagsの値を400hから0に変更したところ、ツールボックスからフォーム上にMSCommを挿入しようとしたときのエラーが「正式にライセンスされていないため、コントロールを作成することはできません。」にかわりました。 --- 情報の追加をしてくださった方からの情報を元に、Office2016のKillbitの設定も施しました。 * HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Common\COM Compatibility\{648A5600-2C6E-101B-82B6-000000000014} 上記レジストリのCompatibility Flagsを0に設定したところ、エラーが「アクセスが拒否されました。」に変わりました。 --- 2019年3月16日追記 いろいろと試しましたが結局ダメでした。 仮想環境でWindows10 Office2016をインストールして試してみましたが同様のエラーで止まってしまったので、おそらくOffice2013までなら大丈夫だけど2016はだめとかそういう感じなのかなと推測します。 EasyCommという簡易なシリアル通信のクラスを見つけたので、観念してプログラムを書き換えることにします。
回答: VB6のDLLは、どこに入っていますか? 32ビットのDLLを動かすには、WINDOWS¥SysWOW64にある必要があります。 多分、これだけではないとは思います。外していたらごめんなさい。もっと詳しい諸氏の回答・コメントが付くといいですね! (まだ、VB6を動かすんだ・・。やっかいですね。・・とは、余計な一言ですが。失礼。)