エクセルのマクロで経験した中で、QRコードを表示させるのは難しいお仕事。
”OLEObjects”というプロパティがあるのですが、これでバーコードも作れるな。
この懐かしいOLEというのは、Microsoftの複合文書技術のフレームワークです。
要は、テキスト、カレンダー、アニメーション、サウンド、動画等が主な対象。
あらゆる種類のビジュアルなオブジェクトや情報オブジェクトを含んでいます。
もし、この機能を搭載したアプリなら、アプリ間でオブジェクトのコピペもOK。
確か、コピー元を変えると、リンクされた先のオブジェクトも変更されるはず。
そういった便利さから、エクセルで作ったグラフをパワポに貼ったりしました。
昔は、このOLEの機能がよく使われましたが、現在はあまり使われていません。
まあ、専門的にはチンプンカンプンなので、話はこれぐらいにしましょうかね。
それで、このOLEの機能は、ウインドウズ上で動作するアプリ間で連携します。
アプリで機能を搭載する但し書き付きですが、今や違うOSも増えて来ました。
なので、この機能はさておいて、実際のQRコード作成はデメリットがあるの。
それは、変換機能が、アルファベト等1バイト文字の対応だけになっている点。
漢字等2バイト文化圏の文字がコード変換できないので、仕事には使えません。
市販のアドインみたいなソフトもありますが、お金もかけられないので諦めた。
なので、実験的にコード作成しましたが、実際は別な方法が残されていました。
それは、”GoogleChartAPI”という外部サービスを引用して作成するのですよ。
ネットで発見したサンプルコードも実に単純だし、呼び出し作成も意外に早い。
というわけで、参考にコードを貼っておくので、使いたい人は使っておくれな。
実は、このQRコードのサービスでは、ネットで検索しているとグーグルが既に中止したとか言っている人もいたりして、でも、実際にコードを起動させると作成されてきますので、タダで使えればそれでいいじゃんと思ってしまうのでした。
※サンプルコード
Sub QRmkngGoglChrt() 'QRコード作成
Dim msg As String, Url As String, Shp As Shape
msg = "ここに2バイト文字を貼ってみる"
Url = ""
Url = Url & "https://chart.apis.google.com/chart?"
Url = Url & "cht=qr&chs=130x130&chl="
Url = Url & msg
Url = Url & ""
Set Shp = ActiveSheet.Pictures.Insert(Url).ShapeRange(1)
Shp.Top = 0 'ワークシート上の貼付位置:ポイント単位
Shp.Left = 0
End Sub
Sub ShpDelete() '貼り付けたQRコードの削除
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
Shp.Delete
Next Shp
End Sub
0 件のコメント:
コメントを投稿