つらつら Excel VBA

私の備忘録です。

QRコード(Access)

Google先生APIは永遠に使える訳ではないので回避策としてテスト。

Accessランタイム インストール

バーコードはAccessのコントロールなのでAccessが必要!無ければランタイムでよい!Accessランタイムは無料!さすMicrosoft


早速ダウンロードしてインストール!!私のOfficeは32bit版2019。


32bit版Microsoft Access 2016 Runtime

/(^o^)\
念のため64bit版も試す

/(^o^)\
office 16 click-to-run extensibility component 64-bitをアンインストールしたら次に進めた!


\(^o^)/

インストーラー自身がダウンロードとインストールするやつをクイック実行インストーラー(C2R)という模様。
実行形式ファイルからインストールしたやつ(MSI)じゃないと共存できねぇよ?とのこと。
現場によって詰みます。


Microsoft Access 2013 Runtimeなら共存できるとのこと!
インストールできた!!


ランタイムをアンインストールするとバーコード作成時に以下のエラーを確認。再インストール後にバーコード出せることも確認。


ソース

Sub MakeQRCode(valueRange As Range, outputRange As Range)
    
    '文字のチェック
    If valueRange.Value = "" Then Exit Sub
    If Len(valueRange.Value) > 255 Then
        Debug.Print "255文字を超えています。"
        Exit Sub
    End If
    If Len(valueRange.Value) <> Len(StrConv(valueRange.Value, vbNarrow)) Then
        Debug.Print "全角文字が含まれています。"
        Exit Sub
    End If
    
    Dim sh As Worksheet
    Set sh = ActiveSheet
    
    With sh.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
        .Object.Style = 110              'QRコード
        .LinkedCell = valueRange.Address '値の設定
        .Top = outputRange.Top           '仮の作成場所
        .Width = .Height                 '正方形にする
        .CopyPicture , xlBitmap          '画像コピー
        .Delete                          '削除
    End With
    
    '画像として貼り付け
    'sh.Activate
    outputRange.Select
    sh.Paste
    Set sh = Nothing
    
End Sub

'選択した右のセルにQRコードを作成する
Sub test()
    Call MakeQRCode(Selection, Selection.Offset(0, 1))
End Sub

漢字は使えない。Excelで呼び出して使うのはMSサポート外。最大255文字。

更に作成したQRコードがマウスで選択できないため移動ができない!ソースのDelete部分をコメントアウトすると確認できる。
なので画像コピーして張り付ける処理をいれた。

削除するには、選択できるオブジェクト(オートシェイプ等なんでもよい)を用意して、F5>セル選択>オブジェクトで全選択して一括削除。

以上。