xlcraft — VBA for ExcelVS Code で Excel VBA を快適に開発するための拡張機能です。シンタックスハイライト・IntelliSense・リント・フォーマッタを 無料 で提供し、Excel との双方向同期と「Run Macro in Excel」を Pro 機能 (買い切り ¥750) として提供します。 Free / Pro
初回インストール時から 7 日間のトライアル で Pro 機能を試せます。トライアル期間中・終了後ともに、エディタ機能 (Free) は引き続き利用可能です。 Pro の購入とアクティベート1. 購入xlcraft Pro チェックアウト で ¥750 を支払うと、メールでライセンスキー ( 2. アクティベートVS Code 内でコマンドパレット (
を実行 → ライセンスキーを貼り付け。ステータスバーが 3. 機械の移動1 ライセンスにつき 1 台までです。別の PC で使う場合は、まず元の PC で 4. リファンドPolar のデフォルトに従い 購入から 14 日以内 ならリファンド可能です。 ライセンスコマンド
ステータスバーの スクリーンショット主な機能 (Free)言語サポート
IntelliSense
Lint (7 ルール、QuickFix 付き)
フォーマッタ (
|
| コマンド | 動作 |
|---|---|
VBA: Run Macro in Excel |
編集中のモジュールを Excel に取り込み、指定したマクロを実行 (引数サポート付き) |
VBA: Sync Current File to Excel |
編集中の .bas を Excel に反映 (実行はしない、進捗通知付き) |
VBA: Sync ALL Modules to Excel |
フォルダ内の .bas をまとめて Excel に反映 |
VBA: Export Module from Excel |
Excel 上のモジュールを QuickPick で選んで .bas 出力 (UTF-8 BOM、上書き確認付き) |
- CodeLens: Sub/Function 宣言の上に「Run Macro」「Sync to Excel」ボタンを表示 (Windows のみ、
vbaExcel.codeLens.enabledで切替) - ワークブック選択: 開いているワークブックを QuickPick で一覧表示、またはファイルダイアログで選択
- プリフライトチェック: プラットフォーム・ワークブックパスを事前検証
- エラー診断: Trust Access 欠落・ビット数不一致・Excel 未検出を自動検出し、解決手順を表示
自動同期は実装していません。VS Code → Excel、Excel → VS Code いずれもユーザー指示でのみ実行されます。
動作要件
- VS Code 1.85.0 以降
- Windows + Excel (Pro の Excel 連携コマンドの実行時のみ。Free のエディタ機能は OS 非依存)
Excel 連携の前提条件
- VBA プロジェクトへのアクセスを許可: ファイル → オプション → セキュリティセンター → セキュリティセンターの設定 → マクロの設定 → 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェック
- PowerShell と Excel のビット数を一致 (32/64 bit)
- ファイルエンコーディング: 日本語コメントを含む
.basは UTF-8 BOM 付きで保存 (Export コマンドは BOM を強制)
設定項目
| キー | 既定値 | 説明 |
|---|---|---|
vbaExcel.workbookPath |
"" |
対象ワークブック (.xlsm/.xlsb) のパス。空にすると毎回選択 |
vbaExcel.keepExcelVisible |
true |
マクロ実行中に Excel ウィンドウを表示 |
vbaExcel.codeLens.enabled |
true |
Sub/Function 上の CodeLens アクション表示 (Windows のみ) |
vbaExcel.linting.rules.optionExplicit |
warning |
error / warning / information / hint / off |
vbaExcel.linting.rules.unusedVariable |
warning |
同上 |
vbaExcel.linting.rules.implicitVariant |
information |
同上 |
vbaExcel.linting.rules.gotoOveruse |
information |
同上 |
vbaExcel.linting.rules.duplicateDeclaration |
warning |
同上 |
vbaExcel.linting.rules.unreachableCode |
information |
同上 |
vbaExcel.linting.rules.unqualifiedRange |
information |
同上 |
vbaExcel.format.indentSize |
4 |
インデント幅 (1〜8) |
vbaExcel.format.useTabs |
false |
インデントにタブを使用 |
vbaExcel.format.operatorSpacing |
true |
演算子周辺のスペース正規化 |
vbaExcel.format.alignDeclarations |
false |
連続 Dim 行の As を縦揃え |
プライバシー
xlcraft はテレメトリを収集しません。唯一の外部通信は Polar へのライセンス検証 (api.polar.sh) のみです。
送信されるデータ
Pro ライセンスのアクティベート・検証・ディアクティベート時に、api.polar.sh へ HTTPS リクエストを送信します。
| フィールド | 値 |
|---|---|
key |
入力したライセンスキー |
organization_id |
Polar の組織 ID (拡張機能にハードコード) |
label |
vscode.env.machineId から生成した短い文字列 (例: vscode-abcdef12) — アクティベート時のみ送信 |
activation_id |
アクティベート時に Polar が返す UUID (検証・ディアクティベート時に使用) |
ソースコード、ファイルパス、ドキュメント内容、その他のワークスペースデータは一切送信されません。
第三者サービス
- Polar がライセンス発行および決済の事業者です。Polar のプライバシーポリシー: https://polar.sh/legal/privacy
- それ以外の第三者とデータを共有することはありません
データの削除
xlcraft: Deactivate License(コマンドパレット) を実行すると、ローカルのライセンスキー・検証キャッシュを消去し、Polar にアクティベーション解除を通知します
サポート用診断情報
xlcraft: Copy License Diagnosticsでライセンス状態の匿名化された診断情報をクリップボードにコピーできます。ライセンスキーやマシンIDは含まれません(ティア・理由・VS Codeバージョン・プラットフォーム情報のみ)
トラブルシューティング
Excel 連携
| 症状 | 原因と対処 |
|---|---|
| 「プログラミングによるアクセスは信頼されていません」 | Excel > ファイル > オプション > トラストセンター > マクロの設定 > 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェック |
New-Object Excel.Application で失敗 / 0x80040154 エラー |
PowerShell と Excel のビット数 (32/64 bit) を揃える。64bit Excel なら 64bit PowerShell を使用 |
| 日本語コメントが文字化け | .bas を UTF-8 BOM 付き で保存。VS Code 設定: "files.encoding": "utf8bom" |
| Excel が見つからない | Microsoft Excel がインストールされ、COM オートメーションが利用可能か確認 |
| ワークブックが見つからない | vbaExcel.workbookPath 設定のパスを確認。空にしてダイアログから選択も可能 |
| マクロのセキュリティ警告 | Excel > ファイル > オプション > トラストセンター > マクロの設定 > 「すべてのマクロを有効にする」 |
| CodeLens が表示されない | Windows 以外の OS では非表示。vbaExcel.codeLens.enabled が true か確認 |
ライセンス
| 症状 | 原因と対処 |
|---|---|
| 「ライセンスキーが活性化上限に達しています」 | 元の PC で xlcraft: Deactivate License を実行してから新しい PC でアクティベート |
xlcraft: Pro → オフライン後 Free に戻った |
7 日のオフライン猶予を超過。再接続後に自動で再検証されます |
| アクティベーションが失敗する (ネットワークエラー) | インターネット接続を確認して「Retry」をクリック |
| 無効なキーと言われる | ライセンスキーが正しいか確認 (XXXX-XXXX-XXXX-XXXX-XXXX 形式) |
| サポートに問い合わせたい | xlcraft: Copy License Diagnostics で診断情報をコピーし、Issue に添付 |
Pro ユーザーガイド
リファンド
Polar のデフォルトに従い 購入から 14 日以内 ならリファンド可能です。Polar のチェックアウトメールに記載のリンクから手続きしてください。リファンド後はライセンスが無効化され、Free ティアに戻ります。
アクティベーションリセット
1 ライセンスにつき 1 台の制限があります。PC を買い替えた・再インストールしたなどで以前のマシンにアクセスできない場合:
- 可能であれば、元のマシンで
xlcraft: Deactivate Licenseを実行 - アクセスできない場合は、GitHub Issues でライセンスキーの下4桁と診断情報 (
xlcraft: Copy License Diagnostics) を添えてリセットを依頼してください
オフライン利用
- Pro ライセンスは 24 時間ごとにオンラインで再検証されます
- オフラインでも 7 日間 は Pro 機能を利用可能 (オフライン猶予期間)
- 7 日を超えてオフラインの場合は Free に戻りますが、再接続後に自動復帰します
開発者向け
npm install
npm run compile # tsc -p ./ → out/extension.js
npm run watch # tsc -w; F5 デバッグ時は事前に起動を推奨
npm run test:unit # vscode 非依存のユニットテスト (301 tests)
npm test # @vscode/test-electron による E2E (3 tests)
- Mocha は TDD UI (
suite()/test()) を使用 - GitHub Actions CI で Node 18/20 のコンパイル・テスト・VSIX アーティファクトを自動実行
- 詳細は
CONTRIBUTING.md・CLAUDE.mdを参照
ライセンス
Commercial License © 2026 Masaya Wada