プチIT化 PR

【Excel】QRコードの値Valueを表示する方法【VBA】

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんばんは!今回の記事では、Microsoft BarCode Contorolを利用して作成したQRコードの値(Value値)を取得するVBAマクロを紹介します。

悩める人
悩める人
Excelで作成したQRコードの値を確認するために表示したいな!

Microsoft BarCode Contorolを使ってQRコードを作成して、値の確認が読み取った時にしか確認できないな、と思いました。QRコードに埋め込んだ文字が何だったのか、確認したり表示させておきたい時に使える以下の2つのマクロサンプルを紹介しています。

  1. テキストボックスにフォーカス時にQRコードの値を表示する
  2. QRコード下のテキストボックスにQRコードの値を常に表示する

それでは、いってみましょう!

QRコードは(株)デンソーウェーブの登録商標です。

テキストボックスのフォーカス時にQRコードの値を表示する

まずは、Sheet1のテキストボックスにフォーカスすると、QRコードの内容をテキストボックスに表示するというマクロサンプルを紹介します。フォーカスを外す(テキストボックス以外の場所をクリック)すると、空欄に戻るようにしています。

前提

Sheet1にQRコード(オブジェクト名:BarCodeCtrl1)とActiceXのテキストボックスを配置(オブジェクト名:TextBox1)しておきます。

オブジェクト名は、[開発]タブのデザインモードでオブジェクトを選択すると左上に表示される名前のことです。

VBAマクロサンプル

QRコードにフォーカスした時(GotFocus)にQRコードの値を取得して、テキストボックスに表示させますフォーカスを外した時(LostFocus)にはテキストボックスを空欄にします。

Private Sub TextBox1_GotFocus()
  ActiveSheet.OLEObjects("TextBox1").Object.Value = ActiveSheet.OLEObjects("BarCodeCtrl1").Object.Value
End Sub

Private Sub TextBox1_LostFocus()
  ActiveSheet.OLEObjects("TextBox1").Object.Value = ""
End Sub

マクロはボタン押下タイミングで実行でも良いと思いますし、イベントプロシージャ―に合わせた(ファイルを開く、セルを選択、セルの値を変更する)タイミングで実行でも、お好きなタイミングに書き換えれば使えるかと思います。

Sheet1に配置したオブジェクトに対してのコードなので、マクロのSheet1(Sheet1)のコードに記載します。

注意点

GotFocusやLostFocusイベントについては、デザインモード表示ではマクロが動かない(何も反応ない)ので表示モードは気をつけておくと良いかもです。

QRコード下のテキストボックスにQRコードの値を常に表示する

次は、Excelファイル(Workbook)を開いた時に、QRコードの値を読み込んで直下のテキストボックスに表示するマクロサンプルの紹介です。

前提

Sheet1にQRコード(オブジェクト名:BarCodeCtrl1)とActiceXではないテキストボックスを配置(オブジェクト名:TextBox1)しておきます。※テキストボックスがActiveXではないので、ObjectではなくShapeとして扱うことになります。

VBAマクロサンプル

Excelファイル(Workbook)を開いたときに、TextBox1にQRコードの値を入れて表示しています。

Private Sub Auto_Open()
  ActiveSheet.Shapes("TextBox1").TextFrame.Characters.Text = ActiveSheet.OLEObjects("BarCodeCtrl1").Object.Value
End Sub

WorkBookが開いたときに対する処理なので、ThisWorkbookのコードに記載します。

注意点

QRコードとテキストボックスの配置位置についてですが、QRコードについては読み取り時に余白を設けておいた方が良さそうです。詳しくは以下ページを参考にしてみてください。

さいごに

いかがだったでしょうか。Excelで生成したQRコードの値を表示させるVBAマクロってどうやって記述するのかな?と疑問を持たれた方の参考になれば幸いです。