[[20200722083919]] 『ユーザーフォームからQRコードで入力』(しばこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームからQRコードで入力』(しばこ)

いつもお世話になっております。
バーコードリーダーを使って、セルにQRコードのデータ入力した場合と違い、ユーザーフォーム上のテキストボックスにQRコードを読み込むと、文字コードに対応していないせいか文字化けしてしまいます。
文字化けせずに入力する方法はないでしょうか?
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


QRコードって、Excel標準命令では扱えないので、何らかのコントロールを使っていると思うのですが、それが何かを教えてください。 もしGoogle API利用ならば、Excel専用のここよりも、teratailとか、他の掲示板で質問した方が良いですよ。

そして、文字化けすると言われても、そのマクロや実際の文字列と化けた文字列を教えてもらわないと、何とも…。 シートだと大丈夫でフォームが駄目という事だけから判断すると、フォームの場合はSHIFT-JISで、シートはUniCodeなので、VBAのStrConv関数で変換できそうに思えます。

(???) 2020/07/22(水) 09:32


???さんありがとうございます。
バーコードスキャナーからQRコードを読み込むだけで、選択中の文字入力可能な場所(ノートパッドなど)にテキストデータが入力される仕組みです。ですので単純にこの入力されたテキストを条件で振り分けようかと考えていました。
文字化けは以下の通りです。

K/22/水戸  50 に 928/1/JB23W-214434/K6A/4 '正常
K/22/邅賋腀腀艔艏腀苉腀艘艑艗/1/JB23W-214434/K6A/4 '文字化け

StrConv関数を試したところvbUnicodeやvbFromUnicodeではうまく変換できませんでした。
シート上では正常に表示されるので、フォーム表示の状態から直接シートに入力させることが可能ならば、そこからleft,right,midなどで振り分けようと考えています。

(しばこ) 2020/07/27(月) 09:30


化け方は、SHIFT-JISコードのデータをUnicode扱いした場合に似てます。 ノートパッドでも正常ということならば、SHIFT-JISコードで貼り付けていると思います。 マクロ編集画面で、イミディエイトウィンドウをクリックした後にスキャンすると、正常に表示するのではないかと思いますので、試してみてください。

QRスキャナーを使い始める際にインストールされたアプリ(ドライバ?)が、余計なコード変換をしているように思いますが、何か設定変更できませんか?(スキャンしたものをUnicode変換してから貼っている感じ) 文字列全部ではなく、ナンバープレート情報っぽい部分だけ化けているのが気になるのです。 購入品であれば、メーカーに相談してみるのが一番でしょう。

設定変更できないようならば、シート上でスキャンした後に、シートから文字列を得て動くようなマクロにしてはどうでしょうか。
(???) 2020/07/27(月) 10:21


ユーザーフォームをモーダルで表示しているなら、モードレスで表示すれば
ユーザーフォームを表示したままシートに入力できます。
(cai) 2020/07/27(月) 11:16

UserFormを使わない別案です。

案1:新規ブックに、以下のコードをシートモジュールに貼った後、A列のどこかをクリックしてから、普通にQRコードを読むだけ。(A列のセル値が変化するとマクロが動いて、文字列をバラす)

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vw As Variant
    If Target.Column = 1 Then
        Application.EnableEvents = False
        vw = Split(Target.Text, "/")
        Target.Offset(0, 1).Resize(1, UBound(vw) + 1).Value = vw
        Target.Offset(1, 0).Select
        Application.EnableEvents = True
    End If
 End Sub

案2:マクロを一切使わず、出力したいシートをマウスでクリックした後に、QRスキャナを使う。
スキャナ側は設定変更し、改行コード付きで出力するように設定しておけば、勝手に次の行にフォーカス移動すると思います。
スキャンした文字列をバラすのは数式を使い、B列以降に書いておけば良いでしょう。
(???) 2020/07/27(月) 17:23


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.