【VBA】ExcelでQRコードを表示させる方法

VBA

Excel VBA 一覧
ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

ExcelでQRコードを表示させる方法(準備とシート上での表示)
Excelで手軽に(?)QRコードを表示させることができるようになります。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

  • Excelで手軽に(?)QRコードを表示させることができるようになります。


とはいえ、VBAを使用するので
ちょっとハードルが高いかもしれません。

ま、コピペでイケるので大丈夫です。
ご安心ください。

もしスプレッドシートの使用が許されるならこちらをどうぞ↓

GoogleスプレッドシートQRコードを一瞬で作る方法
スプレッドシートを使って一瞬でQRコードが作れてしまいます。

 

VBAでQRコードを表示させる

 

 

準備(Microsoft 365 Access ランタイム)

ExcelでQRコードを表示させるには、
「Microsoft 365 Access ランタイム」なるものが必要となります。

VBA コード

以下をコードエディタに貼り付けて
testdspQR()を呼び出してみてください。

 

'呼び出しサンプル
Sub testdspQR()
    '引数1:URL(QRコードに変換したい文字列)
    '引数2:表示位置
    Call createQRCode("https://technical.verybestcbp.com/", "A2")
End Sub



'----------------------------------------------------
'QRコードの作成
'strQR As String  :QRコードに変換する文字列
'Pos As String    :QRコードの作成位置(QRコードの名前にも使用)
'----------------------------------------------------
Function CreateQRCode(strQR As String, Pos As String)

    Dim xObjOLE As OLEObject
    Dim topPosition As Double
    Dim leftPosition As Double
    
    'QRコードを作成するシートを指定
    Dim ws As Worksheet
    Set ws = ActiveSheet

    '指定シート上にある「OLEObjectオブジェクト」の数だけ繰り返し
    For Each xObjOLE In ws.OLEObjects
        '「QRコード(=11)」かつ名前が「Pos」の場合は削除
        If xObjOLE.Object.Style = 11 And xObjOLE.Name = Pos Then
            xObjOLE.Delete
        End If
    Next

    '「OLEObjectオブジェクト」を作成
    Set xObjOLE = ws.OLEObjects.Add("BARCODE.BarCodeCtrl.1")

    '「OLEObjectオブジェクト」をQRコードにする
    With xObjOLE.Object
        'QRコード(=11)を指定
        .Style = 11
        'アクセス先となるURLを指定
        .Value = strQR
    End With
    
    'QRコードを表示させる位置を取得
    With ws.Range(Pos)
        topPosition = .Top
        leftPosition = .Left
    End With
    
    'QRコードのサイズ、位置、名前を指定
    With xObjOLE
        '縦と横のサイズ
        .Height = 78
        .Width = 78
        '位置
        .Top = topPosition
        .Left = leftPosition
        '名前
        .Name = Pos '削除できるように名前をつける
    End With
    
    '後片付け
    Set xObjOLE = Nothing

End Function

'----------------------------------------------------
'deleteQRCode QRコードの削除
'Pos As String:QRコードの名前に使用
'----------------------------------------------------
Function DeleteQRCode(Pos As String)

    Dim ws As Worksheet
    Dim xObjOLE As OLEObject
    
    'QRコードがあるシートを指定
    Set ws = ActiveSheet

    '指定シート上にある「OLEObjectオブジェクト」の数だけ繰り返し
    For Each xObjOLE In ws.OLEObjects
        '「QRコード(=11)」かつ名前が「QRコード1」の場合は削除
        If xObjOLE.Object.Style = 11 And xObjOLE.Name = Pos Then
            xObjOLE.Delete
        End If
    Next
    
End Function


 

 

実行結果

testdspQR()を実行すると
A2セルにQRコードが表示されます。

 

 

サイズを変更したい場合は、

'縦と横のサイズ
        .Height = 78
        .Width = 78

を変更してください。

以上です。

最後までご覧いただきありがとうございます。

 

つぎはこちら

【VBA】Excelで特定のセルを非表示にする方法
VBA使用時に特定のセルを非表示にする方法とは

 

 

Excel VBA 一覧

以下のサイトを参考にしました。ありがとうございました。

【VBA】QRコードを作成する
【VBA】QRコードを作成するVBAコードです!

コメント

タイトルとURLをコピーしました