0

バーコードスキャナーを持っています。そのため、バーコードがガンを使用してスキャンされると、通常は画面に配置されたテキスト フィールドに値が入力されます。

というわけでエクセルマクロを作ってみました。バーコードがスキャンされると、文字で終わるセルにテキストが表示されますnew line(テキスト + "\r\n" はスキャナー自体によって提供されます)。したがって、イベントがトリガーされ、残りの処理が行われます。

問題は、イベントが改行文字でのみトリガーされることです。\r\nバーコードを出力するたびにバーコード スキャナが提供しなかった場合はどうなるでしょうか。このような状況にどう対処すればよいですか?それを検出してイベントをトリガーするにはどうすればよいですか?

4

2 に答える 2

2

入力を受け取るユーザーフォームを作成する場合、keydownまたはkeypressイベントを使用して、押されたキーを検出できます。バーコードの最終状態がどうなるかを知る必要があるため、処理するセルにいつ値を送信するかがわかります。

キーダウンはシフト状態を提供し、ページアップ/ページダウン/その他の特殊キーもキャプチャします

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
    ByVal Shift As Integer)

キープレスは、入力可能な文字を生成するキーでのみ機能します

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Changeユーザーフォームがない場合、ワークシートでイベントをトリガーするには、入力/改行に依存する必要があります

于 2012-11-21T14:14:01.607 に答える