excel

【Excel】エクセルでQRコードを作成する方法(関数・マクロ・複数セルのQRコード・作成できない原因と対処法も)

当サイトでは記事内に広告を含みます

【Excel】エクセルでQRコードを作成する方法(関数・マクロ・複数セルのQRコード・作成できない原因と対処法も)

エクセルでQRコードを作りたいけれど、どのような方法があるのかわからない。そんな疑問をお持ちの方に向けて、本記事ではエクセルでQRコードを作成するさまざまな方法をわかりやすく解説します。

エクセルには標準のQRコード生成機能は備わっていませんが、外部APIの活用・VBAマクロ・アドインなどを使うことでQRコードを作成することが可能です。複数セルのデータからQRコードを一括生成する方法や、作成できない場合の対処法についても触れていきます。

IMAGE関数・WEBSERVICE関数を使ってQRコードを作成する方法

それではまず、エクセルの関数を使ってQRコードを作成する方法について解説していきます。

IMAGE関数でQRコードを表示する(Microsoft 365)

Microsoft 365のエクセルにはIMAGE関数が搭載されており、WebサービスのQRコード生成URLを指定することでセル内に直接QRコードを表示させることができます。

=IMAGE(“https://api.qrserver.com/v1/create-qr-code/?data=”&A1&”&size=150×150”)

→ A1セルの値をもとにQRコード画像をセルに表示する

この方法はインターネット接続が必要ですが、セルの値を変更するだけでQRコードが自動更新される点が大きなメリットです。

WEBSERVICE関数との組み合わせ(旧バージョン対応)

IMAGE関数が使えない旧バージョンのエクセルでは、WEBSERVICE関数とENCODEURL関数を組み合わせてAPIを呼び出す方法があります。ただし、WEBSERVICE関数はQRコード画像の直接表示には対応していないため、URLの生成補助として使用します。

=WEBSERVICE(“https://api.qrserver.com/v1/create-qr-code/?data=”&ENCODEURL(A1))

→ A1の値をURLエンコードしてAPIに渡す

IMAGE関数が使えない場合の代替方法

IMAGE関数はMicrosoft 365でのみ利用可能なため、永続ライセンス版(Excel 2019・2021など)では使用できません。その場合はVBAマクロやアドインを使う方法を選択しましょう。

VBAマクロでQRコードを自動生成する方法

続いては、VBAマクロを使ってQRコードを自動生成する方法を確認していきます。

VBAでQRコード生成APIから画像を取得して貼り付けるコード

VBAのHTTPリクエスト機能を使ってQRコード生成APIから画像を取得し、エクセルシートに貼り付けることができます。

Sub InsertQRCode()

 Dim url As String

 Dim filePath As String

 url = “https://api.qrserver.com/v1/create-qr-code/?data=” & _

  WorksheetFunction.EncodeURL(Range(“A1”).Value) & “&size=150×150”

 filePath = Environ(“TEMP”) & “\qrcode.png”

 Dim http As Object

 Set http = CreateObject(“MSXML2.XMLHTTP”)

 http.Open “GET”, url, False

 http.Send

 Dim stream As Object

 Set stream = CreateObject(“ADODB.Stream”)

 stream.Type = 1

 stream.Open

 stream.Write http.responseBody

 stream.SaveToFile filePath, 2

 stream.Close

 ActiveSheet.Pictures.Insert(filePath).Select

End Sub

このマクロはA1セルの値を元にQRコード画像をダウンロードし、シートに貼り付けるものです。インターネット接続環境が必要となります。

複数セルのデータからQRコードを一括生成する方法

複数のセルに入力されたURLや文字列から、QRコードをまとめて生成したい場合はループ処理を追加します。

Sub BulkQRCode()

 Dim i As Integer

 Dim lastRow As Long

 lastRow = Cells(Rows.Count, 1).End(xlUp).Row

 For i = 1 To lastRow

  Dim url As String

  url = “https://api.qrserver.com/v1/create-qr-code/?data=” & _

   WorksheetFunction.EncodeURL(Cells(i, 1).Value) & “&size=100×100”

  Dim filePath As String

  filePath = Environ(“TEMP”) & “\qr_” & i & “.png”

  ’(HTTPリクエストと保存処理を各行に適用)

  Cells(i, 2).Select

  ActiveSheet.Pictures.Insert(filePath).Select

 Next i

End Sub

A列のデータ件数分だけ繰り返し処理が行われ、B列にQRコード画像が順番に貼り付けられます。

QRコードのサイズ・エラー訂正レベルの設定方法

QRコード生成APIではURLパラメータでQRコードのサイズやエラー訂正レベルを指定できます。

パラメータ 内容 指定例
size 画像サイズ(ピクセル) size=200×200
ecc エラー訂正レベル ecc=H(最高)/ M / Q / L
color バーの色(16進数) color=000000
bgcolor 背景色(16進数) bgcolor=ffffff

QRコードが作成できない原因と対処法

続いては、QRコードが作成できない・表示されない場合の原因と対処法を確認していきます。

IMAGE関数でQRコードが表示されない場合

IMAGE関数を入力してもQRコードが表示されない原因として、以下が考えられます。

原因1:インターネット接続が切れている → ネットワーク接続を確認する

原因2:APIのURLが正しくない → URLと埋め込む値を再確認する

原因3:Microsoft 365以外のバージョンを使用している → VBAマクロに切り替える

原因4:セキュリティ設定で外部URLへのアクセスが制限されている → トラストセンターの設定を確認する

VBAマクロでエラーが発生する場合の対処法

VBAマクロ実行時に「実行時エラー」が発生する場合は、MSXML2.XMLHTTPオブジェクトが利用可能かどうかを確認しましょう。また、ファイルの保存先パスが存在しない場合もエラーになります。Environ(“TEMP”)で取得した一時フォルダへの書き込み権限も確認してください。

QRコードが読み取れない場合の確認ポイント

生成したQRコードがスマートフォンで読み取れない場合は、以下の点を確認しましょう。

QRコードの読み取り失敗の主な原因は、サイズが小さすぎること(最低2cm×2cm以上推奨)、印刷解像度が低いこと、余白(クワイエットゾーン)が不足していることの3点です。特に印刷して使用する場合はこれらを必ず確認してください。

まとめ

本記事では、【Excel】エクセルでQRコードを作成する方法として、IMAGE関数・VBAマクロ・複数セルの一括生成・作成できない場合の対処法まで幅広く解説しました。

Microsoft 365ユーザーであればIMAGE関数を使った方法が最もシンプルで動的な更新にも対応しています。旧バージョンのエクセルを使用している場合はVBAマクロでの実装をご検討ください。QRコードを活用することで、URLの共有や在庫管理など業務の幅がさらに広がるでしょう。