- 締切済み
フリーソフトのQRコードリーダー→EXCELセルへ
QRコードリーダーの読み取り値をダイレクトにEXCELのセルへ転記したい。フリーソフトはQRコードリーダーProです。簡易的にEXCEL VBAのsendkeysによりQRコードリーダーのクリップボードデータをEXCELセルへ書き出すプログラムは成功しましたが、QRコードを読みだした後にEXCEL側のコマンドボタンによりデータを拾い出す形です。あくまで、QRコードリーダーが読みとった瞬間にEXCELのセルへデータ転記させたいのですが、何とかお考え戴けないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
私は、 >QRコードリーダーのクリップボード の記述を誤解し、 WindowsOS上のクリップボードに格納するところまで できていると思っていました。 期待のことを実現するには、 エクセルVBAが >QRコードリーダーのクリップボード ここにデータが格納されたというイベントを 拾う必要がありましょう。 例えば、 WindowsOS上から見える特定のフォルダーに ファイルが書き込まれる(あるいは書き換わる)のであれば、 そのフォルダー(やファイルのタイムスタンプ)を VBAが常時監視するという対応が考えらそうですが、 >QRコードリーダーのクリップボード を知らないので、これ以上の深追いができません。 少なくとも私には手に負えません。失礼しました。
- imogasi
- ベストアンサー率27% (4737/17069)
下記は、質問者の聞いている方向と違うのは認識しています。 しかし、Office重視なら https://hamachan.info/win10/access/barcode.html のような、ACCESSを購入して、使うのが普通のやり方のようです。 ACCESSの購入に1万数千円必要ですが。ACCESSは、他の使い道で、ビジネスには必須のソフトとして使えて便利(必須?)ます。 データベースをEXCELLに移すのは一発です。 ーー またACCESSを入れると、エクセルでもバーコード・コントロールが増えて、使えるようになるようです。 http://pineplanter.moo.jp/non-it-salaryman/2017/09/26/excel2016-qrcode/ ーー バーコード読み取り装置が、多分数千円なのに、アクセスは1万数千円するしね。 アクセス購入出費と手間で、質問者は、こちらを採用しようとおもわないかもしれないが、参考までに上げて見ます。
- HohoPapa
- ベストアンサー率65% (455/693)
QRコードリーダーProを使うことで、 必要なデータ(リーダーが読み取ったデータ)を WindowsOS上のクリップボードに格納するところまではできている。 ここまではいいですね? ならば、次のようなコードで ・クリップボードを常時監視し、 ・クリップボードにテキストが格納されたら ・取り出して、A2セルに書き込み、 ・クリップボードの中身を空にする。 というマクロを常駐させることで 期待のことができるだろうと思います。 なお、予め Microsoft Forms 2.0 Object Library を参照設定する必要があります。 よくわからない場合は、 https://www.relief.jp/docs/017881.html を参照してください。 また、簡単な動作テストしか行っていませんので、 アシカラズ。 Option Explicit Dim IngFlg As Boolean Declare Function OpenClipboard Lib "user32" (Optional ByVal hwnd As Long = 0) As Long Declare Function CloseClipboard Lib "user32" () As Long Declare Function EmptyClipboard Lib "user32" () As Long '//--------クリップボード監視開始 Sub CaptureStat() IngFlg = True OpenClipboard '以下でクリップボードを空にする。 EmptyClipboard CloseClipboard AutoCapture End Sub '//--------クリップボード監視終了 Sub CaptureStop() IngFlg = False End Sub '//--------クリップボード監視メイン Sub AutoCapture() Dim CB As New DataObject Do While True CB.GetFromClipboard If IngFlg = False Then MsgBox ("クリップボードの監視を終了します") Exit Sub End If If CB.GetFormat(1) Then Cells(2, 1).Value = CB.GetText End If OpenClipboard '以下でクリップボードを空にする。 EmptyClipboard CloseClipboard DoEvents Loop End Sub
お礼
大変お忙しいところ、大変有り難くビギナーでも判り易い解説も含めてありがとうございました。2アクション(QRコード読取+クリップボードコピー)ではなく1アクション(QRコード読取と同時にEXCELのセルへ)を目指していろいろ取り組んでいるのですが、お手上げ状態です。
補足
QRコードリーダーProはコード読取後、このソフト内にあるクリップボードへコピーのコマンドボタンによりクリップボードにコピーされます。そのコピー操作をsendkeysによってEXCELに取り込むことはできています。こんなに立派なプログラムではありませんが、常時監視によりEXCELセルへ転記も成功しています。コマンドボタンによるスイッチング操作なしでQRコードを読取データをダイレクトにEXCELセルへ転記させたいのですが。。。いわゆる、QRコードをWEBカメラにかざした瞬間にエクセルセルへデータが転記されることを目標にしております。
お礼
ご丁寧にありがとうございました。大いに参考になりました。数万円のQRコードリーダーを購入すれば問題は回避できることは理解しています。出口部分はプログラム出来ているので何とかQRコード読取部の入口を何とかしたいと考えております。
補足
全く同じことは2ヶ月ほど前に考えましたが、QRコード読取後の処理についてはほぼプログラムは完成しています。フリーソフトQRコードリーダーのプログラムを解析してその読み取りデータをダイレクトにEXCELへ転記することを目的としています。ACCESSはMicrosoft BarCode Controlがあることが理由かと思いますが、現時点でMicrosoft BarCode Control 15.0は無償配布されているので、既にEXCELへ取り込んで使用してみました。しかし、これはQRコードを作成するものですので目的とは外れます。