<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>拡張機能開発 - CayTech Lab</title>
	<atom:link href="https://caymezon.com/tag/%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd%e9%96%8b%e7%99%ba/feed/" rel="self" type="application/rss+xml" />
	<link>https://caymezon.com</link>
	<description></description>
	<lastBuildDate>Sat, 07 Feb 2026 09:58:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://caymezon.com/wp-content/uploads/2026/01/cropped-CayTechLab-32x32.jpg</url>
	<title>拡張機能開発 - CayTech Lab</title>
	<link>https://caymezon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<atom:link rel='hub' href='https://caymezon.com/?pushpress=hub'/>
	<item>
		<title>VSCode TypeScriptマクロ開発環境の完全ガイド【セットアップから運用まで】</title>
		<link>https://caymezon.com/vscode-typescript-macro-development-guide/</link>
					<comments>https://caymezon.com/vscode-typescript-macro-development-guide/#respond</comments>
		
		<dc:creator><![CDATA[caymezon]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 05:38:49 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[VSCode]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[拡張機能開発]]></category>
		<category><![CDATA[開発環境]]></category>
		<guid isPermaLink="false">https://caymezon.com/?p=20020</guid>

					<description><![CDATA[<p>目次 はじめにこの記事で分かることなぜTypeScriptなのか？TypeScriptのメリットJavaScriptとの比較前提条件必要な環境推奨スキルセットアップ手順（完全版）Step 1: Node.js環境の確認S [&#8230;]</p>
<p>The post <a href="https://caymezon.com/vscode-typescript-macro-development-guide/">VSCode TypeScriptマクロ開発環境の完全ガイド【セットアップから運用まで】</a> first appeared on <a href="https://caymezon.com">CayTech Lab</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">この記事で分かること</a></li><li><a href="#toc3" tabindex="0">なぜTypeScriptなのか？</a><ol><li><a href="#toc4" tabindex="0">TypeScriptのメリット</a></li><li><a href="#toc5" tabindex="0">JavaScriptとの比較</a></li></ol></li><li><a href="#toc6" tabindex="0">前提条件</a><ol><li><a href="#toc7" tabindex="0">必要な環境</a></li><li><a href="#toc8" tabindex="0">推奨スキル</a></li></ol></li><li><a href="#toc9" tabindex="0">セットアップ手順（完全版）</a><ol><li><a href="#toc10" tabindex="0">Step 1: Node.js環境の確認</a></li><li><a href="#toc11" tabindex="0">Step 2: 開発ツールのインストール</a></li><li><a href="#toc12" tabindex="0">Step 3: プロジェクトディレクトリの作成</a></li><li><a href="#toc13" tabindex="0">Step 4: 拡張機能プロジェクトの生成</a></li><li><a href="#toc14" tabindex="0">Step 5: プロジェクト構造の確認</a></li><li><a href="#toc15" tabindex="0">Step 6: マクロディレクトリの作成</a></li><li><a href="#toc16" tabindex="0">Step 7: 依存関係のインストール</a></li><li><a href="#toc17" tabindex="0">Step 8: コンパイル確認</a></li></ol></li><li><a href="#toc18" tabindex="0">プロジェクト構成の詳細</a><ol><li><a href="#toc19" tabindex="0">package.json（拡張機能の設定）</a></li><li><a href="#toc20" tabindex="0">extension.ts（メインファイル）</a></li><li><a href="#toc21" tabindex="0">マクロファイルの配置</a></li></ol></li><li><a href="#toc22" tabindex="0">開発からインストールまでの流れ</a><ol><li><a href="#toc23" tabindex="0">開発フロー全体像</a></li><li><a href="#toc24" tabindex="0">デバッグ実行（開発中のテスト）</a></li><li><a href="#toc25" tabindex="0">パッケージ化（本番用）</a></li><li><a href="#toc26" tabindex="0">インストール</a></li></ol></li><li><a href="#toc27" tabindex="0">効果的な開発ワークフロー</a><ol><li><a href="#toc28" tabindex="0">watch モードの活用</a></li><li><a href="#toc29" tabindex="0">バージョン管理</a></li><li><a href="#toc30" tabindex="0">日常的な更新フロー</a></li></ol></li><li><a href="#toc31" tabindex="0">キーバインド設計</a><ol><li><a href="#toc32" tabindex="0">設定場所の使い分け</a></li><li><a href="#toc33" tabindex="0">おすすめキー設定</a></li><li><a href="#toc34" tabindex="0">when句による条件分岐</a></li></ol></li><li><a href="#toc35" tabindex="0">メリット・デメリット</a><ol><li><a href="#toc36" tabindex="0">メリット</a></li><li><a href="#toc37" tabindex="0">デメリット</a></li><li><a href="#toc38" tabindex="0">総評</a></li></ol></li><li><a href="#toc39" tabindex="0">トラブルシューティング</a><ol><li><a href="#toc40" tabindex="0">コンパイルエラー</a></li><li><a href="#toc41" tabindex="0">インストールエラー</a></li><li><a href="#toc42" tabindex="0">拡張機能が認識されない</a></li><li><a href="#toc43" tabindex="0">デバッグ方法</a></li></ol></li><li><a href="#toc44" tabindex="0">効果的な使い方</a><ol><li><a href="#toc45" tabindex="0">Keyboard Macro Betaとの併用</a></li><li><a href="#toc46" tabindex="0">VSCode標準機能との組み合わせ</a></li><li><a href="#toc47" tabindex="0">ワークスペース固有の設定</a></li></ol></li><li><a href="#toc48" tabindex="0">次のステップ</a><ol><li><a href="#toc49" tabindex="0">より高度な機能の実装</a></li><li><a href="#toc50" tabindex="0">チーム展開</a></li></ol></li><li><a href="#toc51" tabindex="0">まとめ</a></li><li><a href="#toc52" tabindex="0">関連記事</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">はじめに</span></h2>
<p>VSCodeでカスタムマクロを作成したいけど、どうやって開発環境を構築すればいいか分からない。そんな悩みを持つ方に向けて、TypeScriptでVSCode拡張機能を開発する環境の構築から、実際にマクロを作成して使えるようにするまでの完全手順を解説します。</p>
<p>本記事では、初心者でも迷わずセットアップできるよう、コマンド一つひとつを丁寧に説明します。</p>
<p><!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");msmaflink({"n":"プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで (Software Design plus)","b":"技術評論社","t":"","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/510GhCOD1FL._SL500_.jpg","\/41og2y1EEHL._SL500_.jpg","\/51XHb97PpFL._SL500_.jpg","\/51uDIY22bQL._SL500_.jpg","\/51PaoVK3MWL._SL500_.jpg","\/51eG7JBoavL._SL500_.jpg","\/51CDCo8FmJL._SL500_.jpg","\/41JLTXb+tsL._SL500_.jpg","\/51Hsv39e7IL._SL500_.jpg","\/41PTe+TqLEL._SL500_.jpg","\/51TUxdoXjrL._SL500_.jpg","\/51AkZEJWGhL._SL500_.jpg","\/51paP7D5R5L._SL500_.jpg","\/41lJtbpaQvL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4297127474","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4297127474","a_id":1384942,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AETypeScript%E5%85%A5%E9%96%80%20%E5%AE%89%E5%85%A8%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%8B%E3%82%89%E9%AB%98%E5%BA%A6%E3%81%AA%E5%9E%8B%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%BE%E3%81%A7%20(Software%20Design%20plus)\/","a_id":1384917,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AETypeScript%E5%85%A5%E9%96%80%20%E5%AE%89%E5%85%A8%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%8B%E3%82%89%E9%AB%98%E5%BA%A6%E3%81%AA%E5%9E%8B%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%BE%E3%81%A7%20(Software%20Design%20plus)","a_id":1466950,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"OaDLa","s":"s"});</script></p>
<div id="msmaflink-OaDLa">リンク</div>
<p><!-- MoshimoAffiliateEasyLink END --></p>
<h2><span id="toc2">この記事で分かること</span></h2>
<ul>
<li>TypeScript拡張機能開発環境の構築手順</li>
<li>プロジェクト構成とファイル配置</li>
<li>デバッグ実行からインストールまでの流れ</li>
<li>TypeScript vs JavaScript の比較</li>
<li>効果的な開発ワークフロー</li>
<li>おすすめキーバインド設定</li>
<li>トラブルシューティング</li>
</ul>
<h2><span id="toc3">なぜTypeScriptなのか？</span></h2>
<h3><span id="toc4">TypeScriptのメリット</span></h3>
<p><strong>1. IntelliSenseが完璧に機能</strong></p>
<pre><code class="language-typescript">editor.document.  // ← すべてのメソッドが補完される</code></pre>
<p><strong>2. エラーを実行前に発見</strong></p>
<pre><code class="language-typescript">line.text.toUppercase();  // ← 赤波線で即座にエラー検出
// 正しくは toUpperCase()</code></pre>
<p><strong>3. VSCode APIの型定義が充実</strong></p>
<pre><code class="language-typescript">// 引数・戻り値の型が明確
function openFile(filePath: string, readOnly: boolean): Promise<void></code></pre>
<p><strong>4. リファクタリングが安全</strong></p>
<ul>
<li>関数名変更 → すべての呼び出し箇所も自動更新</li>
<li>タイポによるバグを防止</li>
</ul>
<h3><span id="toc5">JavaScriptとの比較</span></h3>
<table>
<thead>
<tr>
<th>項目</th>
<th>TypeScript</th>
<th>JavaScript</th>
</tr>
</thead>
<tbody>
<tr>
<td>補完機能</td>
<td>★★★★★</td>
<td>★☆☆☆☆</td>
</tr>
<tr>
<td>エラー検出</td>
<td>コンパイル時</td>
<td>実行時</td>
</tr>
<tr>
<td>開発効率</td>
<td>高い</td>
<td>低い</td>
</tr>
<tr>
<td>学習コスト</td>
<td>中（Java経験者なら低）</td>
<td>低</td>
</tr>
<tr>
<td>VSCode推奨</td>
<td>◎</td>
<td>△</td>
</tr>
</tbody>
</table>
<p><strong>結論：VSCode拡張機能開発ではTypeScript一択</strong></p>
<h2><span id="toc6">前提条件</span></h2>
<h3><span id="toc7">必要な環境</span></h3>
<ul>
<li>Windows 10/11（Mac/Linuxでも可）</li>
<li>Node.js v20以上</li>
<li>VSCode最新版</li>
<li>Git（バージョン管理用）</li>
</ul>
<h3><span id="toc8">推奨スキル</span></h3>
<ul>
<li>基本的なコマンドライン操作</li>
<li>TypeScript または JavaScriptの基礎知識</li>
<li>Gitの基本操作</li>
</ul>
<h2><span id="toc9">セットアップ手順（完全版）</span></h2>
<h3><span id="toc10">Step 1: Node.js環境の確認</span></h3>
<pre><code class="language-bash"># バージョン確認
node --version  # v20.x.x以上
npm --version   # 10.x.x以上

# 未インストールの場合
# https://nodejs.org/ からダウンロード</code></pre>
<h3><span id="toc11">Step 2: 開発ツールのインストール</span></h3>
<pre><code class="language-bash"># グローバルツールをまとめてインストール
npm install -g yo generator-code @vscode/vsce

# yo: Yeoman（プロジェクト生成ツール）
# generator-code: VSCode拡張機能テンプレート
# @vscode/vsce: パッケージ化ツール</code></pre>
<h3><span id="toc12">Step 3: プロジェクトディレクトリの作成</span></h3>
<pre><code class="language-bash"># 作業ディレクトリを作成
mkdir C:\my-local\my-macros
cd C:\my-local\my-macros

# Gitリポジトリ初期化
git init
git branch -M main</code></pre>
<h3><span id="toc13">Step 4: 拡張機能プロジェクトの生成</span></h3>
<pre><code class="language-bash">yo code</code></pre>
<p><strong>対話式設定項目：</strong></p>
<pre><code class="language-plaintext">? What type of extension do you want to create?
  → New Extension (TypeScript)

? What's the name of your extension?
  → my-macros

? What's the identifier of your extension?
  → my-macros

? What's the description of your extension?
  → Custom macros for productivity

? Initialize a git repository?
  → No（既に初期化済み）

? Which package manager to use?
  → npm</code></pre>
<h3><span id="toc14">Step 5: プロジェクト構造の確認</span></h3>
<pre><code class="language-plaintext">C:\my-local\my-macros\
├── .vscode\              # VSCodeデバッグ設定
│   ├── launch.json
│   └── tasks.json
├── src\
│   ├── extension.ts      # メインエントリーポイント
│   └── test\             # テストコード
├── node_modules\         # 依存パッケージ
├── .gitignore
├── package.json          # 拡張機能設定
├── tsconfig.json         # TypeScript設定
└── README.md</code></pre>
<h3><span id="toc15">Step 6: マクロディレクトリの作成</span></h3>
<pre><code class="language-bash">mkdir src\macros</code></pre>
<h3><span id="toc16">Step 7: 依存関係のインストール</span></h3>
<pre><code class="language-bash">npm install --legacy-peer-deps</code></pre>
<p><strong>エラーが出た場合：</strong></p>
<pre><code class="language-bash"># package.jsonの依存関係を最新版に更新してから
npm install --legacy-peer-deps</code></pre>
<h3><span id="toc17">Step 8: コンパイル確認</span></h3>
<pre><code class="language-bash">npm run compile

# 成功すれば out/ ディレクトリに .js ファイルが生成される</code></pre>
<h2><span id="toc18">プロジェクト構成の詳細</span></h2>
<h3><span id="toc19">package.json（拡張機能の設定）</span></h3>
<p><strong>重要なセクション：</strong></p>
<pre><code class="language-json">{
  "name": "my-macros",
  "displayName": "My Macros",
  "version": "0.0.1",
  "engines": {
    "vscode": "^1.85.0"
  },
  "contributes": {
    "commands": [
      {
        "command": "myMacros.openPath",
        "title": "Open Path Under Cursor",
        "category": "My Macros"
      }
    ],
    "keybindings": [
      {
        "command": "myMacros.openPath",
        "key": "ctrl+shift+f12",
        "when": "editorTextFocus"
      }
    ]
  }
}</code></pre>
<p><strong>カスタマイズポイント：</strong></p>
<ul>
<li><code>commands</code>: コマンドパレットに表示されるコマンド</li>
<li><code>keybindings</code>: デフォルトのキーバインド</li>
<li><code>when</code>: キーが有効になる条件</li>
</ul>
<h3><span id="toc20">extension.ts（メインファイル）</span></h3>
<pre><code class="language-typescript">import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    console.log('my-macros is now active');

    // コマンド登録
    const disposable = vscode.commands.registerCommand(
        'myMacros.openPath',
        () => {
            vscode.window.showInformationMessage('Hello World!');
        }
    );

    context.subscriptions.push(disposable);
}

export function deactivate() {}</code></pre>
<h3><span id="toc21">マクロファイルの配置</span></h3>
<pre><code class="language-plaintext">src\macros\
├── openPath.ts           # パスオープン
├── copyToEmptyLine.ts    # 空行までコピー
├── textCalc.ts           # テキスト電卓
└── getFileDate.ts        # ファイル更新日時取得</code></pre>
<p>各マクロは独立したファイルで管理し、extension.tsでインポートします。</p>
<h2><span id="toc22">開発からインストールまでの流れ</span></h2>
<h3><span id="toc23">開発フロー全体像</span></h3>
<pre><code class="language-plaintext">1. コード編集
   ↓
2. コンパイル
   ↓
3. デバッグ実行
   ↓
4. テスト
   ↓
5. 問題なし？
   ↓ Yes
6. Gitコミット
   ↓
7. パッケージ化
   ↓
8. インストール
   ↓
9. 本番環境で使用</code></pre>
<h3><span id="toc24">デバッグ実行（開発中のテスト）</span></h3>
<p><strong>手順：</strong></p>
<ol>
<li>VSCodeで<code>C:\my-local\my-macros</code>を開く</li>
<li><code>F5</code>キーを押す</li>
<li>新しいVSCodeウィンドウが開く（Extension Development Host）</li>
<li>この新しいウィンドウでマクロをテスト</li>
</ol>
<p><strong>テスト例：</strong></p>
<pre><code class="language-plaintext">1. 新しいウィンドウでtest.txtを作成
2. C:\Windows\System32 と入力
3. その行でCtrl+Shift+F12を押す
4. Explorerが開けば成功！</code></pre>
<p><strong>デバッグのメリット：</strong></p>
<ul>
<li>パッケージ化不要</li>
<li>即座にテスト可能</li>
<li>console.logでログ確認</li>
</ul>
<p><strong>ログの確認方法：</strong></p>
<pre><code class="language-plaintext">新しいウィンドウで：
Ctrl+Shift+U → "Extension Host" を選択</code></pre>
<h3><span id="toc25">パッケージ化（本番用）</span></h3>
<pre><code class="language-bash"># 元のVSCode（開発用）のターミナルで
vsce package

# my-macros-0.0.1.vsix が生成される</code></pre>
<p><strong>警告が出る場合：</strong></p>
<pre><code class="language-plaintext">WARNING: repository field is missing
WARNING: LICENSE not found

→ 個人利用なら無視してOK（yで続行）</code></pre>
<h3><span id="toc26">インストール</span></h3>
<pre><code class="language-bash">code --install-extension my-macros-0.0.1.vsix</code></pre>
<p><strong>VSCode再起動後、全環境で使用可能に！</strong></p>
<h2><span id="toc27">効果的な開発ワークフロー</span></h2>
<h3><span id="toc28">watch モードの活用</span></h3>
<pre><code class="language-bash"># ファイル変更を自動検知してコンパイル
npm run watch</code></pre>
<p>別ターミナルで実行しておけば、ファイル保存時に自動コンパイルされます。</p>
<h3><span id="toc29">バージョン管理</span></h3>
<pre><code class="language-bash"># パッチバージョンアップ（0.0.1 → 0.0.2）
npm version patch

# マイナーバージョンアップ（0.0.2 → 0.1.0）
npm version minor

# メジャーバージョンアップ（0.1.0 → 1.0.0）
npm version major</code></pre>
<h3><span id="toc30">日常的な更新フロー</span></h3>
<pre><code class="language-bash"># 1. マクロファイル編集
code src/macros/openPath.ts

# 2. 自動コンパイル（watchモード使用時）

# 3. F5でデバッグ実行してテスト

# 4. 問題なければコミット
git add .
git commit -m "Fix: improve openPath functionality"

# 5. バージョンアップ
npm version patch

# 6. 再パッケージ化
vsce package

# 7. 再インストール
code --install-extension my-macros-0.0.2.vsix

# 8. VSCode再起動</code></pre>
<h2><span id="toc31">キーバインド設計</span></h2>
<h3><span id="toc32">設定場所の使い分け</span></h3>
<p><strong>package.json（拡張機能内）：</strong></p>
<ul>
<li>変更頻度が低いデフォルト設定</li>
<li>他のユーザーと共有する設定</li>
</ul>
<p><strong>keybindings.json（ユーザー設定）：</strong></p>
<ul>
<li>個人の好みに合わせたカスタマイズ</li>
<li>いつでも変更可能</li>
</ul>
<h3><span id="toc33">おすすめキー設定</span></h3>
<p><strong>競合しにくいキー：</strong></p>
<pre><code class="language-json">{
  "keybindings": [
    // Ctrl+Alt+[文字]（比較的空いている）
    {
      "command": "myMacros.copyToEmptyLine",
      "key": "ctrl+alt+e"
    },
    
    // 2段階キー（VSCodeスタイル）
    {
      "command": "myMacros.openPath",
      "key": "ctrl+k ctrl+o"
    },
    
    // Ctrl+Shift+Alt+[文字]（ほぼ確実に空いている）
    {
      "command": "myMacros.textCalc",
      "key": "ctrl+shift+alt+c"
    }
  ]
}</code></pre>
<h3><span id="toc34">when句による条件分岐</span></h3>
<pre><code class="language-json">{
  "key": "ctrl+t",
  "command": "myMacros.textCalc",
  "when": "editorTextFocus && !terminalFocus"
}</code></pre>
<p><strong>主なwhen条件：</strong></p>
<ul>
<li><code>editorTextFocus</code>: エディタにフォーカス</li>
<li><code>terminalFocus</code>: ターミナルにフォーカス</li>
<li><code>!condition</code>: 条件の否定</li>
<li><code>condition1 && condition2</code>: AND条件</li>
</ul>
<h2><span id="toc35">メリット・デメリット</span></h2>
<h3><span id="toc36">メリット</span></h3>
<p><strong>1. 型安全な開発</strong></p>
<ul>
<li>コンパイル時エラー検出</li>
<li>IntelliSenseによる補完</li>
<li>リファクタリングが安全</li>
</ul>
<p><strong>2. VSCode公式推奨</strong></p>
<ul>
<li>サンプルコードがすべてTypeScript</li>
<li>ドキュメントが充実</li>
<li>コミュニティが活発</li>
</ul>
<p><strong>3. 保守性の高さ</strong></p>
<ul>
<li>コードの可読性向上</li>
<li>バグの早期発見</li>
<li>チーム開発に適している</li>
</ul>
<p><strong>4. Git管理</strong></p>
<ul>
<li>バージョン履歴を残せる</li>
<li>複数PC間で同期</li>
<li>チーム共有が容易</li>
</ul>
<h3><span id="toc37">デメリット</span></h3>
<p><strong>1. 初期セットアップに時間</strong></p>
<ul>
<li>環境構築が必要</li>
<li>学習コストがある（ただしJava経験者なら低い）</li>
</ul>
<p><strong>2. コンパイルが必要</strong></p>
<ul>
<li><code>npm run compile</code>を実行する必要</li>
<li>ただしwatchモードで自動化可能</li>
</ul>
<p><strong>3. パッケージ化の手間</strong></p>
<ul>
<li>更新のたびに再パッケージ化</li>
<li>ただし開発中はF5デバッグで回避可能</li>
</ul>
<h3><span id="toc38">総評</span></h3>
<p><strong>デメリットを上回るメリットがある</strong></p>
<p>特に、エディタの補完機能だけで開発効率が10倍変わります。</p>
<h2><span id="toc39">トラブルシューティング</span></h2>
<h3><span id="toc40">コンパイルエラー</span></h3>
<p><strong>エラー: Cannot find module 'vscode'</strong></p>
<pre><code class="language-bash">npm install</code></pre>
<p><strong>型エラー: 'lines' has type 'any[]'</strong></p>
<pre><code class="language-typescript">// 修正前
const lines = [];

// 修正後
const lines: string[] = [];</code></pre>
<h3><span id="toc41">インストールエラー</span></h3>
<p><strong>npm install失敗</strong></p>
<pre><code class="language-bash"># 依存関係の競合を回避
npm install --legacy-peer-deps

# または package-lock.json を削除して再実行
rm package-lock.json
npm install --legacy-peer-deps</code></pre>
<h3><span id="toc42">拡張機能が認識されない</span></h3>
<pre><code class="language-bash"># 拡張機能一覧を確認
code --list-extensions

# 再インストール
code --uninstall-extension your-name.my-macros
code --install-extension my-macros-0.0.1.vsix

# VSCode完全再起動</code></pre>
<h3><span id="toc43">デバッグ方法</span></h3>
<p><strong>console.logの確認：</strong></p>
<pre><code class="language-typescript">export function openPath() {
    console.log('openPath called');
    // ...
}</code></pre>
<pre><code class="language-plaintext">F5で新しいウィンドウを開く
↓
Ctrl+Shift+U → "Extension Host"
↓
ログが表示される</code></pre>
<h2><span id="toc44">効果的な使い方</span></h2>
<h3><span id="toc45">Keyboard Macro Betaとの併用</span></h3>
<p><strong>使い分け：</strong></p>
<ul>
<li>簡単な操作記録 → Keyboard Macro Beta</li>
<li>複雑なロジック → TypeScript実装</li>
</ul>
<p><strong>共存設定：</strong></p>
<pre><code class="language-json">// keybindings.json
[
    // Keyboard Macro Beta
    {
        "key": "ctrl+alt+r",
        "command": "kb-macro.startRecording"
    },
    
    // TypeScript実装マクロ
    {
        "key": "ctrl+shift+f12",
        "command": "myMacros.openPath"
    }
]</code></pre>
<h3><span id="toc46">VSCode標準機能との組み合わせ</span></h3>
<p><strong>例：マルチカーソル + カスタムマクロ</strong></p>
<pre><code class="language-plaintext">1. Alt+クリックで複数カーソル配置
2. カスタムマクロ実行
3. → すべての位置で一括処理</code></pre>
<h3><span id="toc47">ワークスペース固有の設定</span></h3>
<pre><code class="language-json">// .vscode/settings.json（プロジェクトごと）
{
    "myMacros.customPath": "${workspaceFolder}/custom"
}</code></pre>
<h2><span id="toc48">次のステップ</span></h2>
<h3><span id="toc49">より高度な機能の実装</span></h3>
<ul>
<li>ファイル監視</li>
<li>外部APIとの連携</li>
<li>UIコンポーネントの表示</li>
<li>設定画面の追加</li>
</ul>
<h3><span id="toc50">チーム展開</span></h3>
<pre><code class="language-bash"># リポジトリ公開
git remote add origin https://github.com/YOUR_USERNAME/my-macros.git
git push -u origin main

# チームメンバーは
git clone https://github.com/YOUR_USERNAME/my-macros.git
cd my-macros
npm install --legacy-peer-deps
vsce package
code --install-extension my-macros-0.0.1.vsix</code></pre>
<h2><span id="toc51">まとめ</span></h2>
<p>VSCode TypeScriptマクロ開発環境の構築は、初期投資こそ必要ですが、一度セットアップすれば：</p>
<p><strong>得られるメリット：</strong></p>
<ul>
<li>型安全な開発環境</li>
<li>完璧なIntelliSense</li>
<li>Git管理による履歴保持</li>
<li>柔軟なカスタマイズ</li>
</ul>
<p><strong>こんな人におすすめ：</strong></p>
<ul>
<li>VSCodeのヘビーユーザー</li>
<li>効率化マニア</li>
<li>TypeScript/JavaScript経験者</li>
<li>Git管理したい</li>
</ul>
<p>次は実際に作成したマクロの実装例を紹介します！</p>
<p><!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");msmaflink({"n":"プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発","b":"オライリージャパン","t":"","d":"https:\/\/m.media-amazon.com","c_p":"","p":["\/images\/I\/51vjj+osAgL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/4873119049","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/4873119049","a_id":1384942,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0TypeScript%20%E2%80%95%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8BJavaScript%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA\/","a_id":1384917,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0TypeScript%20%E2%80%95%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8BJavaScript%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA","a_id":1466950,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"vFiVC","s":"s"});</script></p>
<div id="msmaflink-vFiVC">リンク</div>
<p><!-- MoshimoAffiliateEasyLink END --></p>
<h2><span id="toc52">関連記事</span></h2>
<p><!-- - [サクラエディタからVSCodeへマクロ移行記](#) ← 移行の経緯と環境構築 --></p>
<p>移行の経緯と環境構築</p>

<a rel="noopener" href="https://caymezon.com/sakura-to-vscode-macro-migration/" title="サクラエディタからVSCodeへマクロ移行！快適開発環境の構築記録" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://caymezon.com/wp-content/uploads/2026/01/sakura-to-vscode-macro-migration-featured-404add-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://caymezon.com/wp-content/uploads/2026/01/sakura-to-vscode-macro-migration-featured-404add-160x90.jpg 160w, https://caymezon.com/wp-content/uploads/2026/01/sakura-to-vscode-macro-migration-featured-404add-120x68.jpg 120w, https://caymezon.com/wp-content/uploads/2026/01/sakura-to-vscode-macro-migration-featured-404add-320x180.jpg 320w, https://caymezon.com/wp-content/uploads/2026/01/sakura-to-vscode-macro-migration-featured-404add-376x212.jpg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">サクラエディタからVSCodeへマクロ移行！快適開発環境の構築記録</div><div class="blogcard-snippet internal-blogcard-snippet">はじめに長年愛用してきたサクラエディタのマクロ機能。便利なJavaScript/VBSマクロを多数作成して日常業務で活用してきましたが、最近のAWS開発やブログ執筆でVSCodeを使う機会が増えてきました。「VSCodeでもサクラエディタの...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://caymezon.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">caymezon.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.01.25</div></div></div></div></a>
<p><!-- - [VSCode標準ショートカットキー完全ガイド](#) ← 生産性を上げるキー操作 --></p>
<p>生産性を上げるキー操作</p>

<a rel="noopener" href="https://caymezon.com/vscode-keyboard-shortcuts-complete-guide/" title="VSCode標準ショートカットキー完全ガイド【日本語解説・おすすめ付き】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://caymezon.com/wp-content/uploads/2026/01/vscode-keyboard-shortcuts-complete-guide-featured-707e1c-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://caymezon.com/wp-content/uploads/2026/01/vscode-keyboard-shortcuts-complete-guide-featured-707e1c-160x90.jpg 160w, https://caymezon.com/wp-content/uploads/2026/01/vscode-keyboard-shortcuts-complete-guide-featured-707e1c-120x68.jpg 120w, https://caymezon.com/wp-content/uploads/2026/01/vscode-keyboard-shortcuts-complete-guide-featured-707e1c-320x180.jpg 320w, https://caymezon.com/wp-content/uploads/2026/01/vscode-keyboard-shortcuts-complete-guide-featured-707e1c-376x212.jpg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">VSCode標準ショートカットキー完全ガイド【日本語解説・おすすめ付き】</div><div class="blogcard-snippet internal-blogcard-snippet">はじめにVSCodeを使いこなすには、ショートカットキーの習得が必須です。しかし、VSCodeの標準ショートカット一覧は英語表記で分かりにくいのが難点。本記事では、VSCodeの標準ショートカットキーをカテゴリ別に日本語化し、特に重要なもの...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://caymezon.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">caymezon.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.01.25</div></div></div></div></a>
<p><!-- - [VSCodeカスタムマクロ実装サンプル集](#) ← 実際のマクロコード紹介（予定） --></p>
<hr>
<p><strong>タグ:</strong> #VSCode #TypeScript #拡張機能開発 #マクロ #開発環境 #生産性向上</p><p>The post <a href="https://caymezon.com/vscode-typescript-macro-development-guide/">VSCode TypeScriptマクロ開発環境の完全ガイド【セットアップから運用まで】</a> first appeared on <a href="https://caymezon.com">CayTech Lab</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://caymezon.com/vscode-typescript-macro-development-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
