{"id":51163471,"url":"https://github.com/minipoisson/xlsm_devkit","last_synced_at":"2026-06-26T16:30:36.050Z","repository":{"id":356121136,"uuid":"1229028492","full_name":"minipoisson/xlsm_devkit","owner":"minipoisson","description":"Excel VBA xlsm development toolkit for module import/export with UTF-8 conversion and sheet map markdown export.","archived":false,"fork":false,"pushed_at":"2026-06-19T08:00:37.000Z","size":512,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-19T10:05:51.427Z","etag":null,"topics":["automation","excel","macro","markdown","spreadsheet","utf-8","vba","vbe","visual-basic-for-applications","xlsm"],"latest_commit_sha":null,"homepage":"https://zenn.dev/minipoisson/articles/xlsm-devkit-sheet-code-to-ai?locale=en","language":"VBA","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/minipoisson.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-04T16:16:20.000Z","updated_at":"2026-06-19T08:00:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"f91070f1-ae48-45f0-bf89-6baee9fe13b4","html_url":"https://github.com/minipoisson/xlsm_devkit","commit_stats":null,"previous_names":["minipoisson/xlsm_devkit"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/minipoisson/xlsm_devkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minipoisson%2Fxlsm_devkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minipoisson%2Fxlsm_devkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minipoisson%2Fxlsm_devkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minipoisson%2Fxlsm_devkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minipoisson","download_url":"https://codeload.github.com/minipoisson/xlsm_devkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minipoisson%2Fxlsm_devkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34825609,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","excel","macro","markdown","spreadsheet","utf-8","vba","vbe","visual-basic-for-applications","xlsm"],"created_at":"2026-06-26T16:30:30.885Z","updated_at":"2026-06-26T16:30:36.040Z","avatar_url":"https://github.com/minipoisson.png","language":"VBA","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xlsm_devkit\n\nExcel VBA モジュール・フォームの入出力とシートマップのエクスポートを行う開発支援ツールです。  \nVBE（Visual Basic Editor）と外部エディタ（VS Code など）を組み合わせた xlsm 開発ワークフローをサポートします。\n\n## コアモジュール\n\n`xlsm_devkit.bas` 単体をインポートすると、以下のマクロが使えます。\n\n| マクロ | 内容 |\n| :--- | :--- |\n| `ExportAllModulesFormsSheetMaps` | 全モジュール・フォームを `src/` に、全シートマップを `sheet/` に書き出す |\n| `ImportAllModulesFormsSheetMaps` | 全モジュール・フォームを `src/` から、全シートマップを `sheet/` から読み込む |\n| `CallExportAllComponents` | 全モジュール・フォームを `src/` に書き出す |\n| `CallImportAllComponents` | 全モジュール・フォームを `src/` から読み込む |\n| `CallExportAllSheetMapsToMD` | 全シートのセル・図形・数式・スタイルを `sheet/*.md` に書き出す |\n| `CallImportAllSheetMapsFromMD` | `sheet/*.md` からセル値・数式・スタイル・名前付き範囲・入力規則リスト・結合セルを復元する |\n| `CallInitDevMode` | 現在のブックから `DEV_\u003cname\u003e.xlsm` を作成し、`src/` の `devkit_*` ファイルをすべてインポートする。ソースが `.xlsx` の場合も DEV_ コピーは自動的に `.xlsm` として作成される。 |\n| `CallSaveAsRelease` | `DEV_` プレフィックスを除いた本番コピーを保存し、devkit モジュールをすべて削除する（`DEV_` ブックから呼ぶ） |\n\nモジュール（`.bas`）とフォーム（`.frm`/`.frx`）は同じ操作でまとめて入出力されます。  \n`xlsm_devkit` 自身は `CallImportAllComponents` によってインポートされません（実行中のモジュールは上書きできないため）。\n\n## オプション機能\n\n以下の機能は `xlsm_devkit.bas` に加えて追加ファイルが必要です。\n\n### InsertDelete\n\n行・列の挿入・削除を行い、前後のシートマップを Markdown として保存し、影響を受ける VBA 参照を更新するための AI プロンプトを生成します。\n\n同じ VBA プロジェクトに以下のファイルをすべてインポートしてください。\n\n| ファイル | 役割 |\n| :--- | :--- |\n| `devkit_InsertDelete.bas` | 機能ロジック |\n| `devkit_frmInsertDelete.frm` + `devkit_frmInsertDelete.frx` | セットアップダイアログ |\n| `devkit_frmInstruction.frm` + `devkit_frmInstruction.frx` | 結果・インポートダイアログ（Move と共用） |\n\nエントリポイント: `ShowInsertDeleteForm`\n\n### Move\n\nExcel のマクロ記録機能を使ってセル範囲の切り取り・貼り付けを記録し、前後のシートマップを取得して、影響を受ける VBA 参照を更新するための AI プロンプトを生成します。\n\n同じ VBA プロジェクトに以下のファイルをすべてインポートしてください。\n\n| ファイル | 役割 |\n| :--- | :--- |\n| `devkit_Move.bas` | 機能ロジック |\n| `devkit_frmMoveSetup.frm` + `devkit_frmMoveSetup.frx` | セットアップダイアログ |\n| `devkit_frmMoveWait.frm` + `devkit_frmMoveWait.frx` | 記録中ダイアログ |\n| `devkit_frmInstruction.frm` + `devkit_frmInstruction.frx` | 結果・インポートダイアログ（InsertDelete と共用） |\n\nエントリポイント: `ShowMoveSetupForm`\n\n### ランチャー\n\nインポート・エクスポートの全操作を一箇所にまとめたダイアログです。UI 言語の切り替えも行えます。InsertDelete・Move モジュールが読み込まれている場合は、それらのボタンも表示されます。\n\n同じ VBA プロジェクトに以下のファイルをすべてインポートしてください。\n\n| ファイル | 役割 |\n| :--- | :--- |\n| `devkit_Launch.bas` | 機能ロジック |\n| `devkit_frmLauncher.frm` + `devkit_frmLauncher.frx` | ランチャーダイアログ |\n\nエントリポイント: `ShowLauncherForm`\n\n### 国際化（i18n）\n\nオプション機能のダイアログに表示されるテキストは、INI ベースの言語ファイルによってローカライズされます。i18n 関数（`t()`、`Fmt()`、`SetLang()`、`GetLangCode()`）は `xlsm_devkit.bas` に組み込まれており、追加の VBA モジュールは不要です。ブックと同じフォルダに `lang/` フォルダを置くだけで有効になります。\n\n27 言語が同梱されています（アラビア語・ベンガル語・英語・スペイン語・ペルシャ語・フランス語・ドイツ語・ヒンディー語・インドネシア語・日本語・ジャワ語・韓国語・マレー語・マラーティー語・ポルトガル語・パンジャーブ語・ロシア語・スワヒリ語・タミル語・テルグ語・タイ語・トルコ語・ウクライナ語・ウルドゥー語・ベトナム語・中国語（簡体字）・中国語（繁体字））。\n\n使用言語は Windows の設定から自動検出されます。ランチャーの言語セレクターか、以下のように直接指定して上書きすることもできます。\n\n```vba\nSetLang \"ja\"   ' 日本語に切り替え\nSetLang \"\"     ' システム設定に戻す\n```\n\n### テストハーネス\n\nブックをコードのようにテストします。オプションの `devkit_Test.bas` モジュールと\nPowerShell ランナーが、実務帳票で価値の高い検証に答えます。すなわち\n**「入力セルにどんな境界値・空欄・不正値・ランダム値を入れても、結果シートに\nExcel エラー（`#DIV/0!`, `#N/A` など）が出ないか」**。\n\n- 標準の Windows PowerShell のみで完結（Python・外部モジュール不要）。\n- 仕様は JSON（`tests/workbook.meta.json`, `tests/no_error.test.json`）、結果は\n  `test-results/latest/result.{json,md}` に出力。\n- シートはタブ名（`sheet`）または VBA の `code_name` で指定可能。テスト前に Markdown の\n  `fixtures` でセルへ値・数式を流し込めます。\n- 原本ブックは一切変更しません（毎回ブックフォルダ内の作業コピーで実行＝ブックの信頼できる\n  場所を継承）。\n\n```powershell\n.\\tools\\New-SampleTestWorkbook.ps1                                   # サンプル生成（開発時のみ）\n.\\tools\\Invoke-XlsmDevkitTest.ps1 -Workbook .\\examples\\test-harness\\sample.xlsm\n```\n\nAPI・JSON スキーマ・実行手順の詳細は **[TESTING.md](TESTING.md)**（英語）を参照してください。\n\n## 使い方\n\n### 導入手順（新規ブックに組み込む）\n\n1. 開発対象の `.xlsm` を開き、`Alt + F11` で VBE を開く。\n2. プロジェクトエクスプローラーで対象プロジェクトを右クリックし、`ファイルのインポート` から `xlsm_devkit.bas` を読み込む。\n3. Excel の設定で「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」を有効にする。\n4. `ExportAllModulesFormsSheetMaps` を実行し、ブックと同じフォルダに `src/` と `sheet/` が作成されることを確認する。\n5. VS Code などで `src/` 内のファイルを編集し、`ImportAllModulesFormsSheetMaps` を実行する。\n\n### DEV / リリース ワークフロー\n\nユーザー向けの `.xlsm` を devkit モジュールのない状態で配布したい場合は、`DEV_` 命名規則を使います。\n\n**開発開始 (`CallInitDevMode`)**\n\n1. 本番ブック（例: `MyTool.xlsm`）を開き、上記の導入手順と同様に `xlsm_devkit.bas` を手動でインポートする。\n2. xlsm_devkit リリースから必要な `devkit_*.bas`, `devkit_*.frm`, `devkit_*.frx` をブックと同じフォルダの `src/` に配置する。\n3. マクロ ダイアログ（`Alt+F8`）から `CallInitDevMode` を実行する。`DEV_MyTool.xlsm` が同フォルダに作成され、`src/` にある `devkit_*` ファイルがすべてインポートされる。\n4. `MyTool.xlsm` を**保存せずに**閉じる。こうすることで本番ファイルには devkit モジュールが残らない。\n5. `DEV_MyTool.xlsm` を開いて開発を進める。\n\n\u003e **`.xlsx` ファイルをソースとして使う場合:** `CallInitDevMode` は `.xlsx` ブックにも対応しています。DEV_ コピーは常に `.xlsm`（マクロ有効形式）として作成されるため、ソース形式に関わらず devkit の全機能が使えます。開発後、`CallSaveAsRelease` で `MyTool.xlsm` というリリースファイルが作成されます。`.xlsx` 形式で配布したい場合は、そのファイルから **ファイル → 名前を付けて保存** で `.xlsx` を選んでください。\n\n**リリース (`CallSaveAsRelease`)**\n\n配布する準備ができたら:\n\n1. `DEV_MyTool.xlsm` から `CallSaveAsRelease` を実行する。マクロ ダイアログ（`Alt+F8`）から呼び出すか、ランチャーの **リリースとして保存** ボタンを使う（ブック名が `DEV_` で始まる場合のみ有効）。\n2. `DEV_` プレフィックスを除いた名前 `MyTool.xlsm` としてコピーが保存され、`xlsm_devkit` と `devkit_*` モジュールがそのコピーから削除される。\n3. `DEV_MyTool.xlsm` はそのまま — 引き続き開発に使用できる。\n\n### エクスポート\n\n`ExportAllModulesFormsSheetMaps` を実行すると、全モジュール・フォームとシートマップをまとめてエクスポートします。\n\n- 各モジュール → `src/*.bas`（BOM なし UTF-8）、各フォーム → `src/*.frm`（BOM なし UTF-8）、バイナリリソース → `src/*.frx`。\n- 各シート → `sheet/*.md`（BOM なし UTF-8）。\n\nモジュール・フォームのみエクスポートする場合は `CallExportAllComponents` を実行します。  \nシートマップのみエクスポートする場合は `CallExportAllSheetMapsToMD` を実行します。\n\n### インポート\n\n`ImportAllModulesFormsSheetMaps` を実行すると、全モジュール・フォームとシートマップをまとめてインポートします。\n\n- `src/` 内のファイルがプロジェクトに読み込まれます。既存のモジュール・フォームはコードが更新され、新規のものは追加されます。同フォルダの `*.frx` は VBE が自動的に参照します。\n- `sheet/*.md` が対応するシートに適用されます（セル値・数式・背景色・文字色・フォントサイズ・表示形式・配置・ロック状態・入力規則リスト・名前付き範囲・結合セル）。\n- 前回のエクスポート・インポート以降に変更のない Markdown ファイルは自動的にスキップされます。ファイルサイズと更新日時を同期キャッシュ（`sheet/xlsm_devkit_sync.tsv`）と比較し、変更のないシートを除外するため、未変更のブックへの再インポートはほぼ瞬時に完了します。\n\nモジュール・フォームのみインポートする場合は `CallImportAllComponents` を実行します。  \nシートマップのみインポートする場合は `CallImportAllSheetMapsFromMD` を実行します。\n\n### 選択インポート（`xlsm_devkit.ini`）\n\nデフォルトではシートマップ内のすべてのトークンがインポート時に適用されます。特定のカテゴリを無効にするには、ブックと同じフォルダに `xlsm_devkit.ini` ファイルを作成し、`[import]` セクションを記述します。\n\n```ini\n[import]\n; 1 = インポート時に適用（キーまたはファイルが存在しない場合のデフォルト）、0 = スキップ\n; 例外: unlocked のデフォルトは 0（明示的なオプトイン）-- 意図しないセルに\n; Locked=False を適用するとシート保護が弱まる。セルのロック状態を復元する\n; 場合のみ有効にすること。merge=0 と merge=1 の両方で動作する。\nvalue=1\nformula=1\nnumfmt=1\nunlocked=0\nlist=1\nbg=0\nfg=0\nfont_size=0\nbold=0\nitalic=0\nstrike=0\nwrap=0\nhalign=0\nvalign=0\nmerge=0\nhidden_rows=0\nhidden_cols=0\nshapes=0\n```\n\n最も効果的な設定は `merge=0` です。`ws.Cells.UnMerge` へのブロッキング COM コールをスキップするため、結合セルが多数あるシート（例：縦横に結合されたヘッダーを持つ大型レポートシート）での 8〜15 分のボトルネックを解消できます。`merge=0` の場合、結合構造はそのままに、セル値・数式のみが更新されます。\n\n## シートマップ形式\n\n各シートは `sheet/\u003cCodeName\u003e.md` としてエクスポートされます。ファイルはメタデータヘッダーで始まり、Markdown テーブル、そして省略可能な Shapes セクションが続きます。\n\n### ファイルヘッダー\n\n```\n# Sheet Configuration\n- VBA CodeName: Sheet1\n- Excel UI Name: Summary\n- Hidden Rows: 3, 5-7\n- Hidden Columns: B, D-F\n```\n\n`Hidden Rows` と `Hidden Columns` は非表示行・列が存在する場合のみ出力されます。\n\n### セルテーブル\n\n```markdown\n| Address | Name | Value / Label | Formula | Style |\n| :--- | :--- | :--- | :--- | :--- |\n| A1 | - | Hello | - | Bold |\n| B2 | rate | 0.05 | `=A1*0.05` | FontSize:14; NumFmt:0.00% |\n| C3 | - | !merged_left | - | - |\n```\n\n| 列 | 内容 |\n| :--- | :--- |\n| `Address` | セルアドレス（例: `A1`、`B12`） |\n| `Name` | このセルに紐づく名前付き範囲の名前。なければ `-`。シートスコープの名前はワークシートプレフィックス付き（`Sheet1!myRange`）。 |\n| `Value / Label` | 表示値（数式セルの場合は評価結果）。マージスレーブセルの場合はマージマーカー（後述）。 |\n| `Formula` | バッククォートで囲まれた数式（`` `=A1*B1` ``）。数式セルでない場合は `-`。 |\n| `Style` | セミコロン区切りのスタイルトークン。スタイルなしの場合は `-`。 |\n\n値も数式も背景色もないセルはエクスポートから除外されます。\n\n### スタイルトークン\n\n| トークン | 値の形式 | Export 条件 | Import フラグ | 不在時の動作 |\n| :--- | :--- | :--- | :--- | :--- |\n| `BG:#rrggbb` | 6桁 16進 | 背景色が設定されている | `bg=1` | 変更なし |\n| `FG:#rrggbb` | 6桁 16進 | 文字色が設定されている | `fg=1` | 変更なし |\n| `FontSize:\u003cn\u003e` | 整数 pt | 標準フォントサイズと異なる | `font_size=1` | 変更なし |\n| `Bold` | フラグのみ | `Font.Bold = True` | `bold=1` | `False` にリセット |\n| `Italic` | フラグのみ | `Font.Italic = True` | `italic=1` | `False` にリセット |\n| `Strike` | フラグのみ | `Font.Strikethrough = True` | `strike=1` | `False` にリセット |\n| `Wrap` | フラグのみ | `WrapText = True` | `wrap=1` | `False` にリセット |\n| `Unlocked` | フラグのみ | `Locked = False` | `unlocked=1` | `True`（Locked）にリセット |\n| `NumFmt:\u003cformat\u003e` | Excel 書式文字列 | `\"General\"` 以外 | `numfmt=1` | 変更なし |\n| `List:\u003cformula\u003e` | 例: `=$A$1:$A$10` | 入力規則リストが設定されている | `list=1` | 変更なし |\n| `HAlign:\u003cvalue\u003e` | 下記参照 | 出力なし（import-only） | `halign=1` | 変更なし |\n| `VAlign:\u003cvalue\u003e` | 下記参照 | 出力なし（import-only） | `valign=1` | 変更なし |\n\n`HAlign` の値: `General`、`Left`、`Center`、`Right`、`Fill`、`Justify`、`CenterAcrossSelection`、`Distributed`（大文字小文字を区別しない）。  \n`VAlign` の値: `Top`、`Center`、`Bottom`、`Justify`、`Distributed`（大文字小文字を区別しない）。\n\n**Boolean トークンのリセット動作:** Boolean import フラグ（`bold=1` 等）が有効なとき、トークンがセルのスタイル文字列に**不在**の場合は、import 時にその属性をデフォルト値にリセットします。これは export の出力方針（非デフォルト値のみ書き出す）と対称です。\n\n### マージスレーブマーカー\n\n結合セルのスレーブセルは `Value / Label` 列にマーカーが出力されます。\n\n| マーカー | 意味 |\n| :--- | :--- |\n| `!merged_left` | マスターと同行のスレーブセル（右方向に結合） |\n| `!merged_up` | マスターと同列のスレーブセル（下方向に結合） |\n| `!merged_ul` | マスターの右下にあるスレーブセル |\n\nスレーブ行は import 時にスキップされ、結合構造は別パスで再構築されます（`merge=1` が必要）。\n\n### エスケープシーケンス\n\nセル値とスタイルトークン値で以下の文字がエスケープされます。\n\n| エスケープ | 元の文字 |\n| :--- | :--- |\n| `\\\\` | バックスラッシュ |\n| `\\n` | 改行（CR・LF・CRLF） |\n| `\\v` | 垂直タブ（Chr 11） |\n| `\\|` | パイプ（Markdown テーブル区切り） |\n| `\\;` | セミコロン（スタイルトークン区切り ― スタイル値のみ） |\n\nShapes フィールドでは、空欄を表すセンチネル値 `-` と区別するため、内容が文字列 `-` そのものの場合は `\\-` と書き出されます。\n\n### Shapes セクション\n\nシートに図形（テキストボックス・ボタン等）がある場合、セルテーブルの後に `## Shapes` セクションが追記されます。\n\n```markdown\n## Shapes\n\n| Address | Name | Label | Formula | OnAction | Style |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| A1 | Button 1 | Click me | - | Module1.DoAction | BG:#4472C4; FG:#FFFFFF |\n```\n\n| 列 | 内容 |\n| :--- | :--- |\n| `Address` | 図形の左上にあるセルのアドレス |\n| `Name` | 図形の内部名 |\n| `Label` | 表示テキスト（なければ `-`、内容が `-` の場合は `\\-`） |\n| `Formula` | リンクされたセルの数式（バッククォート囲み）。なければ `-`。 |\n| `OnAction` | 割り当てられたマクロ名。なければ `-`。 |\n| `Style` | 図形の塗りつぶし色・文字色・フォントサイズ（`BG:`・`FG:`・`FontSize:` トークン） |\n\nImport フラグ: `shapes=1`。\n\n## 前提条件\n\n### VBA プロジェクト オブジェクト モデルへのアクセス\n\nExcel の次の設定を有効にしてください。\n\n```\nファイル → オプション → トラスト センター → トラスト センターの設定\n  → マクロの設定 → 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェック\n```\n\nこの設定が無効の場合、エクスポート・インポートのいずれも実行できません。\n\n### 文字コードについて\n\nVBA の `VBComponents.Export` / `VBComponents.Import` はシステムの ANSI コードページ（日本語環境では Shift_JIS）でファイルを読み書きします。  \nこのモジュールでは ADODB.Stream と Win32 API `GetACP()` を使い、ディスク上のファイルを BOM なし UTF-8 として保持しながら VBE との間で相互変換を行っています。\n\n## ファイル構成\n\n```\n\u003cブックと同じフォルダ\u003e/\n  src/                     # エクスポートされた .bas・.frm ファイル（BOM なし UTF-8）+ バイナリ .frx\n  sheet/                   # エクスポートされたシートマップ .md ファイル（BOM なし UTF-8）\n  xlsm_devkit.ini          # 任意: 選択インポート設定（選択インポート の節を参照）\n```\n\n## アップグレード\n\n`xlsm_devkit.bas` を新しいバージョンに差し替えた場合は、シートマップを再エクスポートしてください。\n\n1. 新しい `xlsm_devkit.bas` を VBE にインポートします。\n2. `CallExportAllSheetMapsToMD` を実行し、`sheet/*.md` を現行の形式で再生成します。\n3. 更新された `sheet/*.md` をコミットします。\n\nバージョン間でシートマップのフォーマットが変わることがあるため、古いバージョンで生成したファイルは新しいバージョンで正しくインポートされない場合があります。\n\n## 制約事項\n\n- `xlsm_devkit` 自身は `ImportAllModulesFormsSheetMaps` や `CallImportAllComponents` によってインポートされません（実行中のモジュールは上書き・削除できないため）。`xlsm_devkit` を更新する場合は、手動で VBE に貼り付けてください。\n- `SKIP_DEVKIT_MODULES = True`（デフォルト）の場合、`devkit_*` オプションモジュール・フォームはインポート・エクスポートの両方でスキップされます。また `xlsm_devkit` 自身のエクスポートもスキップされます。オプションモジュールを開発する際は `xlsm_devkit.bas` 内の `SKIP_DEVKIT_MODULES` を `False` に設定してください。\n- Move キャプチャの実行中は `devkit_Move` を再インポートできません（コールスタック上にあるため、インポートすると VBA ランタイムがリセットされ Excel がクラッシュします）。\n- Windows + Excel VBA 環境が必要です。\n\n## 動作確認環境\n\n- Windows\n- 検証済み: Microsoft Excel 2010 以降（32-bit / 64-bit）\n\n## 対応バージョン\n\n- 32-bit Excel: 2007 以降を想定（VBA6 分岐あり、未検証）\n- 64-bit Excel: 2010 以降（`VBA7` / `PtrSafe` が必須）\n- Windows API（`GetACP`）と `VBProject` 操作を使用するため、Windows 版 Excel が前提\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminipoisson%2Fxlsm_devkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminipoisson%2Fxlsm_devkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminipoisson%2Fxlsm_devkit/lists"}