<?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>VBA・マクロ &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/vba%E3%83%BB%E3%83%9E%E3%82%AF%E3%83%AD/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 02 Jul 2026 08:59:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>VBA・マクロ &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Excelマクロが実行できない・ブロックされる5つの原因と対処法</title>
		<link>https://mashukabu.com/excel-macro-blocked-cannot-run/</link>
					<comments>https://mashukabu.com/excel-macro-blocked-cannot-run/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 20 Jun 2026 10:37:01 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[Excel トラブル解決]]></category>
		<category><![CDATA[Excel マクロ 実行できない]]></category>
		<category><![CDATA[MOTW]]></category>
		<category><![CDATA[VBA実行時エラー]]></category>
		<category><![CDATA[マクロ ブロック 解除]]></category>
		<category><![CDATA[マクロの実行がブロックされました]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=8055</guid>

					<description><![CDATA[Excelでマクロが実行できない・ブロックされる原因を症状別に解説します。「マクロの実行がブロックされました」という赤バーのブロック解除手順から、解除したのに動かない5大原因（拡張子・保護ビュー・グループポリシーなど）、VBA実行時エラー番号別の初動チェック、Web版で動かない理由までまとめて網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">同僚から「この集計ファイル、開いてボタン押すだけだから」と渡された<code>.xlsm</code>ファイル。いざ開いてみたら、画面の上に赤い帯（バー）が出て「セキュリティリスク ファイルのソースが信頼されていないため、Microsoft はマクロの実行をブロックしました」と表示された——。</p>



<p class="wp-block-paragraph">ボタンを押しても何も起きない、いつもの「コンテンツの有効化」ボタンすら見当たらない。締め切りは目前なのに、いきなり手が止まって焦りますよね。</p>



<p class="wp-block-paragraph">しかも厄介なのは、原因が1つではないことです。症状は、ざっと分けても次の4つ。</p>



<ul class="wp-block-list"><li>赤バーが出るケース</li><li>黄バーが出るケース</li><li>そもそもブロックを解除したはずなのに動かないケース</li><li>Web版だから構造的に動かないケース</li></ul>



<p class="wp-block-paragraph">どれに当たるかで正しい対処法はまったく違い、間違った対処をしても時間を浪費するだけ。</p>



<p class="wp-block-paragraph">この記事では、まず冒頭のチェックリストであなたの症状を4パターンに切り分け、それぞれの正しい解決法へ最短でご案内します。特に競合記事がほとんど触れていない「解除したのに動かない5大原因」と「実行時エラー番号別の初動チェック」を、診断表で具体的に解説します。</p>



<p class="wp-block-paragraph">読み終わるころには、もらった<code>.xlsm</code>を自力で動かせるようになっているはず。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: デスクトップ版 Excel（Windows）/ Microsoft 365・Office 2021・2019・2016。ファイルのプロパティによるブロック解除（MOTW）はバージョン 2203（2022年4月）以降の挙動です。Excel Web版（Office on the web）ではマクロ機能自体が提供されていません。</p></blockquote>



<p class="wp-block-paragraph">なお、本記事では「マクロ」と「VBA」をほぼ同じ意味で使っています。厳密な違いが気になる方は<a href="https://mashukabu.com/excel-vba-macro-difference/">Excel VBAとマクロの違い</a>を先に読むと用語の整理がつきますが、今回は「動かないマクロを動かす」ことだけに集中して進めます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</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・B】バーが出る → ブロック解除とコンテンツの有効化</a><ol><li><a href="#toc3" tabindex="0">【パターンA】赤バー「マクロの実行がブロックされました」→ プロパティでブロック解除</a></li><li><a href="#toc4" tabindex="0">【パターンB】黄バー「コンテンツの有効化」→ 有効化と信頼できる場所</a></li></ol></li><li><a href="#toc5" tabindex="0">【パターンC】ブロック解除済みなのに動かない｜5大原因を診断</a><ol><li><a href="#toc6" tabindex="0">原因①　拡張子が.xlsx のままになっている</a></li><li><a href="#toc7" tabindex="0">原因②　保護ビューが残っている（「編集を有効にする」未実施）</a></li><li><a href="#toc8" tabindex="0">原因③　トラストセンターの設定が「通知なしでVBAマクロを無効にする」</a></li><li><a href="#toc9" tabindex="0">原因④　グループポリシーでロックされている（設定がグレーアウト）</a></li><li><a href="#toc10" tabindex="0">原因⑤　セキュリティソフトが干渉している</a></li></ol></li><li><a href="#toc11" tabindex="0">【パターンD】Excel Web版ではマクロは動かない</a><ol><li><a href="#toc12" tabindex="0">Web版でマクロが実行できない構造的な理由</a></li><li><a href="#toc13" tabindex="0">デスクトップ版に切り替えてマクロを実行する手順</a></li><li><a href="#toc14" tabindex="0">Web版の代替手段：Office Scripts について</a></li></ol></li><li><a href="#toc15" tabindex="0">実行時エラーが出る場合の初動チェック（エラー番号早見表）</a></li><li><a href="#toc16" tabindex="0">まとめ｜症状別フローの振り返りと次のステップ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず確認｜あなたの症状はどれ？（症状別チェックリスト）</span></h2>



<p class="wp-block-paragraph">マクロが動かない原因を切り分けるには、まず「画面に何が表示されているか」を見るのが一番の近道です。次の4パターンのうち、あなたの状況に一番近いものを選んで、該当セクションへ進んでください。</p>



<p class="wp-block-paragraph">原因ごとに対処がまったく違うので、ここで自分のケースを正しく判断することが、遠回りしないための最重要ステップになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>画面の見え方</th><th>進むセクション</th></tr></thead><tbody><tr><td><strong>（A）赤バー</strong></td><td>赤い帯で「マクロの実行がブロックされました」。「コンテンツの有効化」ボタンは<strong>ない</strong>（「詳細情報」のみ）</td><td>パターンA</td></tr><tr><td><strong>（B）黄バー</strong></td><td>黄色い帯で「セキュリティの警告 マクロが無効にされました」。「<strong>コンテンツの有効化</strong>」ボタンが<strong>ある</strong></td><td>パターンB</td></tr><tr><td><strong>（C）解除したのに動かない</strong></td><td>バーは消えた／解除済みのはずなのに、ボタンを押しても反応がない・エラーが出る</td><td>パターンC</td></tr><tr><td><strong>（D）Web版で動かない</strong></td><td>ブラウザ上のExcel（Excel for the web）で開いている。そもそもマクロのメニューが見当たらない</td><td>パターンD</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは「コンテンツの有効化」ボタンの有無です。<strong>ボタンが見当たらない赤バーは2022年以降の新しいブロック（MOTW）</strong>で、ボタンがある黄バーは従来からある通知です。</p>



<p class="wp-block-paragraph">この2つは仕組みが違うため、解除方法も別物になります。混同して「黄バーの手順」を赤バーに試しても解決しないので注意してください。</p>



<p class="wp-block-paragraph">「バーは出ていないのに動かない」「ボタンを押すとエラー番号が表示される」という方は、パターンCと最後の「実行時エラー」セクションが本命です。</p>



<h2 class="wp-block-heading"><span id="toc2">【パターンA・B】バーが出る → ブロック解除とコンテンツの有効化</span></h2>



<p class="wp-block-paragraph">まず確認したいのが、ファイルを開いたときに出る警告バーの色です。<strong>赤バー</strong>ならインターネット由来のファイルに対するハードブロック、<strong>黄バー</strong>なら従来からあるマクロ無効の通知で、対処が変わります。</p>



<p class="wp-block-paragraph">ここはシリーズ第1ステップにあたる部分。要点に絞って、詳しい設定は既存記事へご案内しましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">【パターンA】赤バー「マクロの実行がブロックされました」→ プロパティでブロック解除</span></h3>



<p class="wp-block-paragraph">赤バーは、インターネット経由で入手したファイル（メール添付・ダウンロード・チャット共有など）に付く「MOTW（Mark of the Web）」という印が原因です。Excelはこの印が付いたファイルのマクロを、2022年以降は問答無用でブロックします。</p>



<p class="wp-block-paragraph">だから「コンテンツの有効化」ボタンが表示されないというわけです。</p>



<p class="wp-block-paragraph">解除の基本手順は次のとおりです。<strong>ファイルを一度閉じてから</strong>操作してください。</p>



<ol class="wp-block-list"><li>エクスプローラーで該当の<code>.xlsm</code>ファイルを右クリックし、「プロパティ」を開く</li><li>「全般」タブの一番下にある「<strong>セキュリティ: このファイルは他のコンピューターから取得したものです。</strong>」の右、「<strong>許可する</strong>」（または「ブロックの解除」）にチェックを入れる</li><li>「OK」を押す</li><li>ファイルを開き直す</li></ol>



<p class="wp-block-paragraph">これで赤バーが消えてマクロが使えるようになります。「許可する」のチェックボックスは、MOTWが付いているファイルにしか表示されません。<strong>チェックボックスが見当たらない場合は、すでに印が付いていない＝別の原因</strong>なので、パターンCへ進んでください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この第1ステップの詳細な手順</strong>（PowerShellでの一括解除、信頼できる場所の設定、OneDrive/SharePoint経由のファイルの扱いなど）は、シリーズ第1ステップ記事<a href="https://mashukabu.com/excel-macro-disabled-trust-settings/">Excelマクロが有効にならない原因と信頼設定の直し方【状況別】</a>で丁寧に解説しています。本記事はその先の「解除したのに動かない」を主軸にするため、ここでは要点のみにとどめます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc4">【パターンB】黄バー「コンテンツの有効化」→ 有効化と信頼できる場所</span></h3>



<p class="wp-block-paragraph">黄色いバーで「セキュリティの警告 マクロが無効にされました」と出て、右側に「<strong>コンテンツの有効化</strong>」ボタンがある場合は、赤バーより対処はシンプルです。</p>



<p class="wp-block-paragraph">これはMOTWによるハードブロックではなく、トラストセンターのデフォルト設定「通知を含むVBAマクロを無効にする」による、従来からある安全確認の通知です。</p>



<p class="wp-block-paragraph">信頼できる送り主からのファイルであることを確認したうえで、次のように操作します。</p>



<ol class="wp-block-list"><li>黄色いバーの「<strong>コンテンツの有効化</strong>」ボタンをクリックする</li><li>これでマクロが有効になり、その場で実行できる</li></ol>



<p class="wp-block-paragraph">ただし、同じファイルを開くたびに毎回このボタンを押すのは面倒ですよね。社内で繰り返し使う信頼済みのファイルなら、決まったフォルダを「<strong>信頼できる場所（Trusted Locations）</strong>」に登録しておくと、以後は確認なしでマクロが有効になります。</p>



<p class="wp-block-paragraph">信頼できる場所に保存されたファイルは、MOTWの赤バーすら回避できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>信頼できる場所の登録手順や、トラストセンターでの細かい設定は、こちらも<a href="https://mashukabu.com/excel-macro-disabled-trust-settings/">Excelマクロが有効にならない原因と信頼設定の直し方【状況別】</a>に詳しくまとめてあります。「毎回確認が出るのを止めたい」方はあわせてご覧ください。</p></blockquote>



<p class="wp-block-paragraph">なお、信頼できる場所はとても強力な設定です。出所のわからないファイルをそのフォルダに放り込むと、危険なマクロも無確認で実行されてしまうので、本当に信頼できるファイルだけに使ってください。</p>



<h2 class="wp-block-heading"><span id="toc5">【パターンC】ブロック解除済みなのに動かない｜5大原因を診断</span></h2>



<p class="wp-block-paragraph">ここからが本記事の核心です。「プロパティで許可した」「コンテンツの有効化も押した」——それなのにボタンを押しても反応がない、マクロのメニューが空っぽ、というケースは意外と多いもの。</p>



<p class="wp-block-paragraph">競合記事の多くは「ブロック解除」で話を終えてしまいますが、実際の現場で詰まるのはこの「解除後」だったりします。</p>



<p class="wp-block-paragraph">原因は大きく5つに分けられます。まずは下の診断フロー表で、自分の症状に近い行を探してください。そのあと各原因の対処を順に解説します。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状（こう見える）</th><th>疑われる原因</th><th>まずやること</th></tr></thead><tbody><tr><td>マクロのメニューが空・「Visual Basic」に何もない</td><td>①拡張子が<code>.xlsx</code>になっている</td><td>拡張子を確認。<code>.xlsm</code>で保存し直してもらう</td></tr><tr><td>ファイル上部に黄色い帯「保護ビュー」が残っている</td><td>②保護ビューが解除されていない</td><td>「編集を有効にする」をクリック</td></tr><tr><td>バーも警告も一切出ず、ただ何も起きない</td><td>③トラストセンターが「通知なしで無効」</td><td>トラストセンターのマクロ設定を確認</td></tr><tr><td>トラストセンターの設定項目がグレーアウトして変更できない</td><td>④グループポリシーでロックされている</td><td>IT管理者へ問い合わせ</td></tr><tr><td>設定は正しいのにファイルを開く瞬間に固まる・落ちる</td><td>⑤セキュリティソフトの干渉（ごくまれ）</td><td>一時的に検査対象から除外して切り分け</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">原因①　拡張子が.xlsx のままになっている</span></h3>



<p class="wp-block-paragraph">最も見落とされがちなのがこれです。マクロを含むファイルは「<strong>Excelマクロ有能ブック（.xlsm）</strong>」でなければなりません。通常の「Excelブック（.xlsx）」は、セキュリティ上の理由からVBAマクロをそもそも保存できない形式です。</p>



<p class="wp-block-paragraph">問題は、<code>.xlsm</code>ファイルを開いて編集したあと「上書き保存」ではなく「名前を付けて保存」で<code>.xlsx</code>を選んでしまうケースです。</p>



<p class="wp-block-paragraph">このとき<strong>マクロは警告とともに削除され、消えてしまいます</strong>。そのファイルを後から開いても、当然マクロは1つも残っていません。</p>



<p class="wp-block-paragraph">対処は、ファイル名の末尾が<code>.xlsm</code>になっているかを確認することです。</p>



<p class="wp-block-paragraph"><code>.xlsx</code>になっていたら、そのファイルのマクロは消失済みなので、<strong>元のファイルを送ってくれた人に<code>.xlsm</code>形式で再送してもらう</strong>しかありません。自分で拡張子だけ<code>.xlsm</code>に書き換えてもマクロは復活しないので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc7">原因②　保護ビューが残っている（「編集を有効にする」未実施）</span></h3>



<p class="wp-block-paragraph">「保護ビュー」は、MOTWのマクロブロックとは別のセキュリティ機能です。インターネット由来のファイルを開くと、画面上部に黄色い帯で「保護ビュー 注意 &#8211; インターネットから入手したファイルは～」と表示され、ファイルが閲覧専用状態になります。</p>



<p class="wp-block-paragraph">この状態ではマクロの実行どころか、セルの編集もできません。帯の中にある「<strong>編集を有効にする</strong>」ボタンをクリックすると保護ビューが解除され、通常の編集ができるようになります。</p>



<p class="wp-block-paragraph">赤バーのブロックと保護ビューの両方が出ている場合は、<strong>保護ビューの解除（編集を有効にする）→ プロパティでのブロック解除</strong>の順で対応するとスムーズです。保護ビューを抜けないと、そもそもマクロの設定にたどり着けないことがあります。</p>



<h3 class="wp-block-heading"><span id="toc8">原因③　トラストセンターの設定が「通知なしでVBAマクロを無効にする」</span></h3>



<p class="wp-block-paragraph">バーも警告も一切出ないのにマクロが動かない場合、トラストセンターのマクロ設定が最も制限的な状態になっている可能性があります。設定は次の場所で確認しましょう。</p>



<p class="wp-block-paragraph">「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」</p>



<p class="wp-block-paragraph">ここには4つの選択肢があります。それぞれの意味を正確に把握しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>設定名</th><th>動作</th></tr></thead><tbody><tr><td>通知なしでVBAマクロを無効にする</td><td>最も制限的。<strong>警告すら出さずにブロック</strong>（これが原因のことが多い）</td></tr><tr><td>通知を含むVBAマクロを無効にする</td><td>デフォルト。ブロックするが黄バーで有効化できる</td></tr><tr><td>デジタル署名されたVBAマクロを除き、すべてのVBAマクロを無効にする</td><td>署名済みのマクロのみ実行可</td></tr><tr><td>VBAマクロを有効にする（推奨しません）</td><td>すべてのマクロを実行。リスクが高く非推奨</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「通知なしでVBAマクロを無効にする」になっていると、警告が一切出ないまま黙ってブロックされるため、「設定したはずなのに動かない」という状況になります。通常は上から2番目の「<strong>通知を含むVBAマクロを無効にする</strong>」に戻しておくのが、安全性と使い勝手のバランスが取れた標準設定です。</p>



<p class="wp-block-paragraph">一番下の「有効にする」は危険なマクロも無確認で動いてしまうので、選ばないでください。</p>



<h3 class="wp-block-heading"><span id="toc9">原因④　グループポリシーでロックされている（設定がグレーアウト）</span></h3>



<p class="wp-block-paragraph">会社支給のパソコンでよくあるのがこれです。トラストセンターのマクロ設定を開いても、<strong>項目がグレーアウトしていて選び直せない</strong>——この場合は、IT部門がグループポリシー（またはMicrosoft Intune・クラウドポリシー）でマクロの動作を会社全体に強制設定しています。</p>



<p class="wp-block-paragraph">組織として「インターネットからのOfficeファイルでのマクロ実行をブロック」などを一律で適用しているため、個人の設定変更は受け付けません。これは故障ではなく、セキュリティポリシーによる正常な制御です。</p>



<p class="wp-block-paragraph">対処は、自分でどうにかしようとせず、<strong>IT管理者・情報システム部門に「業務でこのマクロ付きファイルを使う必要がある」と相談する</strong>ことです。正規の手続きとして、特定フォルダを信頼できる場所に追加してもらう、署名付きマクロとして配布してもらう、といった対応が考えられます。</p>



<p class="wp-block-paragraph">設定を無理にいじろうとすると、別のトラブルを招くこともあるので避けましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">原因⑤　セキュリティソフトが干渉している</span></h3>



<p class="wp-block-paragraph">ごくまれですが、サードパーティ製のセキュリティソフトがマクロ付きファイルの動作を監視し、結果としてマクロの実行を妨げたり、ファイルを開く瞬間にExcelが固まる・落ちることがあります。</p>



<p class="wp-block-paragraph">①〜④をすべて確認しても原因が特定できないときの「最後に疑う候補」として覚えておいてください。切り分けの方法としては、セキュリティソフトの検査対象から一時的にそのファイル（または保存フォルダ）を除外し、症状が消えるかを確認します。</p>



<p class="wp-block-paragraph">ただし、これはあくまで原因の切り分けが目的です。除外したまま放置するとセキュリティ上のリスクになりますし、設定変更は会社のルールに反する場合もあります。</p>



<p class="wp-block-paragraph">会社支給端末では、<strong>勝手にセキュリティソフトの設定を変えず、IT部門に状況を伝える</strong>のが安全でしょう。</p>



<h2 class="wp-block-heading"><span id="toc11">【パターンD】Excel Web版ではマクロは動かない</span></h2>



<p class="wp-block-paragraph">「ブラウザ上のExcelで開いているのにマクロが動かない」——これは設定の問題ではなく、<strong>そもそも構造的に動かない</strong>ケースです。ここを知らないと、解決しない設定をいくら触っても時間の無駄になります。</p>



<h3 class="wp-block-heading"><span id="toc12">Web版でマクロが実行できない構造的な理由</span></h3>



<p class="wp-block-paragraph">VBAマクロは、もともとWindowsのデスクトップアプリを前提に設計された仕組みです。パソコン上の他のソフトと連携（COM/OLE）して動く構造のため、ブラウザの中で動くExcel for the webにはその土台がありません。</p>



<p class="wp-block-paragraph">Microsoftの公式なプラットフォーム対応表でも、VBAマクロの対応状況は次のように明記されています。</p>



<figure class="wp-block-table"><table><thead><tr><th>プラットフォーム</th><th>VBAマクロ</th><th>Office Scripts</th></tr></thead><tbody><tr><td>Excel for Windows（デスクトップ）</td><td>対応</td><td>対応</td></tr><tr><td>Excel for Mac</td><td>対応</td><td>対応</td></tr><tr><td><strong>Excel for the web（Web版）</strong></td><td><strong>非対応</strong></td><td>対応</td></tr><tr><td>Excel for iOS</td><td>非対応</td><td>非対応</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つまりWeb版では、マクロを「作る」ことも「実行する」ことも「編集する」こともできません。Web版でマクロ付きファイルを開いても、マクロは実行されないまま、ただ表が開くだけです。</p>



<h3 class="wp-block-heading"><span id="toc13">デスクトップ版に切り替えてマクロを実行する手順</span></h3>



<p class="wp-block-paragraph">もらった<code>.xlsm</code>のマクロを動かしたいなら、Windowsのデスクトップ版Excelで開く必要があります。Web版から切り替える流れは次のとおりです。</p>



<ol class="wp-block-list"><li>Web版でファイルを開いている状態で、リボンの「編集」付近にある「<strong>デスクトップアプリで開く</strong>」を選ぶ（OneDrive/SharePoint上のファイルの場合）</li><li>デスクトップ版Excelが起動し、同じファイルが開く</li><li>デスクトップ版で、本記事のパターンA〜Cに沿ってブロック解除・設定確認を行う</li></ol>



<p class="wp-block-paragraph">ファイルが手元にダウンロードできるなら、いったんパソコンに保存してから、エクスプローラーでダブルクリックしてデスクトップ版Excelで開く方法でも構いません。いずれにせよ、<strong>マクロを動かす舞台はWindowsのデスクトップ版</strong>と覚えておけば迷いません。</p>



<h3 class="wp-block-heading"><span id="toc14">Web版の代替手段：Office Scripts について</span></h3>



<p class="wp-block-paragraph">「どうしてもWeb版だけで自動化したい」という場合は、VBAの代わりに「<strong>Office Scripts</strong>」という仕組みが用意されています。これはTypeScriptで記述する自動化機能で、Web版でも動き、Power Automateのフローからも呼び出せます。</p>



<p class="wp-block-paragraph">ただしOffice Scriptsの利用には企業ライセンスや教育ライセンスが必要で、VBAとは別物の知識が要る点には注意してください。</p>



<p class="wp-block-paragraph">受け取った<code>.xlsm</code>をそのまま動かす今回の目的からは外れるので、ここでは「Web版にはOffice Scriptsという別系統の選択肢がある」とだけ押さえておけば十分です。</p>



<h2 class="wp-block-heading"><span id="toc15">実行時エラーが出る場合の初動チェック（エラー番号早見表）</span></h2>



<p class="wp-block-paragraph">ブロックの解除も設定もクリアして、いざマクロを実行したら、今度は「<strong>実行時エラー &#8216;1004&#8217;</strong>」のような番号付きのメッセージが出て止まる——これはマクロの「環境」ではなく「中身（VBAコード側）」で何かが起きているサインです。</p>



<p class="wp-block-paragraph">受け取った側で完璧に直すのは難しい場合もありますが、番号を見れば「何を確認すればいいか」の当たりはつきます。よく出る4つの番号について、まず確認すべきポイントを早見表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー番号</th><th>意味</th><th>まず確認すること</th></tr></thead><tbody><tr><td><strong>1004</strong></td><td>アプリケーション定義またはオブジェクト定義のエラー（汎用）</td><td>参照しているシート名・セル範囲が実在するか／シートが保護されていないか</td></tr><tr><td><strong>424</strong></td><td>オブジェクトが必要です</td><td>変数のスペルミス／<code>Set</code>ステートメントの付け忘れ</td></tr><tr><td><strong>91</strong></td><td>オブジェクト変数またはWithブロック変数が設定されていません</td><td>オブジェクト変数に<code>Set</code>で値を代入しているか／変数が空（Nothing）になっていないか</td></tr><tr><td><strong>13</strong></td><td>型が一致しません</td><td>セルの値が数値か文字列か（特にセルの値をVBAに取り込む際の型の食い違い）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ひとつ補足しておくと、<strong>エラー1004は「汎用エラー」</strong>で、いろいろな状況で出る番号です。原因は、たとえば次のようにさまざま。</p>



<ul class="wp-block-list"><li>シート名が違う</li><li>セル範囲が存在しない</li><li>ワークシートが保護されている</li><li>ファイルパスが間違っている</li></ul>



<p class="wp-block-paragraph">まずはマクロが触ろうとしているシート名やセル範囲が、いま開いているファイルに実在するかを確認するのが近道です。</p>



<p class="wp-block-paragraph">もらったファイルが「特定のシート名があることを前提に作られている」のに、自分の環境ではそのシートをリネームしてしまった、というのは典型的なつまずきポイントです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>エラー番号別のより詳しい原因と修正方法、デバッグの進め方は<a href="https://mashukabu.com/vba-error-guide/">VBAエラー解決ガイド</a>で体系的に解説しています。コードに踏み込んで直したい方は、こちらをあわせてご覧ください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">まとめ｜症状別フローの振り返りと次のステップ</span></h2>



<p class="wp-block-paragraph">マクロが動かない原因は1つではありませんが、「画面に何が出ているか」で切り分ければ、対処は一本道です。最後に、症状から解決策への対応を1行ずつ振り返っておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>あなたの症状</th><th>やること</th></tr></thead><tbody><tr><td>赤バー「マクロの実行がブロックされました」</td><td>プロパティで「許可する」にチェック → 開き直す</td></tr><tr><td>黄バー「コンテンツの有効化」</td><td>ボタンを押す／繰り返すなら信頼できる場所に登録</td></tr><tr><td>解除したのに動かない</td><td>拡張子<code>.xlsm</code>・保護ビュー・トラストセンター設定を順に確認</td></tr><tr><td>設定がグレーアウト</td><td>IT管理者に相談（グループポリシー管理下）</td></tr><tr><td>Web版で動かない</td><td>デスクトップ版Excelで開く（Web版はマクロ非対応）</td></tr><tr><td>実行時エラー番号が出る</td><td>番号別早見表でシート名・変数・型を確認</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">まず確認すべきは「コンテンツの有効化ボタンの有無」、次に「拡張子が<code>.xlsm</code>か」、それでもダメならトラストセンターの設定、という順番で見ていけば、ほとんどのケースは自力で解決できます。</p>



<p class="wp-block-paragraph">無事にマクロが動いたなら、次は「自分でも簡単なマクロを直せる・作れる」ようになると、こうしたトラブルにぐっと強くなります。受け取ったファイルを動かすだけでなく、自分で業務を自動化できるようになれば、仕事の効率は大きく変わるはず。</p>



<p class="wp-block-paragraph">VBAをこれから学んでみたい方は、まず<a href="https://mashukabu.com/excel-vba-before-study-explanation/">Excel VBAを学ぶ前に押さえたい基礎知識</a>から始めると、全体像がつかめてつまずきにくくなります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-macro-blocked-cannot-run/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelマクロが有効にならない原因と信頼設定の直し方【状況別】</title>
		<link>https://mashukabu.com/excel-macro-disabled-trust-settings/</link>
					<comments>https://mashukabu.com/excel-macro-disabled-trust-settings/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 01:46:27 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[Excel マクロ]]></category>
		<category><![CDATA[トラストセンター]]></category>
		<category><![CDATA[マクロセキュリティ]]></category>
		<category><![CDATA[マクロ有効化]]></category>
		<category><![CDATA[信頼できる場所]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7896</guid>

					<description><![CDATA[Excelのマクロが有効にならない・毎回警告が出る原因を状況別に整理。信頼できる場所の登録・ファイルのブロック解除・トラストセンター設定の3パターンを比較し、あなたのケースに合った恒久解決策を解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「いつも使っているマクロ入りExcelファイルが、急に動かなくなった」——そんな状態になると、業務が止まってしまって焦りますよね。「警告が出るだけで有効化ボタンが押せない」というケースも含め、大丈夫です。</p>



<p class="wp-block-paragraph">Excelのマクロが有効にならない原因はほぼ決まっていて、設定で恒久的に解決できます。</p>



<p class="wp-block-paragraph">この記事では、「毎回警告が出る」「ボタン自体が出ない」など状況別に原因を切り分けます。その場しのぎではなく、今後ずっと困らないための信頼設定の手順までを解説します。マクロとVBAの基礎を確認したい方は、先に<a href="https://mashukabu.com/excel-vba-macro-difference/">Excel VBAとマクロの違い｜関係性と活用例を初心者向けに解説</a>に目を通しておくと、本記事の用語がさらに理解しやすくなります。</p>




  <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><ol><li><a href="#toc2" tabindex="0">Mark of the Web（MOTW）とは何か</a></li><li><a href="#toc3" tabindex="0">ファイルの入手経路別・原因マップ</a></li><li><a href="#toc4" tabindex="0">「コンテンツの有効化」が出ない vs 毎回警告が出る の違い</a></li></ol></li><li><a href="#toc5" tabindex="0">【原因1】毎回セキュリティ警告が出る → コンテンツの有効化</a><ol><li><a href="#toc6" tabindex="0">セキュリティ警告バナーの見方</a></li><li><a href="#toc7" tabindex="0">「コンテンツの有効化」ボタンで一時的に解除する手順</a></li><li><a href="#toc8" tabindex="0">保護ビューと二段階解除が必要なケース</a></li></ol></li><li><a href="#toc9" tabindex="0">【原因2】有効化ボタンが出ない → ファイルのブロック解除</a><ol><li><a href="#toc10" tabindex="0">バージョン2203以降の新しいブロック動作</a></li><li><a href="#toc11" tabindex="0">ファイルのプロパティから「ブロックの解除」する手順</a></li></ol></li><li><a href="#toc12" tabindex="0">【恒久対策】信頼できる場所を登録してマクロを毎回自動有効化</a><ol><li><a href="#toc13" tabindex="0">トラストセンターの信頼できる場所とは</a></li><li><a href="#toc14" tabindex="0">信頼できる場所を追加する手順</a></li></ol></li><li><a href="#toc15" tabindex="0">信頼設定の3パターン比較 ── どれを選べばいい？</a><ol><li><a href="#toc16" tabindex="0">コンテンツ有効化 vs ブロック解除 vs 信頼できる場所（比較表）</a></li></ol></li><li><a href="#toc17" tabindex="0">それでも動かないときの追加チェック5項目</a></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">マクロが無効になる原因はどれ？状況別チェックリスト</span></h2>



<p class="wp-block-paragraph">まずは「自分のケースがどれに当てはまるか」を特定しましょう。原因が違えば、打つべき手も変わります。</p>



<p class="wp-block-paragraph">次のチェックリストで、当てはまる症状を確認してください。</p>



<ul class="wp-block-list"><li>ファイルを開くと黄色いバー（セキュリティ警告）が出て、「コンテンツの有効化」ボタンが表示される</li><li>赤いバーで「マクロの実行がブロックされました」と出て、有効化ボタンが<strong>ない</strong></li><li>ファイル → オプション → トラストセンターを開いてもマクロ設定がグレーアウトして変更できない</li><li>「編集を有効にする」を押した後、もう一度別の警告が出る</li></ul>



<p class="wp-block-paragraph">それぞれ原因と対処法がまったく異なります。順に解説していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Mark of the Web（MOTW）とは何か</span></h3>



<p class="wp-block-paragraph">最近のExcelでマクロが急にブロックされるようになった大きな理由が、<strong>Mark of the Web（MOTW）</strong> と呼ばれる仕組みです。</p>



<p class="wp-block-paragraph">MOTWは、インターネットや制限付きゾーンから入手したファイルにWindowsが自動で付ける「出所タグ」です。NTFSの代替データストリーム（Zone.Identifier）として記録されます。</p>



<p class="wp-block-paragraph">メール添付・ブラウザでダウンロード・チャットからの保存——こうした経路で受け取ったファイルには、ほぼ例外なくMOTWが付きます。ExcelはこのタグをもとにFileを「インターネット由来」と判断し、マクロを自動でブロックします。</p>



<h3 class="wp-block-heading"><span id="toc3">ファイルの入手経路別・原因マップ</span></h3>



<p class="wp-block-paragraph">ファイルをどこから入手したかで、MOTWの付き方が変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>入手経路</th><th>MOTW</th><th>マクロの扱い</th></tr></thead><tbody><tr><td>メール添付</td><td>付く</td><td>ブロック対象</td></tr><tr><td>Webブラウザでダウンロード</td><td>付く</td><td>ブロック対象</td></tr><tr><td>OneDriveの「ブラウザで開く→ダウンロード」</td><td>付く</td><td>ブロック対象</td></tr><tr><td>OneDrive同期クライアント経由</td><td>付かない</td><td>通常実行可</td></tr><tr><td>社内ファイルサーバー（信頼済みサイト圏内）</td><td>付かない場合あり</td><td>通常実行可</td></tr><tr><td>USBメモリ（FAT32）</td><td>付かない</td><td>通常実行可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「同じ社内ファイルでも、メールで届いた版はブロックされ、共有フォルダ版は動く」という現象はこれが原因です。</p>



<h3 class="wp-block-heading"><span id="toc4">「コンテンツの有効化」が出ない vs 毎回警告が出る の違い</span></h3>



<p class="wp-block-paragraph">ここが多くの方を混乱させるポイントです。</p>



<ul class="wp-block-list"><li><strong>黄色いバー＋「コンテンツの有効化」ボタンが出る</strong>：2022年以前の従来挙動。ボタンを押せばその場で有効化できます</li><li><strong>赤いバー＋有効化ボタンが出ない</strong>：バージョン2203以降の新しいブロック動作。ボタンでは解除できません。<strong>ファイルのプロパティから「ブロックの解除」を行う必要があります</strong></li></ul>



<p class="wp-block-paragraph">「以前は押せたボタンが消えた」と感じる方は、Excelが新仕様に更新されたサインです。慌てずに次の章の手順に進みましょう。</p>



<h2 class="wp-block-heading"><span id="toc5">【原因1】毎回セキュリティ警告が出る → コンテンツの有効化</span></h2>



<p class="wp-block-paragraph">まずは従来型の黄色いバーが出るケースから見ていきます。</p>



<h3 class="wp-block-heading"><span id="toc6">セキュリティ警告バナーの見方</span></h3>



<p class="wp-block-paragraph">ファイルを開いた直後、リボンの下に次のようなバーが表示されます。</p>



<pre class="wp-block-code"><code>セキュリティの警告 マクロが無効にされました。  [コンテンツの有効化]</code></pre>



<p class="wp-block-paragraph">この状態は「マクロは含まれているが、安全のために一時停止中」を意味します。出所がはっきりしているファイルであれば、ボタンを押して有効化できます。</p>



<h3 class="wp-block-heading"><span id="toc7">「コンテンツの有効化」ボタンで一時的に解除する手順</span></h3>



<p class="wp-block-paragraph">手順はとてもシンプルです。</p>



<ol class="wp-block-list"><li>ファイルを開く</li><li>リボン下の黄色いバーにある <strong>「コンテンツの有効化」</strong> をクリック</li><li>バーが消え、マクロが動作するようになる</li></ol>



<p class="wp-block-paragraph">一度この操作をしたファイルは「信頼済みドキュメント」として登録されます。次回以降は警告が出なくなります。</p>



<p class="wp-block-paragraph">ただし、ファイルの保存場所を移動したり、別の人に渡すと再び警告が出ます。「同じファイルを毎回有効化している」という方は、後述の「信頼できる場所」を設定すると一発で解決します。</p>



<h3 class="wp-block-heading"><span id="toc8">保護ビューと二段階解除が必要なケース</span></h3>



<p class="wp-block-paragraph">「編集を有効にする」というボタンが先に出るケースもあります。これは<strong>保護ビュー</strong>（Protected View）と呼ばれる別レイヤーのセキュリティです。</p>



<p class="wp-block-paragraph">この場合は、2段階の操作が必要です。</p>



<ol class="wp-block-list"><li>「<strong>編集を有効にする</strong>」をクリック（保護ビューを解除）</li><li>その後表示される「<strong>コンテンツの有効化</strong>」をクリック（マクロを有効化）</li></ol>



<p class="wp-block-paragraph">「1回押したのにまだ動かない」と感じたら、バナーが2種類連続で出ていないか確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc9">【原因2】有効化ボタンが出ない → ファイルのブロック解除</span></h2>



<p class="wp-block-paragraph">「赤いバーで有効化ボタンがない」場合は、こちらの手順です。</p>



<h3 class="wp-block-heading"><span id="toc10">バージョン2203以降の新しいブロック動作</span></h3>



<p class="wp-block-paragraph">Microsoft 365のExcelは、バージョン2203（2022年4月以降）から仕様が大きく変わりました。インターネットゾーンから入手したファイル（MOTWが付いたファイル）に対しては、「コンテンツの有効化」ボタンが表示されなくなりました。</p>



<p class="wp-block-paragraph">出典：<a href="https://learn.microsoft.com/ja-jp/deployoffice/security/internet-macros-blocked">Microsoft Learn「インターネットから入手したマクロのブロック」</a></p>



<p class="wp-block-paragraph">代わりに「マクロの実行がブロックされました」という赤いバーが出ます。これはバグではなく、正しい仕様です。</p>



<h3 class="wp-block-heading"><span id="toc11">ファイルのプロパティから「ブロックの解除」する手順</span></h3>



<p class="wp-block-paragraph">新仕様の場合は、Excel上ではなく<strong>Windowsのファイルプロパティ</strong>から解除します。</p>



<p class="wp-block-paragraph">※ 操作画面はデスクトップ版Excel（Windows）のエクスプローラーでご確認ください。</p>



<ol class="wp-block-list"><li>Excelを一度閉じる</li><li>エクスプローラーで対象の <code>.xlsm</code> ファイルを右クリック</li><li><strong>「プロパティ」</strong> をクリック</li><li>「全般」タブの一番下にある <strong>「セキュリティ」</strong> 欄を確認</li><li><strong>「ブロックの解除」</strong> チェックボックスにチェックを入れる</li><li><strong>「OK」</strong> をクリックして閉じる</li><li>もう一度Excelで開く</li></ol>



<p class="wp-block-paragraph">これでMOTWが削除され、通常通りマクロが動作します。</p>



<p class="wp-block-paragraph">なお、ネットワーク共有フォルダ上のファイルでは、「ブロックの解除」チェックボックスが表示されないことがあります。その場合は一度ローカル（デスクトップ等）にコピーしてから操作するか、後述の「信頼できる場所」を活用してください。</p>



<h2 class="wp-block-heading"><span id="toc12">【恒久対策】信頼できる場所を登録してマクロを毎回自動有効化</span></h2>



<p class="wp-block-paragraph">「毎回手作業でブロック解除するのは面倒」「決まったフォルダ内のファイルは全部許可したい」——そんな方には<strong>信頼できる場所</strong>の登録が最も効率的です。</p>



<h3 class="wp-block-heading"><span id="toc13">トラストセンターの信頼できる場所とは</span></h3>



<p class="wp-block-paragraph">トラストセンター（Trust Center）はOfficeのセキュリティ設定をまとめた管理画面です。<strong>信頼できる場所</strong>に登録したフォルダは、「ここに置かれたファイルは確認済みで安全」という扱いになります。</p>



<p class="wp-block-paragraph">信頼できる場所に保存されたファイルは、MOTWのチェックを無視してマクロが有効な状態で開きます。警告バーすら出ません。</p>



<h3 class="wp-block-heading"><span id="toc14">信頼できる場所を追加する手順</span></h3>



<p class="wp-block-paragraph">たとえば <code>C:WorkMacros</code> フォルダを信頼できる場所として登録する手順です。</p>



<p class="wp-block-paragraph">※ トラストセンターの設定画面はデスクトップ版Excel（Windows）でご確認ください。</p>



<ol class="wp-block-list"><li>Excelを開いて <strong>「ファイル」</strong> → <strong>「オプション」</strong> をクリック</li><li>左メニューの <strong>「トラストセンター」</strong> を選択</li><li><strong>「トラストセンターの設定」</strong> ボタンをクリック</li><li>左メニューの <strong>「信頼できる場所」</strong> を選択</li><li>右下の <strong>「新しい場所の追加」</strong> をクリック</li><li><strong>「参照」</strong> からフォルダを指定（例: <code>C:WorkMacros</code>）</li><li>サブフォルダも含めたい場合は <strong>「この場所のサブフォルダーも信頼する」</strong> にチェック</li><li><strong>「OK」</strong> を3回押して閉じる</li></ol>



<p class="wp-block-paragraph">これ以降、このフォルダ内に置いたマクロ入りファイルは、警告なしで自動的にマクロが有効になります。</p>



<p class="wp-block-paragraph">ただし、ネットワーク上のパス（<code>\servershare</code> のような共有フォルダ）を信頼できる場所に設定することはMicrosoftが<strong>推奨していません</strong>。社内サーバーの場合は、IT管理者と相談の上で「信頼済みサイトゾーンへの追加」で対応するのが安全です。</p>



<h2 class="wp-block-heading"><span id="toc15">信頼設定の3パターン比較 ── どれを選べばいい？</span></h2>



<p class="wp-block-paragraph">ここまで紹介した3つの方法を、用途・手間・リスクの観点で比較します。</p>



<h3 class="wp-block-heading"><span id="toc16">コンテンツ有効化 vs ブロック解除 vs 信頼できる場所（比較表）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>適した状況</th><th>手間</th><th>効果範囲</th><th>リスク</th></tr></thead><tbody><tr><td>コンテンツの有効化（ボタン）</td><td>一度きりのファイル・差出人を確認した添付</td><td>低（クリック1回）</td><td>そのファイルだけ</td><td>低（個別承認）</td></tr><tr><td>ファイルのブロック解除（プロパティ）</td><td>新仕様で警告ボタンが出ないファイル</td><td>中（ファイルごと）</td><td>そのファイルだけ</td><td>中（解除後はMOTWなし）</td></tr><tr><td>信頼できる場所（フォルダ登録）</td><td>毎日使う業務マクロを置く専用フォルダ</td><td>初回のみ高</td><td>フォルダ内すべて</td><td>高（中身の管理が必要）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">選び方の目安は次の通りです。</p>



<ul class="wp-block-list"><li>月に数回しか開かないファイル → <strong>コンテンツの有効化</strong></li><li>新仕様で有効化ボタンが消えている → <strong>ブロック解除</strong></li><li>毎日使う業務マクロが複数ある → <strong>信頼できる場所</strong></li></ul>



<p class="wp-block-paragraph">「専用フォルダを1つ作って信頼できる場所に登録し、業務用マクロはすべてそこに集約する」というのが、最もストレスの少ない運用です。</p>



<h2 class="wp-block-heading"><span id="toc17">それでも動かないときの追加チェック5項目</span></h2>



<p class="wp-block-paragraph">ここまでの設定をしてもマクロが動かない場合、次の5つを順番に確認してください。</p>



<ol class="wp-block-list"><li><strong>拡張子が <code>.xlsx</code> になっていないか確認</strong>：<code>.xlsx</code> はマクロを保存できない形式です。<code>.xlsm</code>（マクロ有効ブック）に保存し直す必要があります</li><li><strong>マクロ設定が「すべて無効（通知なし）」になっていないか確認</strong>：トラストセンター → マクロの設定で、推奨は「警告して、VBAマクロを無効にする」です（出典：<a href="https://support.microsoft.com/ja-jp/office/マクロの設定を変更する-a97c09d2-c082-46b8-b19f-e8621e8fe373">Microsoft サポート「マクロの設定を変更する」</a>）</li><li><strong>トラストセンターがグレーアウトしている</strong>：会社の<strong>グループポリシー</strong>（GPO）で一括管理されています。個人では変更できないため、IT管理者に申請してください</li><li><strong>セキュリティソフトの干渉</strong>：一部のウイルス対策ソフトはVBAの動作を独自にブロックします。一時的に除外設定にして動作が変わるか確認します</li><li><strong>保護ビューが残っている</strong>：「編集を有効にする」を押し忘れていないか、もう一度バナーを確認してください</li></ol>



<p class="wp-block-paragraph">特に「トラストセンターがグレーアウト」は、個人では解決できない代表例です。早めにIT管理者に相談したほうが時間の節約になります。</p>



<h2 class="wp-block-heading"><span id="toc18">まとめ</span></h2>



<p class="wp-block-paragraph">Excelのマクロが有効にならない問題は、原因さえ特定できればほぼ確実に解決できます。本記事の要点を振り返ります。</p>



<ul class="wp-block-list"><li>黄色いバー＋ボタンあり → <strong>「コンテンツの有効化」をクリック</strong></li><li>赤いバー＋ボタンなし → <strong>ファイルのプロパティから「ブロックの解除」</strong></li><li>毎日使うファイル → <strong>信頼できる場所にフォルダを登録</strong></li><li>グレーアウトで設定変更不可 → <strong>IT管理者に相談</strong></li><li>動かないときは拡張子・マクロ設定・保護ビュー・セキュリティソフトを順に確認</li></ul>



<p class="wp-block-paragraph">マクロが動くようになったら、次は実際にマクロを書いたり改造したりするステップに進んでみましょう。VBAの学習をどこから始めればよいか分からないという方は、<a href="https://mashukabu.com/excel-vba-before-study-explanation/">Excel VBAを学ぶ前に押さえたい基礎知識｜開発タブの表示からVBE起動まで</a>で開発環境の準備から丁寧に解説しています。</p>



<p class="wp-block-paragraph">落ち着いて1ステップずつ確認すれば、明日からの業務はもうマクロ警告で止まりません。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-macro-disabled-trust-settings/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBA正規表現（RegExp）の使い方｜実務パターン5選コード付き</title>
		<link>https://mashukabu.com/excel-vba-regexp-howto/</link>
					<comments>https://mashukabu.com/excel-vba-regexp-howto/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:50:54 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[中級VBA]]></category>
		<category><![CDATA[文字列処理]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7851</guid>

					<description><![CDATA[VBAで正規表現（RegExp）を使う方法を基本から実務パターンまで解説。参照設定の手順、Test/Replace/Executeの使い方、メールアドレス検証・電話番号統一など実務5パターンのコードを掲載。早見表付きでそのままコピペ可能。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「半角・全角が混ざった文字列を整えたい」「メールアドレスが正しい形式か一発でチェックしたい」。VBAでデータ処理をしていると、こんな場面によく出くわしますよね。</p>



<p class="wp-block-paragraph">TRIMやSUBSTITUTE、LEFTやMIDなどの文字列関数を組み合わせれば、簡単な処理ならなんとかなります。でも「数字3桁＋ハイフン＋数字4桁」のような「形のパターン」を扱おうとすると、とたんに数式が長く複雑になります。書いた本人すら後で読めなくなる、なんてこともありますよね。</p>



<p class="wp-block-paragraph">そんな複雑な文字列処理を一気にシンプルにしてくれるのが、VBAの正規表現（RegExp）です。「特定の形に一致するか」「一致した部分だけ取り出す」「一致した部分だけ置き換える」といった処理を、短いパターン文字列で表現できます。</p>



<p class="wp-block-paragraph">この記事では、VBAで正規表現を使う方法を、準備から実務パターンまで丁寧に解説します。コピペで使えるサンプルコード5本と、ブックマークしておくと便利なメタ文字の早見表も用意しました。正規表現に触れたことがない方でも、読み終わるころには自分のマクロに組み込めるようになりますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAで正規表現が必要になる場面</a><ol><li><a href="#toc2" tabindex="0">TRIM・SUBSTITUTEでは対処できないケースとは</a></li><li><a href="#toc3" tabindex="0">Like演算子との使い分け基準</a></li></ol></li><li><a href="#toc4" tabindex="0">RegExpオブジェクトの準備</a><ol><li><a href="#toc5" tabindex="0">参照設定あり（早期バインディング）の手順</a></li><li><a href="#toc6" tabindex="0">CreateObjectあり（遅延バインディング）の手順</a></li><li><a href="#toc7" tabindex="0">早期 vs 遅延 どちらを選ぶか比較表</a></li></ol></li><li><a href="#toc8" tabindex="0">RegExpの3つのプロパティと3つのメソッド</a><ol><li><a href="#toc9" tabindex="0">Pattern・IgnoreCase・Globalの設定方法</a></li><li><a href="#toc10" tabindex="0">Test：パターン一致チェック</a></li><li><a href="#toc11" tabindex="0">Replace：パターン一致部分の置換</a></li><li><a href="#toc12" tabindex="0">Execute：マッチ結果のコレクション取得</a></li></ol></li><li><a href="#toc13" tabindex="0">よく使うメタ文字と正規表現パターン早見表</a><ol><li><a href="#toc14" tabindex="0">メタ文字一覧（記号・意味・使用例）</a></li><li><a href="#toc15" tabindex="0">実務でよく使うパターン集8選</a></li></ol></li><li><a href="#toc16" tabindex="0">実務パターン5選：コピペで使えるサンプルコード</a><ol><li><a href="#toc17" tabindex="0">①メールアドレス形式チェック</a></li><li><a href="#toc18" tabindex="0">②電話番号ハイフン統一</a></li><li><a href="#toc19" tabindex="0">③郵便番号抽出</a></li><li><a href="#toc20" tabindex="0">④全角英数字→半角変換</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">On Error GoToでRegExpエラーを捕捉する</a></li><li><a href="#toc24" tabindex="0">パターン検証関数を作っておくと安全</a></li></ol></li><li><a href="#toc25" tabindex="0">ワークシート関数との使い分け</a><ol><li><a href="#toc26" tabindex="0">REGEXTEST・REGEXREPLACE・REGEXEXTRACTとの違い</a></li><li><a href="#toc27" tabindex="0">VBA RegExpを選ぶべきシーン</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAで正規表現が必要になる場面</span></h2>



<p class="wp-block-paragraph">正規表現は「文字列の形（パターン）」を表現するための記法です。たとえば「数字が3桁続く」「先頭が0で始まる電話番号」といったルールを、短い記号の並びで書き表せます。</p>



<p class="wp-block-paragraph">VBAでは標準の文字列関数も豊富に用意されています。ではなぜ、わざわざ正規表現を使うのでしょうか。それは、文字列関数だけでは「形のパターン」を扱うのが苦手だからです。</p>



<p class="wp-block-paragraph">ここでは、正規表現が本当に役立つ場面を整理します。逆に言えば、ここで挙げる悩みがなければ無理に使う必要はありません。適材適所で使い分けるのがコツですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">TRIM・SUBSTITUTEでは対処できないケースとは</span></h3>



<p class="wp-block-paragraph">VBAの文字列関数は「決まった位置」や「決まった文字」を扱うのは得意です。たとえば前後の空白を消すならTRIM、特定の文字を別の文字に置き換えるならSUBSTITUTE（Replace関数）で十分です。</p>



<p class="wp-block-paragraph">ところが、次のようなケースになると一気に難しくなります。</p>



<ul class="wp-block-list"><li>「数字が3桁、ハイフン、数字が4桁」のように、文字の「並び方のルール」で判定したい</li><li>セルの中に紛れ込んだ郵便番号や電話番号だけを取り出したい</li><li>全角の英数字が混ざっているかどうかを検出したい</li><li>複数種類の記号をまとめて一括削除したい</li></ul>



<p class="wp-block-paragraph">たとえば「文字列がメールアドレスの形式か」を文字列関数だけで判定するとします。アットマークの有無、ドットの位置、前後の文字種など、無数のIf文が必要になります。考えただけで気が遠くなりますよね。</p>



<p class="wp-block-paragraph">これを正規表現なら、たった1行のパターンで表現できます。「形のルールで判定・抽出・置換したい」という場面こそ、正規表現の出番なのです。</p>



<h3 class="wp-block-heading"><span id="toc3">Like演算子との使い分け基準</span></h3>



<p class="wp-block-paragraph">VBAには正規表現に似た機能として、Like演算子があります。<code>If 文字列 Like "A*"</code> のように、ワイルドカードを使った曖昧な比較ができる演算子です。</p>



<p class="wp-block-paragraph">Like演算子は手軽で、参照設定も不要です。「Aで始まる」「数字を1文字含む」程度の単純な判定なら、Like演算子のほうが速く書けます。</p>



<p class="wp-block-paragraph">ただしLike演算子には限界があります。「数字が3桁以上連続する」のような繰り返し回数の指定や、一致した部分の抽出はできません。複雑なパターンになるほど、正規表現に軍配が上がります。</p>



<p class="wp-block-paragraph">ざっくりした使い分けの目安は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>用途</th><th>おすすめ</th></tr></thead><tbody><tr><td>「〜で始まる」「〜を含む」程度の単純判定</td><td>Like演算子</td></tr><tr><td>繰り返し回数や文字種の細かい指定</td><td>正規表現（RegExp）</td></tr><tr><td>一致した部分を取り出したい（抽出）</td><td>正規表現（RegExp）</td></tr><tr><td>パターンに一致する全箇所を置換したい</td><td>正規表現（RegExp）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Like演算子の詳しい使い方は、<a href="https://mashukabu.com/excel-vba-like-wildcard/">VBA Like演算子の使い方｜ワイルドカード5種で文字列を曖昧比較する方法</a>で解説しています。「Likeでは難しいな」と感じたら正規表現へ、と覚えておくとスムーズですよ。</p>



<h2 class="wp-block-heading"><span id="toc4">RegExpオブジェクトの準備</span></h2>



<p class="wp-block-paragraph">VBAの正規表現は、RegExpという専用のオブジェクトを使って動かします。このRegExpは、もともとVBScript用に作られた正規表現エンジンです。Windowsに標準で組み込まれているCOMコンポーネントなので、Excel VBAから呼び出して使えます。</p>



<p class="wp-block-paragraph">RegExpオブジェクトを用意する方法は2つあります。1つは「参照設定」をする方法（早期バインディング）、もう1つはCreateObject関数で呼び出す方法（遅延バインディング）です。</p>



<p class="wp-block-paragraph">どちらでも同じことができますが、メリットが異なります。まずは両方の手順を見て、最後に使い分けの基準を整理しますね。なお、この記事のコードはExcel 2019・2021・Microsoft 365のいずれでも動作します。</p>



<h3 class="wp-block-heading"><span id="toc5">参照設定あり（早期バインディング）の手順</span></h3>



<p class="wp-block-paragraph">参照設定をしておくと、コードの記述が少しスッキリし、入力補助（IntelliSense）も効くようになります。手順は次のとおりです。</p>



<p class="wp-block-paragraph">まずVBE（Visual Basic Editor）を開きます。ExcelでAlt + F11キーを押すか、開発タブの「Visual Basic」ボタンから開けます。開発タブが表示されていない場合は、ファイル → オプション → リボンのユーザー設定で「開発」にチェックを入れてください。</p>



<p class="wp-block-paragraph">VBEが開いたら、メニューの「ツール」→「参照設定」を選びます。一覧から「Microsoft VBScript Regular Expressions 5.5」を探してチェックを入れ、OKを押します。これで準備完了です。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/excel-vba-regexp-howto/01_screenshot_vbe-reference-setting.png/">_images/excel-vba-regexp-howto/01_screenshot_vbe-reference-setting.png</a></p>



<p class="wp-block-paragraph">参照設定をした場合、RegExpオブジェクトは次のように宣言します。</p>



<pre class="wp-block-code"><code>Sub RegExp早期バインディング例()
    Dim re As New RegExp '参照設定でRegExp型が使えるようになる
    re.Pattern = &quot;d{3}&quot;  'パターン: 数字が3桁連続
    re.Global = True       '一致する全箇所を対象にする

    MsgBox re.Test(&quot;商品コード123&quot;)  '「123」を含むのでTrueが返る
End Sub</code></pre>



<p class="wp-block-paragraph"><code>Dim re As New RegExp</code> のように型名を直接書ける点が、参照設定のメリットです。入力中に候補が出るので、プロパティ名のタイプミスも防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">CreateObjectあり（遅延バインディング）の手順</span></h3>



<p class="wp-block-paragraph">もう1つの方法が、CreateObject関数を使う遅延バインディングです。参照設定が不要なので、マクロを他の人に配布するときに便利です。</p>



<p class="wp-block-paragraph">宣言と作成は次のように書きます。</p>



<pre class="wp-block-code"><code>Sub RegExp遅延バインディング例()
    Dim re As Object '型は汎用のObjectで宣言する
    Set re = CreateObject(&quot;VBScript.RegExp&quot;) 'RegExpを実行時に生成

    re.Pattern = &quot;d{3}&quot; 'パターン: 数字が3桁連続
    re.Global = True      '一致する全箇所を対象にする

    MsgBox re.Test(&quot;商品コード123&quot;)  '「123」を含むのでTrueが返る
End Sub</code></pre>



<p class="wp-block-paragraph">ポイントは2つです。1つ目は、変数を <code>As Object</code> で宣言すること。2つ目は、<code>Set re = CreateObject("VBScript.RegExp")</code> でオブジェクトを生成することです。</p>



<p class="wp-block-paragraph">参照設定をしていない環境でもそのまま動くので、社内の複数のパソコンでマクロを共有する場合はこちらが安心です。「あれ、参照設定し忘れた」というトラブルが起きませんよ。</p>



<h3 class="wp-block-heading"><span id="toc7">早期 vs 遅延 どちらを選ぶか比較表</span></h3>



<p class="wp-block-paragraph">早期バインディングと遅延バインディングは、それぞれ得意な場面が違います。次の比較表で整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>早期バインディング（参照設定）</th><th>遅延バインディング（CreateObject）</th></tr></thead><tbody><tr><td>参照設定</td><td>必要</td><td>不要</td></tr><tr><td>宣言の書き方</td><td><code>Dim re As New RegExp</code></td><td><code>Dim re As Object</code> ＋ CreateObject</td></tr><tr><td>入力補助（IntelliSense）</td><td>効く</td><td>効かない</td></tr><tr><td>実行速度</td><td>速い</td><td>やや遅い</td></tr><tr><td>配布マクロへの向き</td><td>配布先でも参照設定が必要</td><td>環境を選ばず動く</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Microsoftは、可能な限り早期バインディングを使うことを公式に推奨しています。自分専用のマクロや、速度を重視したい処理では早期バインディングが向いています。</p>



<p class="wp-block-paragraph">一方で、配布先の環境がわからない場合や、複数バージョンのExcel間で使い回したい場合は、遅延バインディングが安全です。「自分用は早期、配布用は遅延」と覚えておくと迷いませんよ。</p>



<p class="wp-block-paragraph">なお、この記事のサンプルコードは、どちらの方式でもそのまま動くように書いていきます。</p>



<h2 class="wp-block-heading"><span id="toc8">RegExpの3つのプロパティと3つのメソッド</span></h2>



<p class="wp-block-paragraph">RegExpオブジェクトは、3つのプロパティと3つのメソッドさえ押さえれば使いこなせます。覚えることが少ないのは、うれしいポイントですよね。</p>



<p class="wp-block-paragraph">プロパティは「どう探すか」の設定で、Pattern・Global・IgnoreCaseの3つです。メソッドは「何をするか」の動作で、Test・Replace・Executeの3つです。</p>



<p class="wp-block-paragraph">ここからは、それぞれを順番に見ていきます。この6つを理解すれば、後半の実務パターンもすんなり読めるようになりますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">Pattern・IgnoreCase・Globalの設定方法</span></h3>



<p class="wp-block-paragraph">まずは3つのプロパティです。RegExpオブジェクトを作ったあと、探す前に設定しておきます。</p>



<pre class="wp-block-code"><code>Sub プロパティの設定例()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    re.Pattern = &quot;[a-z]+&quot;  '探したいパターンを指定する（必須）
    re.IgnoreCase = True    '大文字小文字を区別しない（既定はFalse）
    re.Global = True        '一致する全箇所を対象にする（既定はFalse）

    MsgBox re.Test(&quot;Hello&quot;) 'IgnoreCase=TrueなのでTrueが返る
End Sub</code></pre>



<p class="wp-block-paragraph">3つのプロパティの役割をまとめます。</p>



<ul class="wp-block-list"><li><strong>Pattern</strong>：探す正規表現のパターンを文字列で指定します。これがないと始まりません。</li><li><strong>IgnoreCase</strong>：Trueにすると、大文字と小文字を区別せず一致を判定します。既定値はFalseです。</li><li><strong>Global</strong>：Trueにすると、一致する箇所をすべて対象にします。既定値のFalseだと、最初の1件だけが対象です。</li></ul>



<p class="wp-block-paragraph">特に注意したいのがGlobalです。既定はFalseなので、置換や抽出で「全部のはずなのに1件しか処理されない」というときは、たいていGlobalの設定漏れですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">Test：パターン一致チェック</span></h3>



<p class="wp-block-paragraph">Testメソッドは、文字列がパターンに一致する箇所を含むかどうかを判定します。戻り値はTrueまたはFalseのブール値です。</p>



<pre class="wp-block-code"><code>Sub Testメソッドの例()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)
    re.Pattern = &quot;d+&quot; '数字が1文字以上続く

    MsgBox re.Test(&quot;注文番号A100&quot;) 'True（100が一致する）
    MsgBox re.Test(&quot;注文番号なし&quot;)  'False（数字がない）
End Sub</code></pre>



<p class="wp-block-paragraph">「一致するものが含まれていればTrue」という単純な動きです。入力チェックやバリデーションにぴったりですね。</p>



<p class="wp-block-paragraph">文字列全体が完全に一致するかを判定したいときは、パターンの先頭に <code>^</code>、末尾に <code>$</code> を付けます。<code>^</code> は文字列の先頭、<code>$</code> は末尾を表すアンカーです。この使い方は実務パターンのメールアドレス検証で詳しく見ていきます。</p>



<p class="wp-block-paragraph">このTestメソッドは、Microsoft 365のワークシート関数<a href="https://mashukabu.com/excel-function-howto-use-regextest/">REGEXTEST</a>と同じ役割を果たします。数式で完結させたいか、マクロで処理したいかで使い分けるとよいですよ。</p>



<h3 class="wp-block-heading"><span id="toc11">Replace：パターン一致部分の置換</span></h3>



<p class="wp-block-paragraph">Replaceメソッドは、パターンに一致した部分を別の文字列に置き換えて返します。<code>Replace(対象文字列, 置換後の文字列)</code> の形で呼び出します。</p>



<pre class="wp-block-code"><code>Sub Replaceメソッドの例()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)
    re.Pattern = &quot;s+&quot; '空白文字（スペース・タブなど）が1文字以上
    re.Global = True    '全箇所を対象にする

    Dim result As String
    result = re.Replace(&quot;山田　太郎  さん&quot;, &quot;&quot;) '空白をすべて削除
    MsgBox result '「山田太郎さん」が返る
End Sub</code></pre>



<p class="wp-block-paragraph">この例では、半角の空白をまとめて削除しています。<code>s</code> は半角スペースやタブなどの空白文字を表すので、種類を気にせず一括で消せるのが便利です。なお全角スペースの扱いには注意が必要で、これは後述の早見表でくわしく補足します。</p>



<p class="wp-block-paragraph">置換後の文字列に空文字（<code>""</code>）を指定すると、一致部分の「削除」になります。不要な記号の一括削除でよく使うテクニックですよ。なお、一致部分を残したまま前後に文字を足したい場合は、キャプチャグループと後方参照（<code>$1</code> など）を使います。</p>



<p class="wp-block-paragraph">ワークシート関数の<a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">REGEXREPLACE</a>も同じ置換処理を担当します。大量データをループ処理するならVBA、セル単位で完結させるなら関数、という選び方がおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc12">Execute：マッチ結果のコレクション取得</span></h3>



<p class="wp-block-paragraph">Executeメソッドは、一致した箇所の情報をまとめたコレクション（MatchCollection）を返します。「一致したものを取り出したい（抽出したい）」ときに使います。</p>



<pre class="wp-block-code"><code>Sub Executeメソッドの例()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)
    re.Pattern = &quot;d+&quot; '数字が1文字以上続く
    re.Global = True    '全箇所を取り出す

    Dim matches As Object, m As Object
    Set matches = re.Execute(&quot;価格は1200円、送料は500円&quot;)

    Dim msg As String
    For Each m In matches
        msg = msg &amp; m.Value &amp; vbCrLf '一致した文字列を取り出す
    Next m
    MsgBox msg '「1200」と「500」が改行区切りで表示される
End Sub</code></pre>



<p class="wp-block-paragraph">Executeが返すMatchCollectionは、For Eachで1件ずつ取り出せます。<code>matches.Count</code> で一致件数も取得できます。</p>



<p class="wp-block-paragraph">取り出したMatchオブジェクトには、主に3つのプロパティがあります。</p>



<ul class="wp-block-list"><li><strong>Value</strong>：一致した文字列そのもの</li><li><strong>FirstIndex</strong>：一致が始まった位置（0から数える）</li><li><strong>Length</strong>：一致した文字列の長さ</li></ul>



<p class="wp-block-paragraph">抽出処理は、ワークシート関数の<a href="https://mashukabu.com/excel-function-howto-use-regexextract/">REGEXEXTRACT</a>に対応します。複数件をまとめてループ処理したいときは、VBAのExecuteが力を発揮しますよ。</p>



<h2 class="wp-block-heading"><span id="toc13">よく使うメタ文字と正規表現パターン早見表</span></h2>



<p class="wp-block-paragraph">正規表現は、記号（メタ文字）を組み合わせてパターンを作ります。最初は呪文のように見えますが、よく使う記号は限られています。</p>



<p class="wp-block-paragraph">このセクションは早見表としてまとめました。コードを書いていて「あの記号なんだっけ」となったとき、ここに戻ってくれば大丈夫です。ブックマークしておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">メタ文字一覧（記号・意味・使用例）</span></h3>



<p class="wp-block-paragraph">VBScript RegExpの正規表現は、Perl由来のフレーバーです。基本的なメタ文字は他の言語とほぼ共通です。よく使うものを一覧にしました。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>使用例</th></tr></thead><tbody><tr><td><code>^</code></td><td>文字列の先頭</td><td><code>^A</code> → Aで始まる</td></tr><tr><td><code>$</code></td><td>文字列の末尾</td><td><code>円$</code> → 円で終わる</td></tr><tr><td><code>b</code></td><td>単語境界</td><td><code>bcatb</code> → 単語catだけ</td></tr><tr><td><code>B</code></td><td>単語境界以外</td><td><code>Bcat</code> → 単語の途中のcat</td></tr><tr><td><code>.</code></td><td>改行以外の任意1文字</td><td><code>a.c</code> → axcなど</td></tr><tr><td><code>w</code></td><td>半角英数字とアンダースコア（[a-zA-Z_0-9]）</td><td><code>w+</code> → 英数字の連続</td></tr><tr><td><code>W</code></td><td><code>w</code>以外の文字</td><td><code>W</code> → 記号や空白</td></tr><tr><td><code>d</code></td><td>数字（[0-9]）</td><td><code>d{4}</code> → 数字4桁</td></tr><tr><td><code>D</code></td><td>数字以外の文字</td><td><code>D+</code> → 数字以外の連続</td></tr><tr><td><code>s</code></td><td>空白文字（スペース・タブ・改行など）</td><td><code>s+</code> → 空白の連続</td></tr><tr><td><code>S</code></td><td>空白以外の文字</td><td><code>S+</code> → 空白でない連続</td></tr><tr><td><code>[xyz]</code></td><td>x・y・zのいずれか1文字</td><td><code>[abc]</code> → a/b/c</td></tr><tr><td><code>[^xyz]</code></td><td>x・y・z以外の1文字</td><td><code>[^0-9]</code> → 数字以外</td></tr><tr><td><code>*</code></td><td>直前の0回以上の繰り返し</td><td><code>a*</code> → 空文字やaaa</td></tr><tr><td><code>+</code></td><td>直前の1回以上の繰り返し</td><td><code>a+</code> → a、aaa</td></tr><tr><td><code>?</code></td><td>直前の0または1回</td><td><code>colou?r</code> → colorとcolour</td></tr><tr><td><code>{n}</code></td><td>ちょうどn回</td><td><code>d{3}</code> → 数字ちょうど3桁</td></tr><tr><td><code>{n,}</code></td><td>n回以上</td><td><code>d{2,}</code> → 数字2桁以上</td></tr><tr><td><code>{n,m}</code></td><td>n回以上m回以下</td><td><code>d{2,4}</code> → 数字2〜4桁</td></tr><tr><td><code>(abc)</code></td><td>グループ化・キャプチャ</td><td><code>(d{3})-(d{4})</code></td></tr><tr><td>`a</td><td>b`</td><td>aまたはb</td><td>`cat</td><td>dog` → catかdog</td></tr><tr><td><code>1 2</code></td><td>後方参照</td><td>1番目のグループの再利用</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここで1つ大事な注意点があります。<code>w</code> や <code>d</code> は、半角の英数字にしか一致しません。日本語（ひらがな・カタカナ・漢字）や全角の英数字には一致しないのです。</p>



<p class="wp-block-paragraph">日本語を扱いたいときは、文字コードの範囲を直接指定します。たとえばひらがなは <code>[ぁ-ゖ]</code>、カタカナは <code>[ァ-ヺ]</code> のように書きます。全角英数字の扱いは、後半の実務パターンで具体的に解説しますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">実務でよく使うパターン集8選</span></h3>



<p class="wp-block-paragraph">実務でそのまま使えるパターンを8つ厳選しました。Patternプロパティに貼り付けて使えます。コピペ用にどうぞ。</p>



<figure class="wp-block-table"><table><thead><tr><th>用途</th><th>パターン</th></tr></thead><tbody><tr><td>メールアドレス形式（完全一致）</td><td><code>^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$</code></td></tr><tr><td>電話番号（ハイフン区切り）</td><td><code>^0d{1,4}-d{1,4}-d{4}$</code></td></tr><tr><td>郵便番号（3桁-4桁）</td><td><code>d{3}-d{4}</code></td></tr><tr><td>半角数字のみ</td><td><code>^d+$</code></td></tr><tr><td>URL（httpまたはhttps）</td><td><code>https?://[w./%#&?=-]+</code></td></tr><tr><td>全角英数字の検出</td><td><code>[Ａ-Ｚａ-ｚ０-９]+</code></td></tr><tr><td>日付（YYYY/MM/DD形式）</td><td><code>d{4}/d{1,2}/d{1,2}</code></td></tr><tr><td>前後の空白（全角・半角）</td><td>`^[s　]+</td><td>[s　]+$`</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最後の空白パターンにある <code>　</code> は全角スペースです。VBScript RegExpの <code>s</code> は半角スペースやタブを対象とし、全角スペース（U+3000）には一致しません。全角も確実に対象にしたいときは、このように全角スペースを文字クラスへ明示的に含めると安心ですよ。</p>



<p class="wp-block-paragraph">それでは、これらのパターンを使った実務コードを次のセクションで見ていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc16">実務パターン5選：コピペで使えるサンプルコード</span></h2>



<p class="wp-block-paragraph">ここからは、実務でそのまま使える5つのパターンを、完成コードとして紹介します。すべてコピペして動かせるように書いています。</p>



<p class="wp-block-paragraph">5つのパターンは次のとおりです。</p>



<ol class="wp-block-list"><li>メールアドレス形式チェック</li><li>電話番号ハイフン統一</li><li>郵便番号抽出</li><li>全角英数字→半角変換</li><li>不要な記号一括削除</li></ol>



<p class="wp-block-paragraph">それぞれ「どんな場面で使うか」と「コードの中で何が起きているか」を添えています。自分の業務に合わせてパターンを書き換えれば、応用も簡単ですよ。</p>



<p class="wp-block-paragraph">なお、これらのコードを保存するときは、必ずマクロ有効ブック（.xlsm）形式で保存してください。通常の.xlsx形式ではマクロが保存されず、次に開いたときに消えてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc17">①メールアドレス形式チェック</span></h3>



<p class="wp-block-paragraph">入力された文字列が、メールアドレスの形式として正しいかを判定するコードです。フォーム入力や名簿のチェックで活躍します。</p>



<pre class="wp-block-code"><code>Sub メールアドレス形式チェック()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    'メールアドレスの形式パターン（完全一致のため^と$で囲む）
    re.Pattern = &quot;^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$&quot;
    re.IgnoreCase = True '大文字小文字を区別しない

    Dim 対象 As String
    対象 = Range(&quot;A1&quot;).Value 'A1セルの値をチェック対象にする

    If re.Test(対象) Then
        Range(&quot;B1&quot;).Value = &quot;OK&quot; '形式が正しい
    Else
        Range(&quot;B1&quot;).Value = &quot;形式エラー&quot; '形式が不正
    End If
End Sub</code></pre>



<p class="wp-block-paragraph">パターンを前から読み解いてみます。<code>^[A-Za-z0-9._%+-]+</code> はアットマークの前の部分で、英数字や一部記号が1文字以上。<code>@</code> でアットマーク。<code>[A-Za-z0-9.-]+</code> がドメイン名。<code>.[A-Za-z]{2,}$</code> で、最後にドットと2文字以上のアルファベットが来て終わる、という意味です。</p>



<p class="wp-block-paragraph"><code>^</code> と <code>$</code> で囲むことで「文字列全体がこの形か」を判定しています。これがないと、余計な文字が混じっていても一致してしまうので注意してくださいね。</p>



<p class="wp-block-paragraph">なお、このパターンは厳密なRFC準拠ではありません。ただ、実務上のチェックとしては十分な精度がありますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">②電話番号ハイフン統一</span></h3>



<p class="wp-block-paragraph">ハイフンが入っていたり省略されていたりとバラバラな電話番号を、判定するコードです。まずは「正しいハイフン区切りになっているか」をチェックします。</p>



<pre class="wp-block-code"><code>Sub 電話番号フォーマットチェック()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    '0始まり、ハイフン区切りの電話番号パターン
    re.Pattern = &quot;^0d{1,4}-d{1,4}-d{4}$&quot;

    Dim i As Long
    Dim 最終行 As Long
    最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得

    For i = 1 To 最終行
        If re.Test(Cells(i, 1).Value) Then
            Cells(i, 2).Value = &quot;OK&quot; '形式が正しい
        Else
            Cells(i, 2).Value = &quot;要確認&quot; 'ハイフンの位置が不正
        End If
    Next i
End Sub</code></pre>



<p class="wp-block-paragraph">パターンの <code>^0d{1,4}</code> は、0で始まり数字が1〜4桁続く市外局番の部分です。<code>-d{1,4}</code> が市内局番、<code>-d{4}$</code> が末尾の4桁を表します。固定電話と携帯電話の両方をカバーできる、ゆるめのパターンです。</p>



<p class="wp-block-paragraph">ハイフンを除去して数字だけに統一したい場合は、Replaceメソッドを使います。次のように1行で書けますよ。</p>



<pre class="wp-block-code"><code>Sub 電話番号からハイフン削除()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)
    re.Pattern = &quot;-&quot; 'ハイフンを対象にする
    re.Global = True  '全箇所を削除する

    Range(&quot;C1&quot;).Value = re.Replace(Range(&quot;A1&quot;).Value, &quot;&quot;)
    '例: 03-1234-5678 → 0312345678
End Sub</code></pre>



<p class="wp-block-paragraph">ちなみに、このパターンは「+81」で始まる国際電話番号の形式には対応していません。国内の番号を前提としていますので、海外の連絡先を扱うときは別途調整してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc19">③郵便番号抽出</span></h3>



<p class="wp-block-paragraph">住所が1つのセルにまとめて入力されていて、その中から郵便番号だけを取り出したいケースです。Executeメソッドで抽出します。</p>



<pre class="wp-block-code"><code>Sub 郵便番号を抽出()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    re.Pattern = &quot;d{3}-d{4}&quot; '数字3桁-数字4桁
    re.Global = True            '複数あれば全部取り出す

    Dim matches As Object
    Set matches = re.Execute(Range(&quot;A1&quot;).Value) 'A1から抽出

    If matches.Count &gt; 0 Then
        Range(&quot;B1&quot;).Value = matches(0).Value '最初に見つかった郵便番号
    Else
        Range(&quot;B1&quot;).Value = &quot;見つかりません&quot;
    End If
End Sub</code></pre>



<p class="wp-block-paragraph"><code>d{3}-d{4}</code> というパターンで、「数字3桁・ハイフン・数字4桁」という郵便番号の形を表しています。<code>matches(0).Value</code> で、最初に見つかった郵便番号を取り出しています。</p>



<p class="wp-block-paragraph"><code>matches.Count</code> で一致件数を確認してから処理しているのがポイントです。1件も見つからないときに <code>matches(0)</code> へアクセスするとエラーになるので、この件数チェックでガードしています。</p>



<p class="wp-block-paragraph">複数の郵便番号が含まれる文字列なら、For Eachループですべて取り出せます。Executeは抽出処理の万能選手ですよ。</p>



<h3 class="wp-block-heading"><span id="toc20">④全角英数字→半角変換</span></h3>



<p class="wp-block-paragraph">全角で入力された「ＡＢＣ１２３」のような英数字を、半角の「ABC123」に変換するコードです。RegExpとStrConv関数を組み合わせます。</p>



<p class="wp-block-paragraph">ここで大事なのは、RegExp単体では全角から半角への「変換」はできない、という点です。RegExpは「全角英数字の場所を見つける」役割、実際の変換はVBA標準のStrConv関数が担当します。役割分担で乗り切ります。</p>



<pre class="wp-block-code"><code>Sub 全角英数字を半角に変換()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    re.Pattern = &quot;[Ａ-Ｚａ-ｚ０-９]+&quot; '全角の英大文字・英小文字・数字
    re.Global = True                  '全箇所を対象にする

    Dim 元 As String
    元 = Range(&quot;A1&quot;).Value

    Dim matches As Object, m As Object
    Set matches = re.Execute(元)

    Dim 結果 As String
    結果 = 元
    For Each m In matches
        '見つけた全角部分をStrConvで半角に変換し、置き換える
        結果 = Replace(結果, m.Value, StrConv(m.Value, vbNarrow))
    Next m

    Range(&quot;B1&quot;).Value = 結果 '例: ＡＢＣ１２３ → ABC123
End Sub</code></pre>



<p class="wp-block-paragraph">処理の流れを整理します。まずExecuteで全角英数字のかたまりを見つけます。次に、見つけた1つひとつを <code>StrConv(m.Value, vbNarrow)</code> で半角に変換します。そして、VBA標準のReplace関数で元の全角部分を半角に置き換えています。</p>



<p class="wp-block-paragraph"><code>vbNarrow</code> は「全角を半角に変換する」というStrConvの定数です。逆に半角を全角にしたいときは <code>vbWide</code> を使います。</p>



<p class="wp-block-paragraph">文字列の中の英数字だけを半角に揃えたいときに重宝します。日本語の住所や氏名はそのまま残して、英数字だけ整える、といった処理にぴったりですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">⑤不要な記号一括削除</span></h3>



<p class="wp-block-paragraph">文字列に紛れ込んだ全角記号などを、まとめて削除するコードです。コピペで持ち込んだデータに余計な装飾記号が付いている、なんてときに使えます。</p>



<pre class="wp-block-code"><code>Sub 不要な記号を一括削除()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    '削除したい全角記号を明示的に列挙する（誤削除を防ぐため）
    re.Pattern = &quot;[★☆※→←【】「」（）・]+&quot;
    re.Global = True 'すべての一致箇所を削除する

    Range(&quot;B1&quot;).Value = re.Replace(Range(&quot;A1&quot;).Value, &quot;&quot;)
    '例: 【重要】★お知らせ → 重要お知らせ
End Sub</code></pre>



<p class="wp-block-paragraph"><code>re.Replace(対象, "")</code> のように置換後を空文字にすることで、一致した記号をすべて削除しています。GlobalをTrueにしているので、何個あっても一度で消えます。</p>



<p class="wp-block-paragraph">ここでのポイントは、削除したい記号を <code>[★☆※→…]</code> のように1つずつ明示的に列挙していることです。<code>[！-／]</code> のような広い範囲指定もできますが、範囲指定は思わぬ文字まで巻き込んで消してしまうリスクがあります。</p>



<p class="wp-block-paragraph">大切なデータを扱うときほど、「消したい記号だけを並べる」やり方が安全です。少し手間でも、誤削除を防げると考えれば安いものですよ。</p>



<h2 class="wp-block-heading"><span id="toc22">エラー処理：不正パターン入力時の対策</span></h2>



<p class="wp-block-paragraph">正規表現は便利ですが、パターンの書き方を間違えると実行時エラーになります。特に、パターンをユーザー入力やセルの値から動的に組み立てる場合は要注意です。</p>



<p class="wp-block-paragraph">たとえば閉じカッコのない <code>(d+</code> のような不正なパターンをセットするとします。TestやExecuteの実行時にエラーが発生して、マクロが止まってしまいます。</p>



<p class="wp-block-paragraph">こうした事故を防ぐために、エラー処理を組み込んでおきましょう。マクロを安全に動かすための、最後のひと工夫です。</p>



<h3 class="wp-block-heading"><span id="toc23">On Error GoToでRegExpエラーを捕捉する</span></h3>



<p class="wp-block-paragraph">VBAでエラーを捕捉する基本は、On Error GoToステートメントです。エラーが起きたら指定したラベルへジャンプし、メッセージを出して安全に処理を終えられます。</p>



<pre class="wp-block-code"><code>Sub エラー処理つきパターン判定()
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    On Error GoTo エラー処理 'エラー発生時はラベルへジャンプ

    re.Pattern = Range(&quot;A1&quot;).Value 'セルからパターンを取得（不正かもしれない）
    Dim 結果 As Boolean
    結果 = re.Test(Range(&quot;B1&quot;).Value) '判定を実行

    MsgBox &quot;判定結果: &quot; &amp; 結果
    Exit Sub '正常終了（エラー処理を通らないようExit）

エラー処理:
    MsgBox &quot;パターンが不正です: &quot; &amp; Err.Description '原因を表示
End Sub</code></pre>



<p class="wp-block-paragraph"><code>On Error GoTo エラー処理</code> を宣言しておくと、その後でエラーが起きた瞬間に「エラー処理:」ラベルへ飛びます。<code>Err.Description</code> には、エラーの内容が文字列で入っているので、原因の確認に役立ちます。</p>



<p class="wp-block-paragraph">注意したいのが、正常終了の直前に置いた <code>Exit Sub</code> です。これがないと、エラーがなくてもそのままエラー処理ラベルの中身まで実行してしまいます。「成功したのにエラーメッセージが出る」という妙な動きを防ぐための、お約束のひと言ですよ。</p>



<p class="wp-block-paragraph">On Errorの3つの形式（GoToラベル・Resume Next・GoTo 0）の使い分けは、<a href="https://mashukabu.com/vba-error-handling-complete-guide/">VBAのエラーハンドリング完全ガイド｜On Error GoToとResume Nextの使い分け</a>で詳しく解説しています。あわせて読むと理解が深まりますよ。</p>



<h3 class="wp-block-heading"><span id="toc24">パターン検証関数を作っておくと安全</span></h3>



<p class="wp-block-paragraph">同じエラー処理を何度も書くのは面倒ですよね。そこで、「このパターンは有効か」を判定する関数を1つ作っておくと、使い回せて便利です。</p>



<pre class="wp-block-code"><code>'パターンが有効ならTrue、不正ならFalseを返す関数
Function パターンは有効か(ByVal pat As String) As Boolean
    Dim re As Object
    Set re = CreateObject(&quot;VBScript.RegExp&quot;)

    On Error GoTo 不正 'エラーが出たら不正ラベルへ
    re.Pattern = pat
    re.Test &quot;テスト&quot; '実際に試して動くか確認する

    パターンは有効か = True '問題なければTrue
    Exit Function

不正:
    パターンは有効か = False 'エラーが出たらFalse
End Function</code></pre>



<p class="wp-block-paragraph">この関数を使えば、本処理の前に <code>If パターンは有効か(パターン文字列) Then</code> のように安全確認ができます。不正なパターンが来ても、マクロが止まらず分岐で対処できるわけです。</p>



<p class="wp-block-paragraph">ユーザーが自由にパターンを入力できるツールを作るときは、この検証関数が頼りになります。「まず安全確認、それから本処理」の流れを習慣にしておくと安心ですよ。</p>



<h2 class="wp-block-heading"><span id="toc25">ワークシート関数との使い分け</span></h2>



<p class="wp-block-paragraph">ここまでVBAの正規表現を見てきましたが、実はMicrosoft 365には正規表現を使えるワークシート関数もあります。REGEXTEST・REGEXREPLACE・REGEXEXTRACTの3つです。</p>



<p class="wp-block-paragraph">「じゃあ関数とVBA、どっちを使えばいいの」と迷いますよね。それぞれ得意な場面が違うので、ここで整理しておきます。</p>



<p class="wp-block-paragraph">結論から言うと、セル単位で完結する処理は関数、繰り返しや条件分岐を含む処理はVBA、という分け方が基本です。</p>



<h3 class="wp-block-heading"><span id="toc26">REGEXTEST・REGEXREPLACE・REGEXEXTRACTとの違い</span></h3>



<p class="wp-block-paragraph">ワークシート関数の3つは、VBAのRegExpメソッドとほぼ対応しています。対応関係を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>ワークシート関数</th><th>VBA RegExp</th></tr></thead><tbody><tr><td>パターン一致チェック</td><td>REGEXTEST</td><td>Testメソッド</td></tr><tr><td>パターン一致部分の置換</td><td>REGEXREPLACE</td><td>Replaceメソッド</td></tr><tr><td>パターン一致部分の抽出</td><td>REGEXEXTRACT</td><td>Executeメソッド</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ワークシート関数の大きな利点は、数式を入れるだけで使える手軽さです。プログラミングの知識がなくても、セルに <code>=REGEXTEST(A1,"d+")</code> と書くだけで判定できます。</p>



<p class="wp-block-paragraph">ただし、ワークシート関数はMicrosoft 365専用です。Excel 2019や2021では使えません。一方、VBAのRegExpはどのバージョンでも動くという強みがあります。</p>



<p class="wp-block-paragraph">それぞれの関数の詳しい使い方は、<a href="https://mashukabu.com/excel-function-howto-use-regextest/">REGEXTEST関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">REGEXREPLACE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-regexextract/">REGEXEXTRACT関数</a>の各記事を参考にしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc27">VBA RegExpを選ぶべきシーン</span></h3>



<p class="wp-block-paragraph">では、どんなときにVBAの正規表現を選ぶべきでしょうか。次のような場面ではVBAが向いています。</p>



<ul class="wp-block-list"><li>数百行・数千行をまとめて一括処理したいとき（ループ処理が速い）</li><li>「一致したらこのシートへ転記」のように条件分岐を伴うとき</li><li>全角→半角変換のように、StrConvなど他の関数と組み合わせたいとき</li><li>Microsoft 365以外（Excel 2019・2021）の環境で正規表現を使いたいとき</li><li>ボタン一発で実行する定型業務に組み込みたいとき</li></ul>



<p class="wp-block-paragraph">逆に、1つのセルの判定や置換で済むなら、わざわざマクロを書く必要はありません。ワークシート関数のほうが手早く片付きます。</p>



<p class="wp-block-paragraph">ちなみに、Googleスプレッドシートにも正規表現を使える関数があります。スプレッドシートでの置換は<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">スプレッドシートのREGEXREPLACE関数</a>で解説していますので、Sheetsを使う方はそちらもどうぞ。</p>



<p class="wp-block-paragraph">ツールに応じて使い分ければ、文字列処理の悩みはほとんど解決できますよ。</p>



<h2 class="wp-block-heading"><span id="toc28">まとめ</span></h2>



<p class="wp-block-paragraph">VBAの正規表現（RegExp）について、準備から実務パターンまで解説してきました。最後に要点を振り返ります。</p>



<ul class="wp-block-list"><li>正規表現は「形のパターン」での判定・抽出・置換が得意で、TRIMやSUBSTITUTEでは難しい処理を一気にシンプルにできる</li><li>RegExpオブジェクトは「参照設定（早期バインディング）」か「CreateObject（遅延バインディング）」で用意する。自分用は早期、配布用は遅延が目安</li><li>覚えるのは3つのプロパティ（Pattern・Global・IgnoreCase）と3つのメソッド（Test・Replace・Execute）だけ</li><li>日本語や全角文字は <code>w</code> や <code>d</code> に一致しないので、文字コード範囲で指定する</li><li>不正なパターンに備えて、On Error GoToや検証関数でエラー処理を入れておくと安全</li><li>セル単位の処理はワークシート関数、ループや条件分岐を伴う処理はVBAと使い分ける</li></ul>



<p class="wp-block-paragraph">正規表現は最初こそ記号の羅列に見えますが、よく使うパターンは限られています。この記事の早見表とサンプルコード5本を手元に置いておけば、実務の文字列処理でつまずくことはぐっと減りますよ。</p>



<p class="wp-block-paragraph">まずは身近なデータで、メールアドレスチェックや郵便番号抽出から試してみてください。一度コツをつかめば、これまで手作業でやっていた面倒なクレンジングが、ボタン一発で片付くようになりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vba-regexp-howto/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
