掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RS232C 設定反映 (ID:123503)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
昨日はちょっと忙しかったので。。。。 ちょっと錯綜してきました、少し問題点を整理してみましょう。 私が2回目のレスで試したコードは、ボタン(cmdSetup)一つと Mscomm(ctlComm)コントロール一つだけをフォームに置いて、 Form1: Private Sub cmdSetup_Click() COMM_DATA.comm_port = 1 If commOpen(ctlComm) = 0 Then MsgBox "設定完了" End If End Sub Module: Public Type Comset comm_port As Integer End Type Public COMM_DATA As Comset Public Function commOpen(ctlComm As Object) As Integer On Error GoTo e With COMM_DATA ctlComm.CommPort = .comm_port End With ctlComm.PortOpen = True commOpen = 0 Exit Function e: MsgBox (Err.Description) commOpen = 1 End Function このコードは試されるとわかるのですが、問題なく実行されます。 最初に疑うのは誰も同じで、COMM_DATA のスコープですが、 Module内の宣言をコメントアウトして、Form内にPrivate で 宣言してみました。結果は、「Option Explicit」を指定しない場合は 「オブジェクトが必要です」のエラーメッセージが、「Option Explicit」を 指定した場合は、「変数が定義されていません」のエラーメッセージが出ます。 提示された「オブジェクト変数または With ブロック変数が設定されていません。」の エラーにはなりません。 確かにcommOpen(ctlComm As Object) はレイトバインドで気持ちは悪いのですが エラーになることは無いと思います。 >チロルさん 上のコードを試されて、もしエラーが出ないのなら、少しずつ肉付けをされれば 何が問題かわかるでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.