https://github.com/yas78/QRCodeLibVBA
QR Code generator library in VBA
https://github.com/yas78/QRCodeLibVBA
qrcode-generator vb6 vba vba-excel
Last synced: 4 months ago
JSON representation
QR Code generator library in VBA
- Host: GitHub
- URL: https://github.com/yas78/QRCodeLibVBA
- Owner: yas78
- License: mit
- Created: 2017-10-09T04:19:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-12T06:03:40.000Z (about 2 years ago)
- Last Synced: 2024-08-13T07:18:19.857Z (8 months ago)
- Topics: qrcode-generator, vb6, vba, vba-excel
- Language: VBA
- Size: 37 MB
- Stars: 90
- Watchers: 10
- Forks: 29
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - yas78/QRCodeLibVBA - QR Code generator library in VBA (VBA)
README
# QRCodeLibVBA
QRCodeLibVBAは、Excel VBAで書かれたQRコード生成ライブラリです。
JIS X 0510:2004に基づくモデル2コードシンボルを生成します。## 特徴
- 数字・英数字・8ビットバイト・漢字モードに対応しています
- 分割QRコードを作成可能です
- BMP、EMF、GIF、PNG、SVG、TIFFファイルに保存可能です
- QRコードをIPictureDispオブジェクトとして取得可能です
- 配色を指定可能です
- 文字セットを指定可能です
- QRコードをクリップボードに保存可能です## クイックスタート
QRCodeLib.xlamを参照設定してください。## 使用方法
### 例1.最小限のコードを示します```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols()
sbls.AppendText "012345abcdefg"Dim pict As stdole.IPictureDisp
Set pict = sbls(0).GetPicture()
```### 例2.誤り訂正レベルを指定する
CreateSymbols関数の引数に、ErrorCorrectionLevel列挙型の値を設定してSymbolsオブジェクトを生成します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols(ErrorCorrectionLevel.L) ' 7%
Set sbls = CreateSymbols(ErrorCorrectionLevel.M) ' 15%(default)
Set sbls = CreateSymbols(ErrorCorrectionLevel.Q) ' 25%
Set sbls = CreateSymbols(ErrorCorrectionLevel.H) ' 30%
```### 例3.型番の上限を指定する
CreateSymbols関数のmaxVer引数を設定してSymbolsオブジェクトを生成します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols(maxVer:=10)
```### 例4.文字セットを指定する
CreateSymbols関数のcharsetName引数を設定してSymbolsオブジェクトを生成します。
(ADODB.Stream に依存しています。使用可能な文字セットはレジストリ[HKEY_CLASSES_ROOT\MIME\Database\Charset]を確認してください。)既定値はShift_JISです。UTF-8の設定例を以下に示します。
```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols(charsetName:="UTF-8")
```### 例5.分割QRコードを作成する
CreateSymbols関数の引数を設定してSymbolsオブジェクトを生成します。型番の上限を指定しない場合は、型番40を上限に分割されます。型番1を上限に分割し、各QRコードのIPictureDispオブジェクトを取得する例を示します。
```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols(maxVer:=1, allowStructuredAppend:=True)
sbls.AppendText "abcdefghijklmnopqrstuvwxyz"
Dim pict As stdole.IPictureDisp
Dim sbl As Symbol
For Each sbl In sbls
Set pict = sbl.GetPicture()
Next
```### 例6.画像形式を指定してIPictureDispオブジェクトを取得する
GetPictureメソッドのpicType引数を設定します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols()
sbls.AppendText "012345abcdefg"Dim pict As stdole.IPictureDisp
' Bitmap
Set pict = sbls(0).GetPicture(picType:=Bitmap)' Metafile
Set pict = sbls(0).GetPicture(picType:=EnhMetaFile)
```### 例7.ファイルへ保存する
SymbolクラスのSaveAsメソッドを使用します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols()
sbls.AppendText "012345abcdefg"
' monochrome BMP
sbls(0).SaveAs "filename"' true color BMP
sbls(0).SaveAs "filename", fmt:=fmtTrueColor' EMF
sbls(0).SaveAs "filename", fmt:=fmtEMF' GIF
sbls(0).SaveAs "filename", fmt:=fmtGIF' transparent GIF
sbls(0).SaveAs "filename", fmt:=fmtGIF, bkStyle:=bkTransparent' monochrome PNG
sbls(0).SaveAs "filename", fmt:=fmtPNG' true color PNG
sbls(0).SaveAs "filename", fmt:=fmtPNG + fmtTrueColor' transparent PNG
sbls(0).SaveAs "filename", fmt:=fmtPNG + fmtTrueColor, bkStyle:=bkTransparent' SVG
sbls(0).SaveAs "filename", fmt:=fmtSVG' monochrome TIFF
sbls(0).SaveAs "filename", fmt:=fmtTIFF' true color TIFF
sbls(0).SaveAs "filename", fmt:=fmtTIFF + fmtTrueColor' bilevel TIFF
sbls(0).SaveAs "filename", fmt:=fmtTIFF + fmtBilevel' 10 pixels per module
sbls(0).SaveAs "filename", moduleSize:=10
' specify foreground and background colors
sbls(0).SaveAs "filename", foreRgb:="#0000FF", backRgb:="#FFFF00"
```### 例8.クリップボードへ保存する
SymbolクラスのSetToClipBoardメソッドを使用します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols()
sbls.AppendText "012345abcdefg"' Bitmap
sbls(0).SetToClipBoard' Metafile
sbls(0).SetToClipboard fmt:=fmtEMF
```### 例9.型番を固定して画像サイズを一定にする
CreateSymbols関数のmaxVer引数とfixedSize引数を設定してSymbolsオブジェクトを生成します。
常にmaxVer引数で指定された型番で生成されます。
型番10に固定する例を以下に示します。```VBA
Dim sbls As Symbols
Set sbls = CreateSymbols(maxVer:=10, fixedSize:=True)
sbls.AppendText "Hello World"
```