3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LINE WORKSAdvent Calendar 2023

Day 4

LINE WORKS で 外部連携用のQRコード を一括生成(ほぼコピペ)

Last updated at Posted at 2023-12-04

LINE WORKSは、ビジネスチャットで唯一、LINEや外部のLINE WORKSとつながることができる「外部トーク連携」という機能を提供しています。

LINEを使うユーザーと直接やりとりができるようになるため、営業の顧客接点や、協力会社とのやり取りなど、様々な場面で社外とのコミュニケーションに活用することができます。

友だち追加QRコードとは

外部トーク連携をするには、LINE WORKSのQRコードを名刺やメールのフッターに掲載し、LINEユーザ側から「友だち追加」をしてもらう、というやり方がありますが、

「複数名のQRコードを一括で作成したい」 という要望を多くいただいておりましたので、Excel VBAやGoogle Appsを使って、ほぼコピペだけで簡単に一括生成する方法をご案内します。

(動作保証やサポートはしていません。あくまで自己責任の範囲でご利用ください)

利用イメージ

指定したフォルダへ {ID名}.png というファイル名のQRコードを一括出力します
所要時間:約5~10分

Excelを使う場合

Excel VBAの利用権限の制限があったり、Macユーザの方でVBAを利用できない方は、後述するGoogle Appsをお試しください。

1. フォルダの作成
Cドライブ直下に「QRCode」という名前のフォルダを作ります
※他のフォルダを指定したい場合は適宜カスタマイズ可能

2. Excelブックの準備
Excelブックを開き、A列へ、QRコードを作成したいLINE WORKS IDを入力します

3. VBAの作成
Excelで、Alt + F11 キーを押すとVBAエディタが開きます。
VBAエディタのメニューバーで「挿入」を選択し、「標準モジュール」をクリックして新しいモジュールを追加します。

4. コードの入力
以下のVBAコードを、さっきのモジュールにコピペします。

Sub GenerateAndSaveQRCodes()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を適宜変更

    Dim baseUrl As String
    baseUrl = "https://works.do/R/ti/p/{name}"

    Dim i As Integer
    i = 1

    While ws.Cells(i, 1).Value <> ""
        Dim name As String
        name = ws.Cells(i, 1).Value  ' A列に入力されたユーザIDの値を取得

        Dim url As String
        url = Replace(baseUrl, "{name}", name) ' URLを作成

        Dim qrCodeUrl As String
        qrCodeUrl = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & url  ' QRServer APIにてQRコードへ変換

        Dim imagePath As String
        imagePath = "C:\QRCode\" & name & ".jpg" ' 保存先のパス、ファイル命名規則、拡張子は適宜変更可(デフォルトはCドライブ下のQRCodeフォルダ)

        DownloadQRCode qrCodeUrl, imagePath
        i = i + 1
    Wend
End Sub

Sub DownloadQRCode(url As String, savePath As String)
    Dim xmlHttp As Object
    Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
    xmlHttp.Open "GET", url, False
    xmlHttp.send

    If xmlHttp.Status = 200 Then
        Dim stream As Object
        Set stream = CreateObject("ADODB.Stream")
        stream.Open
        stream.Type = 1 ' Binary
        stream.Write xmlHttp.responseBody
        stream.SaveToFile savePath, 2 ' 2 = overwrite
        stream.Close
    End If
End Sub

5. マクロの実行許可
Excelでマクロを実行するには、セキュリティ設定でマクロの実行を許可する必要があります。Excelの「ファイル」タブから「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」に進み、「マクロの設定」で「すべてのマクロを有効にする」(または「警告を表示して有効にする」)を選択します。

6. マクロの実行
VBAエディタに戻り、先ほど作成したコードモジュールを選択します。
メニューから「実行」> 「マクロの実行」> 「GenerateAndSaveQRCodes」を選択して実行します。
これでフォルダにQRコードが作成されます。

失敗する場合は、保存先のフォルダ「QRCode」がちゃんと作成されているか
保存先のパスが合っているかなど確認してください

Google Sheetを使う場合

Googleアカウントを持っていれば誰でもつかえるGoogle Sheetを使うやり方です。
ただし、QRコードは直接ローカルには保存されず、
Google Drive上に作成される「QR COdes」というフォルダに保存されるので、そこからローカルへDLしてください。

1. Google Sheetの作成
Google Sheetで新しいシートを作成し、A列にQRコードを作成したいLINE WORKS IDを入力します

2. スクリプトの作成
「拡張機能」メニューから「Google Apps Script」を開きます。

以下のスクリプトをコピーして、

function generateQRCodes() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var names = sheet.getRange('A:A').getValues(); // A列からデータを取得
  var baseUrl = 'https://works.do/R/ti/p/{name}';
  var folder = DriveApp.createFolder('QR Codes'); // QRコードを保存するフォルダを作成

  names.forEach(function(name) {
    if (name[0] !== '') {
      var url = baseUrl.replace('{name}', name[0]);
      var qrCodeUrl = 'https://chart.googleapis.com/chart?cht=qr&chl=' + encodeURIComponent(url) + '&chs=150x150';
      var response = UrlFetchApp.fetch(qrCodeUrl);
      var blob = response.getBlob();
      folder.createFile(blob).setName(name[0] + '.png'); // QRコードをpngとして保存
    }
  });
}

Apps Scriptの「コード.gs」に貼り付けて、
Ctrl + S で保存します。

image.png

4. スクリプトの実行
上部メニューの「実行」をクリックするとスクリプトが実行されます
しばらくグルグルと処理が回ります
Googleの無料アカウントは確か最長5-6分ほどで処理がタイムアウトになるので、目安としては一度に処理できるのは50件程度かもしれません(未検証)

実行完了
と表示されたら、Google Driveの「QR Codes」というフォルダ内にQRコードが作成されていると思います。

image.png

注意点

  • 初回実行時にGoogle Drive APIの利用権限の設定が必要になるかもしれません
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?