dポイントプレゼントキャンペーン実施中!

Windows XPで動いていたVBAでWindows 8.1のPCを替えて動作しなくなった機能が満載
になっています。
そのなかで今回ご教示いただきたいのがRS-232Cの使用方法です。
事前に次の処理は完了しています。
1.Windows XPのPCからMSCOMM32.OCXをWindows8.1のPCのC:\Windows\SYSWOW64に
  コピーしました。
2.コマンドプロンプトの画面でregsvr32.exe C:\Windows\SYSWOW64\MSCOMM32.OCX
を実行しました。(「・・・・成功しました」の表示が出ました。
2.参照設定でC:\Windows\SYSWOW64\MSCOMM32.OCXを選択しました。
3.参照可能なライブラリファイルでMicrosoft Comm Control 6.0にチェックがついて表示
  されました。

実行すると次のエラーとなります。
'==== 通信ポート初期化設定 ====
Set MSComm1 = New MSComm ← 「実行時エラー'429' ActiveXコンポーネントはオブジェクトを作成できません。」
MSComm1.CommPort = 5
MSComm1.PortOpen = True
MSComm1.Settings = "9600,N,8,1"
MSComm1.Handshaking = comRTS

よろしくお願いします。

A 回答 (2件)

Windows8.1ではサポートされていないのでは。


現に新しいPCには、RS-232Cのスロットは有りません。
USBの変換アダプタを勧めます。
小生はまだ、Windows7のままで使っています。
    • good
    • 0
この回答へのお礼

みっさん様
ご指導ありがとうございました。私のPCにもRS-232Cの物理的インターフェイス(D-sub 9ピンコネクタ)はありませんのでUSB変換アダプタを使用しております。
Windows XPではMSCommが使えていたのに、どうも64ビットでは無理になったようです。
何とか昔お世話になったEasyCommで通信ができそうなので、現在暇を見つけて先に進もうとしていますがなかなか時間が取れず明快な解決報告ができなくて申し訳ありません。

お礼日時:2015/06/25 18:56

Officeは32bit版ですよね?64bitだと、そもそもの互換性が信用ならない感がありますので…



私なら、今のマクロにユーザーフォームがあれば、苦し紛れにもう一個MSCommのコンポーネントを貼り付けて、元からのを削除しますね。もちろん後から貼り付けたもののプロパティは、元のに合わせます。

ただもういい加減、OCXはサポートされなくなることを真剣に心配すべき時期に差し掛かっているのでは、と思います。USBシリアル変換だとエラーになる、なんて話も聞いたことがありますし、何しろWindowsNTがバリバリ現役だった頃の代物だから、未だに使えていることの方が驚き。
    • good
    • 0
この回答へのお礼

解決しました

RandenSai様 ご回答ありがとうございました。
おっしゃる通りExcel は64bitでした。
もともと電話アイコンのコントロールはその他のコントロールでは出てこないので
貼り付けてはおらず、参照設定を指定しております。

万策つきて、10年以上、昔にお世話になったEasyComm  Copyright(c) T.Kinoshita
を藁をもつかむ思いで試しましたところが、なんと通信ができました。
まだoutputしか試せておりませんが、たぶん大丈夫な気がします。

EasyCommの中身は詳細に調べていませんが、CreateFile Lib "kernel32" のAPIを中心
に構成されているようです。

とにかく昔お世話になったEasyCommがWindows8.1の64bit Excelで活躍してくれるな
んて感激です。

今後の開発方針を検討する上でもRandenSai様の貴重なご意見、参考にさせていただきます。
ありがとうございました。

お礼日時:2015/06/17 19:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!