エクセルシートに一覧がありその一覧の値を使ってQRコードを一括で作成したいと考えたことはないだろうか。
Microsoft 365を使っている環境であれば、エクセルを使ってQRコードを一括で作成することができる。
この記事では、QRコードを一括で簡単に作成する方法について紹介する。
ExcelでQRコードを一括で作成する方法
最新のエクセルではPythonという言語を使ってマクロのようにコード作成することができる。このPythonを使ってQRコードを作成する。
1. QRコードの値として設定したい値や文字列の一覧を作成し、下記のように「計算式」「QRコード」列を追加で作成する。
列名 | 内容 |
---|---|
QRコードの値 | QRコードに設定したい文字列や値 |
計算式 | QRコードを生成するための関数を実行する計算式を設定する列 後で非表示にしても良い。 |
QRコード | 実際のQRコードを表示する |

2. QRコードを作成したいエクセルシートの何も使ってないセルに下記の計算式を貼り付ける。
=PY(import qrcode
from qrcode.image.styledpil import StyledPilImage
def generate_qr(data):
# QR コードを生成する
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10, # QRコードのドットのサイズ
border=4, # QRコードの余白サイズ
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(image_factory=StyledPilImage)
img.show())
「A1」にコードを入力して、Ctrl + エンターを同時押し


「=py(」と入力するとpython入力モードになるため、その状態では、赤字の部分のみ入力する。
コードが設定された

3. 「計算式」列に下記の計算式を入力する。
=PY(generate_qr(xl("[QRコードの値のセル]")))
例1(テーブルの場合):=PY(generate_qr(xl("[@QRコードの値]")))
例2(通常のセル参照):=PY(generate_qr(xl("A4")))

「=py(」と入力するとpython入力モードになるため、その状態では、赤字の部分のみ入力する。
「計算式」列に「=PY(generate_qr(xl(“[@QRコードの値]”)))」入力し、Ctrl + エンター を同時押し
![Excel QRコードを一括で作成する方法(Microsoft365限定)
「計算式」列に「=PY(generate_qr(xl("[@QRコードの値]")))」入力し、Ctrl + エンター を同時押し](https://itmemo123.net/wp-content/uploads/2025/05/image-42.png)
コードが設定された

4. 「QRコード」列に下記の計算式を入力する
=[「計算式」列のセル].image
例1(テーブルの場合):=[@計算式].image
例2(通常のセル参照):=B5.image
「QRコード」列に「=[@計算式].image」入力し、Ctrl + エンター を同時押し
![Excel QRコードを一括で作成する方法(Microsoft365限定)
「QRコード」列に「=[@計算式].image」入力し、Ctrl + エンター を同時押し](https://itmemo123.net/wp-content/uploads/2025/05/image-44.png)
QRコードが表示された

行数分の計算式を設定すれば、QRコードが一覧で作成される。
コードの解説
下記は一連のコードについての解説。中身を理解されたい方のみ参照していただき、そうでない方は読み飛ばしていただいて構わない。
A1セルに入力したコードについて
このPythonコードは、QRコードを生成して表示するためのものです。以下に、各部分の詳細な解説をします。
1. インポート部分
import qrcode
from qrcode.image.styledpil import StyledPilImage
qrcode
: PythonでQRコードを作成できるライブラリ。StyledPilImage
:qrcode
ライブラリのサブモジュールで、PIL(Python Imaging Library)形式のスタイル付き画像を生成するためのクラス。これを使うと、ただの白黒ではなく、少しデザインされたQRコードを生成できます。
2. 関数定義
def generate_qr(data):
generate_qr
という関数を定義しています。data
という引数に、QRコードに埋め込むテキストやURLなどを渡します。
3. QRコードオブジェクトの作成
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
各引数の意味:
version=1
: QRコードのバージョン(サイズ)を指定。1は最小サイズ(21×21マス)です。error_correction=qrcode.constants.ERROR_CORRECT_L
: 誤り訂正レベル(エラー訂正能力)を設定。L
は最も低い(7%まで復元可能)。
box_size=10
: 1つのドットのピクセルサイズ。border=4
: QRコード周囲の余白(ドット数)。
4. データ追加とQRコードの作成
qr.add_data(data)
qr.make(fit=True)
add_data(data)
: 渡されたデータ(テキストやURLなど)をQRコードに追加。make(fit=True)
: データ量に応じて自動的に最適なサイズに調整。
5. 画像を生成して表示
img = qr.make_image(image_factory=StyledPilImage).convert("RGBA")
img.show()
make_image(...)
: QRコード画像を生成。ここでStyledPilImage
を指定して、スタイル付き画像にしています。.convert("RGBA")
: 画像をRGBA(透過情報ありのカラー)に変換。img.show()
: 生成された画像を標準ビューアで開いて表示。
「計算式」列に入力した計算式
A1セルに入力したコード中にある、関数定義「generate_qr(data)」にdataを引数にして呼び出して画像を作成している
「QRコード」列に入力した計算式
「計算式」列で出力された情報をExcelの画像として表示している。
計算式列ですべてができれば良かったが、できるかどうかは不明。筆者の知識不足があるかもしれない。
QRコードを簡単に作成する場合
QRコードを簡単に作成する場合は、下記の記事を参考にしてほしい。
コメント