Zidooka

[コピペ可] QRコードをGoogle Apps Scriptで生成する方法⇒2024.10追記 Google Charts APIが廃止されたため、別対応策を追記しました。

※ この記事の内容について、業務・開発上お困りの場合は個別に対応できます(5,000円〜)。
自動化博士
自動化博士

今日はQRコードをGoogle Apps Scriptで生成する方法を紹介するぞい。

APIの利用申請等は不要!そのまま使えるから楽ちん!

Google Chart Toolを使った生成

GAS単体では生成できないため、APIを使用する。使用するのはGoogle Chart Toolであるhttps://developers.google.com/chart

基礎:QRコードを取得するコード

GASにおけQRコードの生成は次のようなコードで実装できる。コードの基本的な部分はこれだけである。

//QRコードを生成する関数
function generateQR(data) {

//Google Chart ToolにGETリクエスト
let url = 'https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + data;
 let option = {
     method: "get",
     muteHttpExceptions: true
   };
let result = UrlFetchApp.fetch(url, option);

//返り値の定義
return result;
}

応用:画像を任意のフォルダに保存する

先ほどの関数で取得した画像をフォルダに保存する場合には次のようなコードになる。

//QRコードを生成する関数
function generateQR(data) {

//Google Chart ToolにGETリクエスト
let url = 'https://chart.googleapis.com/chart?chs=100x100&cht=qr&chl=' + data;
 let option = {
     method: "get",
     muteHttpExceptions: true
   };
let result = UrlFetchApp.fetch(url, option);

//返り値の定義
return result;
}

//ファイルをセーブする関数
function generateImageFile(url){

//関数を呼び出し変数blobに格納
let blob = generateQR(url)

//フォルダーIDを指定 ******は任意のIDを指定してください
let folder = DriveApp.getFolderById(******);


//保存を実行
folder.createFile(blob).setName('*****.png')
}

自動化博士
自動化博士

案外簡単じゃったじゃろ?

質問があればコメント欄に書き込むのじゃ。

参考サイト:

ひまなひと「Google Apps ScriptでQRコードを生成してみる」
https://note.com/himajin_no_asobi/n/n51de21bf73e5

追記

Google Charts APIが使用できなくなったため、新たなコードを作成しました。

function generateQRCodeFromSheet(data) {
  const baseUrl = 'https://api.qrserver.com/v1/create-qr-code/';
  const qrCodeUrl = `${baseUrl}?data=${encodeURIComponent(data)}`;
  
  // 画像のURLをスプレッドシートに表示する
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const cell = sheet.getActiveCell(); // 現在選択中のセルにQRコードを表示
  cell.setFormula(`=IMAGE("${qrCodeUrl}")`);
}

若干ことなる部分もありますが、基本的に使えると思います。

↑のコードだとマージンがないので、QRコードに余白を追加したい場合は以下を使ってください。

function generateQRCodeFromSheet(data) {
  const baseUrl = 'https://api.qrserver.com/v1/create-qr-code/';
  const qrCodeUrl = `${baseUrl}?data=${encodeURIComponent(data)}&margin=10`;
  
  // 画像のURLをスプレッドシートに表示する
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const cell = sheet.getActiveCell(); // 現在選択中のセルにQRコードを表示
  cell.setFormula(`=IMAGE("${qrCodeUrl}")`);
}

https://goqr.me/api

↑のサイトのAPIです。

ではでは!

Zidooka
Zidooka

この記事の内容、60分で一緒に解決できます。

「詰まって進めない」「社内で対応できない」など、状況を聞いて最短ルートを提案します。

初回5,000円〜/事前見積りで安心。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あわせて読みたい記事