はじめに
長年愛用してきたサクラエディタのマクロ機能。便利なJavaScript/VBSマクロを多数作成して日常業務で活用してきましたが、最近のAWS開発やブログ執筆でVSCodeを使う機会が増えてきました。
「VSCodeでもサクラエディタのように快適にマクロを使いたい!」
そんな思いから、TypeScriptでカスタム拡張機能を作成し、Git管理で運用する環境を構築しました。本記事ではその移行の経緯と環境構築の流れを記録します。
移行を決めた理由
サクラエディタの課題
- VSCodeとエディタが分断されて作業効率が落ちる
- Git連携やターミナル統合などモダンな開発環境が弱い
- AWS開発ではVSCodeのRemote-SSH拡張が必須
VSCodeの魅力
- 開発環境として圧倒的に優れている
- 拡張機能のエコシステムが充実
- TypeScriptで型安全なマクロ開発が可能
- Git統合、IntelliSense、デバッグ機能が標準搭載
決め手
「サクラエディタのマクロをVSCodeでも使えるようにすれば、すべてが解決する!」
移行前の準備:既存マクロの棚卸し
まず、日常的に使っているサクラエディタのマクロを整理しました。
よく使うマクロ
ファイルオープン (Ctrl+Shift+F12)
- カーソル下のパスをファイル/フォルダとして開く
- 相対パス、タブ区切り対応
空行までコピー (独自キー)
- 現在行から次の空行までを選択してコピー
- ブロック単位の操作に便利
テキスト電卓
- 選択範囲の数式を評価して結果を挿入
- Math関数、度→ラジアン変換対応
ファイル更新日時取得
- パスから更新日時を取得して行末に挿入
- ファイル管理の効率化
これらをVSCodeに移植することにしました。
環境構築の流れ
1. 基本ツールのインストール
# Node.js環境確認
node --version # v20以上推奨
npm --version
# VSCode拡張機能開発ツール
npm install -g yo generator-code @vscode/vsce2. Keyboard Macro Beta 拡張機能の導入
サクラエディタの「キー操作記録」に相当する機能として、まず「Keyboard Macro Beta」をインストール。
機能:
- Ctrl+Alt+R で記録開始/終了
- Ctrl+Alt+P で再生
- 記録内容を keybindings.json に保存可能
これで簡単な操作の自動化は実現できました。
3. TypeScript拡張機能プロジェクトの作成
複雑なマクロはTypeScriptで実装することに。
# プロジェクト作成
mkdir C:\my-local\my-macros
cd C:\my-local\my-macros
# Git初期化
git init
git branch -M main
# 拡張機能プロジェクト生成
yo codeyo code の設定:
- Extension type: New Extension (TypeScript)
- Name: my-macros
- Description: Custom macros for productivity
4. プロジェクト構造の整備
C:\my-local\my-macros\
├── src\
│ ├── extension.ts # メインエントリーポイント
│ └── macros\
│ ├── openPath.ts # パスオープン
│ ├── copyToEmptyLine.ts # 空行までコピー
│ ├── textCalc.ts # テキスト電卓
│ └── getFileDate.ts # ファイル更新日時
├── package.json # 拡張機能設定
├── tsconfig.json # TypeScript設定
├── README.md
└── .gitignore5. 依存関係のインストール
npm install --legacy-peer-deps
npm run compile6. デバッグ実行でテスト
- VSCodeでプロジェクトを開く
- F5キーでデバッグ実行
- 新しいウィンドウ(Extension Development Host)でテスト
- 問題なければGitコミット
git add .
git commit -m "Initial commit: VSCode custom macros"7. パッケージ化と本番インストール
# パッケージ化
vsce package
# インストール
code --install-extension my-macros-0.0.1.vsix
# VSCode再起動これで普段使いのVSCodeでマクロが使えるようになりました!
インストールした主要ツール・拡張機能
開発ツール
| ツール | 用途 |
|---|---|
| Node.js | TypeScript実行環境 |
| yo (Yeoman) | 拡張機能プロジェクト生成 |
| generator-code | VSCode拡張機能テンプレート |
| @vscode/vsce | 拡張機能パッケージ化ツール |
VSCode拡張機能
| 拡張機能 | 用途 |
|---|---|
| Keyboard Macro Beta | キー操作の記録・再生 |
| My Macros(自作) | TypeScript実装のカスタムマクロ |
キーバインド設計
設定ファイルの使い分け
package.json(拡張機能のデフォルト):
{
"contributes": {
"keybindings": [
{
"command": "myMacros.openPath",
"key": "ctrl+shift+f12",
"when": "editorTextFocus"
}
]
}
}keybindings.json(ユーザーカスタマイズ):
[
{
"key": "ctrl+alt+r",
"command": "kb-macro.startRecording"
},
{
"key": "ctrl+alt+e",
"command": "myMacros.copyToEmptyLine"
}
]優先順位
- keybindings.json(最優先)
- 拡張機能のデフォルト
- VSCode標準
ユーザー設定が常に優先されるので安心です。
Git管理の開始
.gitignore の設定
out/
node_modules/
*.vsix
.vscode-test/初回コミット
git add .
git commit -m "Initial commit: VSCode custom macros extension"GitHubへプッシュ(オプション)
git remote add origin https://github.com/YOUR_USERNAME/my-macros.git
git push -u origin main開発ワークフロー
日常的なマクロ追加・修正
# 1. マクロファイル編集
code src/macros/newMacro.ts
# 2. コンパイル
npm run compile
# 3. F5でデバッグ実行してテスト
# 4. 問題なければコミット
git add .
git commit -m "Add new macro: newMacro"
# 5. バージョンアップ
npm version patch
# 6. 再パッケージ化
vsce package
# 7. 再インストール
code --install-extension my-macros-0.0.2.vsixwatch モードでの開発
# ファイル変更を自動検知してコンパイル
npm run watch移行して良かったこと
統合された開発環境
- エディタの切り替え不要
- Git操作がシームレス
- ターミナルもVSCode内で完結
型安全なマクロ開発
- TypeScriptのIntelliSenseが完璧
- エラーを書く前に発見
- リファクタリングが安全
柔軟なカスタマイズ
- キーバインドを自由に変更可能
- Keyboard Macro Betaと併用できる
- VSCode標準機能との組み合わせ
バージョン管理
- Gitで履歴管理
- 複数PC間での同期が容易
- チーム共有も可能
課題と今後の改善
現在の課題
- サクラエディタの一部マクロ(ActiveXObject依存)は完全移植不可
- 初回セットアップに時間がかかる
- TypeScript学習コストがある(Javaエンジニアなら問題なし)
今後の予定
- より多くのマクロをVSCodeに移植
- ショートカットキーの最適化
- チーム内での共有・展開
まとめ
サクラエディタからVSCodeへのマクロ移行は、初期投資こそ必要ですが、それを上回る生産性向上が得られました。
移行のメリット:
- 開発環境の統一
- 型安全なマクロ開発
- Git管理による履歴管理
- 柔軟なカスタマイズ
こんな人におすすめ:
- サクラエディタユーザーでVSCodeも使っている
- マクロを自作している
- Git管理したい
- TypeScriptに抵抗がない
次回はTypeScriptマクロ開発環境の詳細手順と、実際に作成したマクロの紹介をお届けします!
関連記事
詳細なセットアップ手順

生産性を上げるキー操作

タグ: #VSCode #サクラエディタ #マクロ #TypeScript #開発環境 #生産性向上
コメント