Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Then
PICOCX1.Outp PortB, 7, High
PICOCX1.Outp PortB, 4, High
End If
If KeyCode = 40 Then
PICOCX1.Outp PortB, 6, High
PICOCX1.Outp PortB, 5, High
End If
If KeyCode = 37 Then
PICOCX1.Outp PortB, 7, High
PICOCX1.Outp PortB, 5, High
End If
If KeyCode = 39 Then
PICOCX1.Outp PortB, 6, High
PICOCX1.Outp PortB, 4, High
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Then
PICOCX1.Outp PortB, 7, Low
PICOCX1.Outp PortB, 4, Low
End If
If KeyCode = 40 Then
PICOCX1.Outp PortB, 6, Low
PICOCX1.Outp PortB, 5, Low
End If
If KeyCode = 37 Then
PICOCX1.Outp PortB, 7, Low
PICOCX1.Outp PortB, 5, Low
End If
If KeyCode = 39 Then
PICOCX1.Outp PortB, 6, Low
PICOCX1.Outp PortB, 4, Low
End If
End Sub
というプログラムですがこれがもしPICOCX1.Outp PortB, 4, Lowなどが実行できないとエラーとして返ってきてしまいます。このときエラー箇所をもう一度実行する方法はあるのでしょうか?
お願いします。こちらの環境はVB6.0です。
No.2ベストアンサー
- 回答日時:
サブプロシージャを使用してこういうのはどうでしょうか?
【用意するサブプロシージャ】
Private Sub ExecOutp( PICOCX1 , param1 , param2 , param3 )
On Error Resume Next
'実行
PICOCX1.Outp param1 , param2 , param3
'エラーが発生していたら再起呼び出し
If Err.Number <> 0 Then Call ExecOutp( PICOCX1 , param1 , param2 , param3 )
End Sub
呼び出し側は
Call ExecOutp( PICOCX1 , PortB , 6 , Low )
こんな感じで呼び出します。
No.1
- 回答日時:
単純に「on error goto」でエラー処理に飛ばして「resume」で戻って・・・ということではダメですか?
蛇足かもしれませんが・・・
このocxってマイコン制御用の奴ですよね?
一旦出力に失敗したものを再度出力しても、結局再びエラーになってしまいませんか?
ターゲットがPICマイコンならば、ポートの出力状態を読み込むことが出来るので、出力した内容とそれを読み込んだ内容を比較して、偽であった場合にリトライする、というような処理が必要だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Arduino UNO のC言語 2 2023/04/18 19:42
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルエラー13型が一致しま...
-
実行時エラー 438になった時の...
-
ExcelVBA Range クラスの Page...
-
エクセルVBAで以下のようなコー...
-
プロシージャ名の取得
-
なぜこんな初歩的なVBAのIf文で...
-
エラー1004 PDFの保存ができま...
-
VBAがブレークモードになっ...
-
ADODB.Streamを使用してUTF-8を...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
-
実行時エラー -'-2147417848
-
【Excel VBA】マクロをボタンに...
-
VB6 エラー:438 (InputBoxに値)
-
Invalid procedure call or arg...
-
Application.ActiveInspectorで...
-
vbaのvlookup関数エラー原因を...
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAのコードがエラーになっ...
-
VBA 別シートのセルから、文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
VBAがブレークモードになっ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBSで変数の宣言はできないので...
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
AccessVBAでExcelを起動し、罫...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
Application.ActiveInspectorで...
おすすめ情報