VBAForm2Tkinter 1.5.0
VBAForm2PowerShell 1.3.0
リリースしました。
今回のアップデートでは大きな変更点があります
リポジトリはこちらです
https://github.com/GUI-Conversion-Tools/VBAForm2Tkinter
https://github.com/GUI-Conversion-Tools/VBAForm2PowerShell
新機能追加
画像の出力に対応
ユーザーフォームのImageコントロールに埋め込まれた画像が反映されるようになります、他のコントロールについては現在は非対応です
以下の引数はConvertForm2TkinterとConvertForm2PS共通で使用可能です
| 引数 | 型 | 説明 |
|---|---|---|
imageMode |
String |
省略可能 (デフォルト: "file")変換時の画像ファイルの扱いを設定する、以下の値を設定可能: • "file" (デフォルト): 画像は出力先フォルダ内に個別の画像ファイルとして保存され、生成されたコードはそれらの画像を参照する• "disabled": 画像の処理そのものを無効化し、生成されたコード内でも画像の参照設定を行わない• "reference-only": "file"と同様、画像を参照するコードを生成するが画像の出力自体はスキップする 既に画像ファイルが存在する場合に有用• "base64": 画像をBase64文字列としてコード内に直接埋め込み単一ファイルに収める• "base64-dict": 画像のBase64文字列をコード内の連想配列に格納する• "base64-json": 画像のBase64文字列を外部のimage_base64.json内に格納する、生成されたコードはそのJSONファイルを参照する• "base64-json-reference": "base64-json"と同様、image_base64.jsonを参照するコードを生成するがJSONファイルの生成自体はスキップする JSONファイルが既に存在する場合に有用 |
imageMode:="disabled"に設定した場合は画像の処理は一切行われず画像の扱いは従来バージョンのそれと同等になります
imageMode:="base64"は画像含めたファイルを1つのファイル内にまとめたい場合におすすめです
' Tkinterのコードに変換(画像のBase64文字列をコード内に埋め込む)
Call ConvertForm2Tkinter(UserForm1, imageMode:="base64")
' PowerShell(WinForms)のコードに変換(画像のBase64文字列をコード内に埋め込む)
Call ConvertForm2PS(UserForm1, imageMode:="base64")
Excel以外のVBAでの実行に対応
従来のバージョンではExcel VBA専用でしたが、今回からWord/PowerPoint/OutlookのVBAでも実行できるようになりました
なおAccess VBAはユーザーフォーム機能がないため非対応です
出力フォルダの仕様変更
生成したソースコードや画像は自動作成される専用のフォルダに保存されます
従来バージョン (v1.4.1/v1.2.0)
作成されたファイルはExcelワークブックと同じフォルダに保存されていました:
WorkbookFolder/
├─ MyWorkbook.xlsm
└─ output.py
今回の変更(v1.5.0/v1.3.0)
出力用フォルダのVBAForm2Tkinter_output(Tkinter用)、VBAForm2PS_output(PowerShell用)がワークブックと同じディレクトリに生成され、すべての生成されたファイルはこのフォルダ内に格納されます
ExcelまたはWord
ExcelまたはWordの場合出力先フォルダはマクロを含んだファイルと同じディレクトリに作成されます
-
Excel: ワークブックが配置されたディレクトリ (
ThisWorkbook.Path) -
Word: ドキュメントが配置されたディレクトリ (
MacroContainer.Path)
ワークブックが配置されたフォルダ/
├─ MyWorkbook.xlsm
└─ VBAForm2Tkinter_output/
├─ output.py
├─ image_base64.json
└─ エクスポートされた画像ファイル...
他のOfficeの場合
他のOffice (PowerPoint, Outlookなど)で実行する場合または未保存のExcelブック/Wordドキュメント下で実行する場合、出力先フォルダはドキュメントフォルダに作成されます.
C:\Users\%USERNAME%\Documents\
└─ VBAForm2Tkinter_output/
├─ output.py
├─ image_base64.json
└─ エクスポートされた画像ファイル...
ドキュメントフォルダの取得に失敗した場合は、Cドライブ直下に出力先フォルダが作成されます
今後のアップデート予定
1.5.x / 1.3.x
内部処理の高速化
1.6.0 / 1.4.0 以降
コントロールの内部的に設定されたZオーダーの反映