<?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>Excel・VBA &#8211; まったりエンジニア</title>
	<atom:link href="https://javeo.jp/category/vba/feed/" rel="self" type="application/rss+xml" />
	<link>https://javeo.jp</link>
	<description>ほどほどレベルのプログラミング</description>
	<lastBuildDate>Sat, 27 Jun 2026 14:48:25 +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://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2-32x32.png</url>
	<title>Excel・VBA &#8211; まったりエンジニア</title>
	<link>https://javeo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Microsoft 365のExcel新機能 リリース時期まとめ</title>
		<link>https://javeo.jp/excel-microsoft365-features/</link>
					<comments>https://javeo.jp/excel-microsoft365-features/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sat, 27 Jun 2026 13:26:39 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[初心者]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4821</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-microsoft365-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>Microsoft 365のExcelに加わった新機能を、いつリリースされたかの時系列で整理しました、CopilotやPython・GROUPBY・正規表現・チェックボックスがM365へいつ来たのかの一覧と、自分がM365を使っているかの確認方法まで初心者向けにまとめています(2026年6月時点)]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-microsoft365-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">「ExcelにCopilotやPythonが来たのって、結局いつだっけ？」と分からなくなったことはありませんか？</p>



<p class="wp-block-paragraph">この記事は、Microsoft 365のExcelに加わってきた新機能を「いつリリースされたか」の時系列で整理する記事です<br>CopilotやPython・GROUPBY・正規表現・チェックボックスといった話題の機能が<strong><span class="swl-marker mark_yellow">Microsoft 365へいつ来たのか</span></strong>を1本の流れとして並べ直します</p>



<p class="wp-block-paragraph">新機能はバラバラに登場した印象になりがちですが、古い順に並べると一本の流れが見えてきます<br>この記事を読み終えるころには、「あの機能はいつごろのものか」「自分のExcelで使える可能性があるか」がつかめるようになります</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「いつ来たか」が分かると、機能の新しさの感覚がつかめますよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">この記事は<strong>2026年6月時点</strong>の情報をもとにまとめています<br>CopilotやPython・正規表現まわりは展開が進行中なので、最新の状況は時々更新していく予定です</p>
</div></div>



<p class="wp-block-paragraph">それでは、まずリリース時期が一目で分かる一覧から見ていきます</p>



<h2 class="wp-block-heading">Microsoft 365 新機能のリリース時期(一覧)</h2>



<p class="wp-block-paragraph">ここがこの記事の核です<br>主な新機能が<strong>Microsoft 365でいつ一般提供(GA)になったか</strong>を、古い順に1枚の表へまとめました</p>



<p class="wp-block-paragraph">上から下へ読むと、そのまま新機能が登場してきた順番になります<br>右の列が「その機能がMicrosoft 365へ来た時期」です</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" class="wp-block-table is-style-stripes"><table style="--table-width:640px;"><thead><tr><th>機能</th><th>Microsoft 365でのリリース時期</th></tr></thead><tbody><tr><td>動的配列(スピル)・XLOOKUP</td><td>2020年初頭</td></tr><tr><td>14のテキスト/配列関数(TEXTSPLIT・VSTACK など)・LAMBDA</td><td>2022年ごろ</td></tr><tr><td>IMAGE関数 / セル内画像</td><td>2022〜2023年</td></tr><tr><td>チェックボックス(セル内)</td><td>2024年6〜7月ごろ</td></tr><tr><td>GROUPBY / PIVOTBY</td><td>2024年9月ごろ</td></tr><tr><td>正規表現関数(REGEX系)</td><td>2024年11月ごろ</td></tr><tr><td>Copilot in Excel</td><td>2025年1月</td></tr><tr><td>Python in Excel</td><td>2023年8月プレビュー → 2025年GA</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この表を上から眺めると、Excelの進化が大きく3つの時期に分かれているのが見えてきます<br>その流れをざっと言葉でも追っておきます</p>



<h3 class="wp-block-heading">2020年ごろ 計算の土台が変わった</h3>



<p class="wp-block-paragraph">表のいちばん上が、<strong>動的配列(スピル)</strong>や<strong>XLOOKUP</strong>・<strong>FILTER</strong>といった関数群です<br>2020年初頭にMicrosoft 365へ入り、1つの数式が複数セルへ自動で広がるスピルなど、表計算の組み立て方そのものを変えた時期です</p>



<h3 class="wp-block-heading">2022〜2023年 関数と画像が増えた</h3>



<p class="wp-block-paragraph">真ん中の時期が、<strong>TEXTSPLIT</strong>や<strong>VSTACK</strong>などの14個のテキスト/配列関数、それに<strong>LAMBDA</strong>・<strong>IMAGE関数</strong>・セル内画像です<br>2022年から2023年ごろにかけてMicrosoft 365へ順に加わりました</p>



<p class="wp-block-paragraph">これらは2020年のスピルの上で動く関数たちで、関数で扱えるデータの幅がぐっと広がった時期と言えます</p>



<h3 class="wp-block-heading">2024年以降 AIと新しい集計が加わった</h3>



<p class="wp-block-paragraph">表のいちばん下が、いま話題の<strong><span class="swl-marker mark_yellow">GROUPBY・正規表現・チェックボックス・Python・Copilot</span></strong>です<br>2024年以降にMicrosoft 365へ来た、新しい集計やAI寄りの機能がここに並びます</p>



<p class="wp-block-paragraph">このあたりは展開が現在進行形で、リリース時期もここ1〜2年に集中しています<br>記事の後半では、この最近の機能を1つずつ「いつ来たか」とあわせて見ていきます</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「2020→2022〜23→2024以降」の3区切りで覚えると整理しやすいです</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">新機能を先取りできる更新チャネル</h2>



<p class="wp-block-paragraph">Microsoft 365には、新機能がどのくらい早く届くかを決める<strong>更新チャネル</strong>という仕組みがあります<br>同じMicrosoft 365でも、設定によって新機能の届くタイミングが変わります</p>



<p class="wp-block-paragraph">2026年6月時点で、主要な更新チャネルは次の3本です</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>最新チャネル(Current Channel)</strong> 新機能をいちばん早く受け取る既定のチャネル</li>



<li><strong>月次エンタープライズ チャネル(Monthly Enterprise Channel)</strong> 毎月決まったタイミングで更新が届く法人向け</li>



<li><strong>半期エンタープライズ チャネル(Semi-Annual Enterprise Channel)</strong> 年2回にまとめて更新する安定重視の法人向け</li>
</ul>



<p class="wp-block-paragraph">さらに早く試したい人向けに、プレビュー系のチャネルもあります<br>代表が<strong>ベータ チャネル(Beta Channel)</strong>で、以前はInsider(Insider Fast)と呼ばれていたものです<br>ほかに<strong>最新チャネル(プレビュー)</strong>もあり、どちらもMicrosoft 365 Insiderプログラム経由で早期アクセスできます</p>



<p class="wp-block-paragraph">ベータチャネルに切り替えると、一般提供(GA)になる前の新機能を一足先に試せます<br>このあと紹介する新機能も、最初はベータチャネルから順に広がっていったものが多いです</p>



<p class="wp-block-paragraph">自分がどのチャネルかは、このあとの「ファイル → アカウント」の画面で確認できます<br>製品情報の更新オプション欄に「最新チャネル」「月次エンタープライズ チャネル」などと表示されるので、こことバージョン番号をセットで見ておくと、新機能が来ているはずなのに出てこない原因の切り分けに役立ちます</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">なお2026年7月から、半期エンタープライズ チャネルが月次の機能・セキュリティ更新へ統合される変更が予定されています<br>このあたりは法人の管理者向けの話なので、個人で使う分には「チャネルによって新機能の届く早さが違う」とだけ押さえておけば十分です</p>
</div></div>



<h2 class="wp-block-heading">Microsoft 365のExcelで使える注目の新機能</h2>



<p class="wp-block-paragraph">ここからが本題です<br>最近Microsoft 365へ加わった注目機能を、<strong>関心の高い順</strong>に見ていきます<br>各機能で「何ができるか」「いつ使えるようになったか」「使うための条件」を簡潔にまとめます</p>



<h3 class="wp-block-heading">Copilot in Excel AIに言葉で頼んで操作する</h3>



<p class="wp-block-paragraph">いちばん注目度が高いのが<strong>Copilot in Excel</strong>です<br>AIアシスタントに自然な言葉で頼んで、Excel作業を手伝ってもらう機能です</p>



<p class="wp-block-paragraph">できることは幅広く、数式の生成と説明・データへの質問でのインサイト抽出・ハイライトや並べ替えやフィルター・Webや保存ファイルからのデータ取り込みなどがあります<br>「この表で売上トップ3を教えて」のように話しかける感覚で操作できます</p>



<p class="wp-block-paragraph">具体的な使いどころで言うと、関数をうろ覚えで詰まったときに「この条件で合計する数式を作って」と頼むと、候補の数式を提案してくれます<br>長い表で何が起きているか分からないときに「売上が落ちた月とその理由になりそうな列を教えて」と聞けば、傾向の当たりをつけてくれるので、分析の入口として頼りやすいです</p>



<p class="wp-block-paragraph">ちょっとしたコツとして、頼む前に表の見出し行を整えておくと精度が上がります<br>1行目に分かりやすい列名(売上・日付・担当など)が入っていると、Copilotがどの列が何かを読み取りやすくなり、的外れな提案が減ります</p>



<p class="wp-block-paragraph">個人向けにいつ広まったかというと、<strong><span class="swl-marker mark_yellow">2025年1月にMicrosoft 365 PersonalとFamilyのサブスクに含まれる</span></strong>ようになりました<br>Word・Excel・PowerPoint・Outlook・OneNoteで使えて、毎月のAIクレジット枠が付く形です</p>



<p class="wp-block-paragraph">逆に言うと、Copilotが見当たらない場合は、自分のMicrosoft 365サブスクに含まれていない可能性があります<br>公式も「CopilotがWord・Excel・PowerPoint・OneNoteに表示されない場合は、サブスクに含まれていないかもしれない」と説明しています</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">ここで混同しやすいのが、セルに数式として書く<strong>=COPILOT()関数</strong>という別の機能です<br>これはチャットUIのCopilot in Excelとは別物で、2026年6月時点では別のプレミアムCopilotライセンスが前提で、一般展開はまだ進行中です<br>この記事の主役はあくまでチャットUIの「Copilot in Excel」のほうで、=COPILOT()関数は「さらに新しい発展機能」として頭の片隅に置いておくくらいで十分です</p>
</div></div>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57-1024x537.png" alt="Microsoft 365のCopilot in Excelに言葉で頼んで操作する画面" class="wp-image-4822" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h08_57.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">Python in Excel セルの中でPythonが動く</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">Python in Excel</span></strong>は、Excelのセルの中にPythonのコードを書いて実行できる機能です<br>pandasやMatplotlibといったライブラリで、データ分析やグラフ描画ができます</p>



<p class="wp-block-paragraph">計算はMicrosoftのクラウド上で実行される仕組みです<br>Excelの使い慣れた画面のまま、Pythonの分析力を借りられるのが面白いところです</p>



<p class="wp-block-paragraph">使いどころとしては、関数だけだと組みにくい集計やグラフが向いています<br>たとえば散布図に回帰直線を引いたり、複数シートのデータをpandasでまとめて集計したりと、ふだんのExcel機能では手数のかかる処理を数行で書けるのが強みです</p>



<p class="wp-block-paragraph">はじめの一手間としては、セルに<code>=PY(</code>と打ってPythonモードに切り替えるところから始めます<br>いきなり長いコードを書かず、まずは<code>df.describe()</code>で表全体の要約統計を出すあたりが、Pythonの動きを確かめる練習にちょうどよいです</p>



<p class="wp-block-paragraph">時期で見ると、<strong>2023年8月にプレビューが始まり、2025年に一般提供(GA)</strong>になりました<br>2025年ごろ(Web版が先・Windowsはその後)に一般提供されたとされ、公式の可用性ページも「プレビューは終了した」と明記しています</p>



<p class="wp-block-paragraph">使うにはある程度新しいMicrosoft 365が必要で、最新チャネルならVersion 2408以降が目安です<br>ただし大事な注意点があります</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">公式が<strong><span class="swl-marker mark_yellow" style="color:#e8313b">無料版と永続ライセンス版はPython in Excelに非対応</span></strong>と名指しで明記しています<br>クラウド/AI機能を含まない版では使えないため、Python in Excelを試したいならサブスク版のMicrosoft 365が前提になります</p>
</div></div>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07-1024x537.png" alt="Microsoft 365のPython in Excelでセルの中にPythonコードを書く画面" class="wp-image-4823" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h31_07.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">GROUPBY / PIVOTBY 数式だけで集計表を作る</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">GROUPBY</span></strong>と<strong>PIVOTBY</strong>は、1つの数式で集計やクロス集計ができる新しい集計関数です<br>これまでピボットテーブルでやっていた集計を、数式だけで組めるのが利点です</p>



<p class="wp-block-paragraph">Microsoft 365では2024年9月に最新チャネルで一般提供されました<br>データが更新されると集計結果も自動で追従するので、ピボットテーブルを毎回更新する手間が減ります</p>



<p class="wp-block-paragraph">向いている場面は、定期的に行が増えていく一覧の集計です<br>売上明細に行を足していく台帳で、カテゴリごとの合計をいつも最新に保ちたいときなどに、GROUPBYを1つ置いておけば追加分まで自動で取り込んでくれます<br>ピボットテーブルのように右クリックして更新する操作が要らないのが、地味にありがたいところです</p>



<p class="wp-block-paragraph">ひとつコツを挙げると、集計したいデータ範囲は少し広めに取っておくと安心です<br>あとから行が増えても拾えるように、A2:A100のように余裕を持った範囲を指定しておくと、追加のたびに数式を直さずに済みます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=GROUPBY(分類の列, 集計したい値, 集計方法)

例: =GROUPBY(A2:A100, B2:B100, SUM)
    A列のカテゴリごとに、B列の値を合計する</code></pre></div>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">姉妹関数のPIVOTBYについては、公式の対応表記が情報源によって揺れています<br>この記事では2つセットでMicrosoft 365側の集計関数として扱い、細かい対応版を断定するのは避けておきます</p>
</div></div>



<h3 class="wp-block-heading">正規表現関数(REGEX) パターンで文字列を処理する</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">REGEXTEST / REGEXEXTRACT / REGEXREPLACE</span></strong>は、正規表現(パターンマッチ)で文字列を判定・抽出・置換する3つの新関数です<br>「正規表現」は、文字の並びをパターンで指定して柔軟に検索する書き方のことです</p>



<p class="wp-block-paragraph">メールアドレスやコード番号のように決まった形のテキストを、ルールベースでまとめて処理できます<br>従来はLEFTやMID・FINDの合わせ技でやっていた複雑な文字列処理を、ぐっと短い数式で書けるようになります</p>



<p class="wp-block-paragraph">身近な使いどころとしては、住所から郵便番号だけを取り出す・商品コードの形式が正しいか一括チェックする・表記ゆれのある電話番号からハイフンを抜くといった作業が当てはまります<br>これまで列を何個も足して途中計算していた処理が、1つの数式で片づくのがありがたいところです</p>



<p class="wp-block-paragraph">使い始めの一手間として、まずREGEXTESTで「狙ったパターンに当たるか」を確かめてから、抽出や置換へ進むと安全です<br>いきなりREGEXREPLACEで置き換えると、想定外の箇所まで巻き込むことがあるので、テストで当たりを見てから本処理に移すと失敗を減らせます</p>



<p class="wp-block-paragraph">Microsoft 365では2024年5月にInsider Betaへ登場し、2024年11月までに全プラットフォームへ広がりました<br>ここ1〜2年の新しい関数群で、文字列処理の幅をぐっと広げてくれます</p>



<p class="wp-block-paragraph">正規表現そのものの書き方や3関数の具体的な使い方は、別記事の<a href="https://javeo.jp/excel-regex/" target="_blank" rel="noopener noreferrer">ExcelのREGEX関数3つの使い方</a>でまとめています<br>パターン処理に興味がある方は、あわせてどうぞ(こちらもMicrosoft 365で使う前提の内容です)</p>



<h3 class="wp-block-heading">チェックボックス セルにチェック欄を置く</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">セル内チェックボックス</span></strong>は、セルにチェックボックスを置いて、ON/OFFをTRUE/FALSEと連動させられる機能です<br>挿入タブからチェックボックスを選ぶだけで、選んだ範囲にまとめて入れられます</p>



<p class="wp-block-paragraph">ToDoリストや進捗管理の表で出番が多く、初心者にも分かりやすい機能です<br>クリックでチェックが入り、その結果を数式で集計するといった使い方ができます</p>



<p class="wp-block-paragraph">たとえば持ち物チェックリストで、チェック欄の隣にCOUNTIFを置いて「TRUEの数」を数えれば、いくつ済んだかが自動で出ます<br>条件付き書式と組み合わせて、チェックが付いた行をグレーアウトさせると、やり残しが一目で分かる表になります</p>



<p class="wp-block-paragraph">まとめて入れたいときは、チェックボックスを入れたいセルをあらかじめ範囲選択してから挿入すると、選んだ範囲にまとめて配置できます<br>1個ずつ置くより速いので、長いリストを作るときに覚えておくと楽です</p>



<p class="wp-block-paragraph">Microsoft 365では2024年6月から7月ごろに展開されました<br>表のなかでも比較的早い時期に来た新機能で、すぐ実務に取り入れやすいタイプです</p>



<h3 class="wp-block-heading">Focus Cell 大きな表で位置を見失わない</h3>



<p class="wp-block-paragraph"><strong>Focus Cell(フォーカスセル)</strong>は、選択中のセルの行と列をハイライトして、アクティブセルの枠を太く見せる機能です<br>大きな表で「いま自分はどのセルにいるんだっけ」と迷子になるのを防げます</p>



<p class="wp-block-paragraph">表示タブからフォーカスセルをオンにすると切り替わります<br>横にも縦にも広い表を扱う人ほど、地味に効いてくる見た目系の機能です</p>



<p class="wp-block-paragraph">出番が多いのは、列がずらりと並んだ大きな管理表で1行ずつ入力していく場面です<br>いま編集している行と列に色が付くので、隣の行の値を間違えて触る事故が減り、入力ミスの予防にもつながります</p>



<p class="wp-block-paragraph">ハイライトの色が気になるときは、表示タブから色を変えられます<br>常時オンにすると見た目がうるさく感じることもあるので、大きい表を触るときだけオンにするといった使い分けがおすすめです</p>



<p class="wp-block-paragraph">Microsoft 365では2024年10月にInsiderへ初登場し、その後の2024年後半から2025年ごろに一般提供されました<br>一般提供の正確な時期は情報源で差があるので幅を持たせていますが、いずれにせよここ最近の新しい機能です</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>6つとも、2024年以降にMicrosoft 365へ来た新しめの機能です</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">自分がMicrosoft 365を使っているか確認する方法</h2>



<p class="wp-block-paragraph">ここまで読んで「で、自分のExcelで使えるの？」と気になったはずです<br>結論から言うと、<strong><span class="swl-marker mark_yellow">ファイル → アカウント</span></strong>を開けば、自分がMicrosoft 365を使っているかどうかを見分けられます</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">Excelで「ファイル」を開く</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">Excelを起動して、左上の「ファイル」タブをクリックします<br>メニューが左側にずらっと出る画面になります</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">「アカウント」を選ぶ</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">左側メニューの下のほうにある「アカウント」をクリックします<br>右側に「製品情報」が表示されます(Macの場合は上部メニューの「Excelについて」)</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">製品名で見分ける</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">製品名に「Microsoft 365」と入っていればサブスク版です<br>「Office Home 2024」や「Excel 2021」のように年号が入っていれば買い切り版です</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">バージョン番号も確認する</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">同じ画面の「Excelのバージョン情報」ボタンを押すと、フルバージョン番号とビット数が表示されます<br>「Python in ExcelはVersion 2408以降」のように、機能の必要バージョンと照らし合わせる用途で使えます</p>
</div></div>
</div>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3-1024x537.png" alt="" class="wp-image-4838" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-27_18h32_05-3.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">製品名に「Microsoft 365」とあれば、この記事で紹介したCopilotやPythonなどの新機能を使える可能性があります<br>年号入りの買い切り版なら、それらの最近の機能は対象外になりやすいので、バージョンとあわせて見ておくと判断しやすいです</p>



<h2 class="wp-block-heading">まとめ Microsoft 365の新機能とリリース時期</h2>



<p class="wp-block-paragraph">Microsoft 365のExcel新機能を、リリース時期の流れで最後にざっと振り返ります</p>



<ul style="background-color:#f3fafe80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li><strong>2020年ごろ</strong> 動的配列(スピル)・XLOOKUPなど、計算の土台が変わった</li>



<li><strong>2022〜2023年</strong> TEXTSPLIT・VSTACKなどの14関数とLAMBDA・IMAGE関数が加わった</li>



<li><strong>2024年以降</strong> チェックボックス・GROUPBY・正規表現・Focus Cell、そしてPython・Copilotが登場</li>
</ul>



<p class="wp-block-paragraph">こうして並べると、<strong><span class="swl-marker mark_yellow">新機能はまずMicrosoft 365に来て、時期を追って増えてきた</span></strong>のが分かります<br>とくに2024年以降はAI寄りの機能が増え、Excelの進化が速くなっている時期です</p>



<p class="wp-block-paragraph">なお、これらの新機能のうち一部は、その後に買い切り版(Excel 2021/2024)へ固定された形でも使えます<br>買い切り版2世代に入った新機能のほうは、シリーズの別記事で扱っています</p>



<p class="wp-block-paragraph">買い切り版の世代ごとの新機能を確認したい方は、<a href="https://javeo.jp/excel-2021-new-features/" target="_blank" rel="noopener noreferrer">Excel 2021の新機能と新関数まとめ</a>と<a href="https://javeo.jp/excel-2024-new-features/" target="_blank" rel="noopener noreferrer">Excel 2024の新機能と新関数まとめ</a>もどうぞ<br>2021→2024→Microsoft 365の流れで読むと、Excelがどう進化してきたかが一望できます</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>CopilotやPythonまわりは動きが速いので、最新情報は時々この記事を更新していきます(2026年6月時点)</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">Microsoft 365の新機能でよくある質問</h2>



<p class="wp-block-paragraph">最後に、新機能まわりで迷いやすいポイントを質問形式で補足します</p>



<h3 class="wp-block-heading">買い切り版でもこれらの新機能は使えますか？</h3>



<p class="wp-block-paragraph">一部は使えますが、すべては使えません<br>動的配列や2024相当の関数のように、あとから買い切り版(Excel 2021/2024)へ固定された機能はありますが、<strong><span class="swl-marker mark_yellow">CopilotやPython in Excelはサブスク版のMicrosoft 365が前提</span></strong>で、買い切り版や無料版は対象外です</p>



<p class="wp-block-paragraph">買い切り版2世代でどこまで使えるかは、シリーズの別記事(本記事末尾でリンク)で世代ごとに整理しています<br>「自分の版で何が使えるか」を知りたいときは、まず製品名とバージョンを確認するのが近道です</p>



<h3 class="wp-block-heading">Copilotがリボンに出てこないときは？</h3>



<p class="wp-block-paragraph">まず自分のサブスクにCopilotが含まれているかを確認します<br>公式も「Word・Excel・PowerPoint・OneNoteにCopilotが表示されない場合は、サブスクに含まれていない可能性がある」と説明しているので、ここがいちばん多い原因です</p>



<p class="wp-block-paragraph">含まれているはずなのに出ない場合は、Excelのバージョンが古い・更新チャネルが遅い・サインインしているアカウントが別物、といった点を順に見ていきます<br>「ファイル → アカウント」でバージョンとチャネルとサインイン中のアカウントをまとめて確認できるので、まずここを開くのがおすすめです</p>



<h3 class="wp-block-heading">新機能が来るはずなのに見当たらないのはなぜ？</h3>



<p class="wp-block-paragraph">同じMicrosoft 365でも、更新チャネルによって新機能の届くタイミングが違うためです<br>半期エンタープライズ チャネルのように更新がまとまっているチャネルだと、最新チャネルより数か月遅れて機能が届くことがあります</p>



<p class="wp-block-paragraph">急いで試したい個人なら、最新チャネルになっているかを確認し、それでも来ないならMicrosoft 365 Insiderのベータチャネルを検討する手もあります<br>ただしベータは不安定な面もあるので、業務用の環境では無理に先取りせず、正式提供を待つほうが安心です</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/excel-microsoft365-features/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel 2024の新機能と新関数まとめ</title>
		<link>https://javeo.jp/excel-2024-new-features/</link>
					<comments>https://javeo.jp/excel-2024-new-features/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 14:59:50 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[初心者]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4813</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-2024-new-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>Excel 2024で増えた新機能・新関数を、TEXTSPLITやVSTACKなどの新しいテキスト/配列関数を中心にまとめました、各機能がMicrosoft 365でいつ実装されたかも併記しつつ、IMAGE関数やセル内画像、買い切りには来ていないM365限定機能まで初心者向けに整理しています]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-2024-new-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">「Excel 2024って、どんな新機能が増えたの？」と気になっている方に向けた記事です</p>



<p class="wp-block-paragraph">結論から言うと、Excel 2024でいちばん増えたのは関数まわりです<br>文字列を区切って分ける<strong><span class="swl-marker mark_yellow">TEXTSPLIT</span></strong>や、複数の表を積み重ねる<strong>VSTACK</strong>といった、データの整形を数式だけで片づけられる新関数が買い切り版に入りました<br>ほかにもセルの中に画像を置ける<strong>IMAGE関数</strong>など、ちょっと毛色の違う機能も加わっています</p>



<p class="wp-block-paragraph">ここで先に1つ前提を共有しておきます<br>買い切り版のExcel(2024など)は、その時点の<strong><span class="swl-marker mark_yellow">Microsoft 365の機能セットを切り出して固定したもの</span></strong>です<br>新機能はまずサブスク版のMicrosoft 365に入り、後から買い切り版に取り込まれる流れになっています</p>



<p class="wp-block-paragraph">なのでこの記事でも、各機能に「Microsoft 365でいつ頃使えるようになったか」を一言そえていきます<br>たとえば今回の新関数群は2022年ごろにMicrosoft 365へ入り、それが2024年10月の買い切り版Excel 2024に乗りました<br>この時系列で見ると分かりやすいです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「サブスクで先に使えた機能が、買い切りに後から来る」って覚えておくと混乱しないです</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="wp-block-paragraph">更新チャネルの細かい話はシリーズの別記事に譲って、ここでは「Microsoft 365が先、買い切りが後」という大枠だけ押さえてもらえれば十分です<br>Excel 2024そのものは<strong>2024年10月</strong>に買い切り版として登場しました</p>



<p class="wp-block-paragraph">なお1つ前の世代であるExcel 2021で増えた関数(XLOOKUPや動的配列など)については、別記事の<a href="https://javeo.jp/excel-2021-new-features/" target="_blank" rel="noopener noreferrer">Excel 2021の新機能と新関数まとめ</a>で整理しています<br>この記事のTEXTSPLITやVSTACKは、その動的配列(スピル)の上で動く関数なので、スピルがピンと来ない方は先にそちらを読んでおくと理解が早いです</p>



<p class="wp-block-paragraph">それでは、関心の高い関数から順に見ていきます</p>



<h2 class="wp-block-heading">Excel 2024の注目の新関数(利用頻度の高い順)</h2>



<p class="wp-block-paragraph">ここがExcel 2024の目玉です<br>新たに加わった<strong>14個のテキスト/配列関数</strong>を中心に、よく使う順で見ていきます<br>どれも以前のバージョンには無く、Excel 2024で初めて買い切り版に入った関数です</p>



<p class="wp-block-paragraph">これらの新関数は、どれも前の世代で入った<strong>動的配列(スピル)</strong>の仕組みの上で動きます<br>数式1つの結果が下や右のセルへ自動で広がる、あの挙動が前提です<br>スピルの感覚があやしい方は、先ほどの2021の記事をのぞいてからのほうがスッと入ってきます</p>



<h3 class="wp-block-heading">TEXTSPLIT 区切り文字で文字列をバッと分ける</h3>



<p class="wp-block-paragraph">新関数のなかで真っ先に覚えたいのが<strong><span class="swl-marker mark_yellow">TEXTSPLIT</span></strong>です<br>指定した区切り文字で文字列を分割して、別々のセルへ展開してくれる関数です</p>



<p class="wp-block-paragraph">以前は「区切り位置」機能やMID・FINDの合わせ技でやっていた分割作業を、数式1つで片づけられます<br>住所の分割・氏名の分割・カンマ区切りデータの取り込みなど、実務で出番の多い関数です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=TEXTSPLIT(対象文字列, 列の区切り文字, [行の区切り文字])

例: =TEXTSPLIT(&quot;山田,東京,営業&quot;, &quot;,&quot;)
    カンマで区切って「山田」「東京」「営業」を横3セルに分ける</code></pre></div>



<p class="wp-block-paragraph">結果はスピルで横や下へ広がるので、元のセルを書き換えれば分割結果もその場で追従します<br>1つのセルに詰め込まれた値をきれいに列へバラしたいとき、いちばん手早い方法になります</p>



<p class="wp-block-paragraph">セットで覚えたいのが<strong>TEXTBEFORE</strong>と<strong>TEXTAFTER</strong>です<br>名前のとおり、指定した区切り文字の<strong>前</strong>だけ・<strong>後ろ</strong>だけを取り出します<br>「メールアドレスの@より前だけほしい」「ファイル名から拡張子だけ取りたい」といった片側だけの抽出は、TEXTSPLITよりこの2つが向いています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=TEXTBEFORE(&quot;taro@example.com&quot;, &quot;@&quot;)   → taro
=TEXTAFTER(&quot;taro@example.com&quot;, &quot;@&quot;)    → example.com</code></pre></div>



<p class="wp-block-paragraph">これらテキスト系の関数を含む14個の新関数は、Microsoft 365では<strong>2022年3月にプレビュー(Beta)で登場し、2022年後半(9月ごろ)に最新チャネルへ一般提供</strong>されたとされています<br>それが2024年10月の買い切り版Excel 2024に取り込まれた、という流れです<br><strong><span class="swl-marker mark_yellow" style="color:#e8313b">これらは以前のバージョンでは使えません</span></strong>、買い切り版で使うならExcel 2024以降が必要です</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「区切り位置」を手作業でやってた人ほど、TEXTSPLITは効きますよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29-1024x537.png" alt="Excel 2024のTEXTSPLITでカンマ区切りの文字列が複数セルに分割される様子" class="wp-image-4815" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h12_29.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">VSTACK / HSTACK 複数の表を縦・横に積み重ねる</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">VSTACK</span></strong>と<strong>HSTACK</strong>は、複数の範囲を1つにまとめる関数です<br>VSTACKは縦(Vertical)に積み、HSTACKは横(Horizontal)に並べます</p>



<p class="wp-block-paragraph">毎月のシートをコピペでつなぐ、支店別の表を1枚に集約する、といった「表の結合」を数式1つでできるのが利点です<br>いわゆるシート集約の需要にハマる関数です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=VSTACK(範囲1, 範囲2, ...)   縦に積み重ねて1つの表にする
=HSTACK(範囲1, 範囲2, ...)   横に並べて1つの表にする

例: =VSTACK(東京!A2:C50, 大阪!A2:C50)
    東京と大阪の表を縦につないで1枚にまとめる</code></pre></div>



<p class="wp-block-paragraph">元のシートを更新すれば結合結果も自動でついてくるので、毎月コピペで貼り直す手間が消えます<br>VSTACKで全支店を縦に積んでから、前の世代で入ったFILTERやUNIQUEと重ねがけすると、集約した1枚の表からさらに絞り込みや重複除去ができます</p>



<h3 class="wp-block-heading">TAKE / DROP / CHOOSECOLS / CHOOSEROWS 範囲の一部だけ抜き出す</h3>



<p class="wp-block-paragraph">続いて、範囲の一部分だけを取り出す4つです<br>どれも「大きな表から必要な行・列だけ切り出す」用途で使います</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>TAKE</strong> 範囲の先頭(または末尾)から指定した行数・列数を取り出す<br>「上位5件だけ」のような切り出しに向く</li>



<li><strong>DROP</strong> 逆に、先頭(または末尾)の指定数を取り除いて残りを返す<br>「見出し行を落として中身だけ」に便利</li>



<li><strong>CHOOSECOLS</strong> 指定した列番号の列だけを抜き出す<br>「1列目と3列目だけほしい」を順番自由に並べ替えて取れる</li>



<li><strong>CHOOSEROWS</strong> 指定した行番号の行だけを抜き出す、CHOOSECOLSの行版</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=TAKE(A1:D100, 5)        先頭5行を取り出す
=DROP(A1:D100, 1)        先頭1行(見出し)を落として残りを返す
=CHOOSECOLS(A1:D100, 1, 3)   1列目と3列目だけを抜き出す</code></pre></div>



<p class="wp-block-paragraph">VSTACKで結合した表からTAKEで上位だけ抜く、DROPで見出しを落としてからTEXTSPLITにかける、といった組み合わせができます<br>1つずつだと地味ですが、ほかの新関数とつなぐと整形作業がぐっとラクになる縁の下の存在です</p>



<h3 class="wp-block-heading">IMAGE関数 URLからセルに画像を表示する</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">IMAGE関数</span></strong>は、画像のURLを指定して、その画像をセルの中に表示する関数です<br>従来は画像がセルの「上」に浮いて乗るだけでしたが、IMAGE関数で表示した画像はセルの中にきちんと収まります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=IMAGE(画像のURL, [代替テキスト], [サイズ指定])

例: =IMAGE(&quot;https://example.com/apple.png&quot;, &quot;りんご&quot;)
    指定URLの画像をセルの中に表示する</code></pre></div>



<p class="wp-block-paragraph">セルの中に入るので、行の高さに合わせて表示され、並べ替えやフィルターをかけても画像が一緒に動いてくれます<br>商品カタログのサムネイル・国旗の一覧・QRコードなど、表に画像を絡めたいときに向いています</p>



<p class="wp-block-paragraph">IMAGE関数のMicrosoft 365での提供は<strong>2023年ごろに一般展開</strong>されたとされ、それがExcel 2024に取り込まれています<br>このIMAGE関数と、次の見出しで触れる「画像をセルの中に置く」機能はセットで覚えると分かりやすいです</p>



<h3 class="wp-block-heading">整形系の関数(TOROW / TOCOL / WRAPROWS / WRAPCOLS / EXPAND)</h3>



<p class="wp-block-paragraph">残りの整形系は、ややクセのある変形を担当する関数たちです<br>利用頻度は高くないものの、ハマる場面ではこれ一発で済みます</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>TOROW / TOCOL</strong> 表全体を1行・1列に並べ直す、バラバラな範囲を縦一列にまとめたいときなどに</li>



<li><strong>WRAPROWS / WRAPCOLS</strong> 逆に、1行(1列)の長い並びを指定した数で折り返して表の形にする</li>



<li><strong>EXPAND</strong> 範囲を指定したサイズまで広げて、足りない部分を任意の値で埋める</li>
</ul>



<p class="wp-block-paragraph">このあたりは「いつ使うか分からない」枠かもしれません<br>ただTOCOLで散らばった値を縦一列にそろえてからUNIQUEにかける、といった下ごしらえで効くことがあるので、名前だけ頭の片隅に置いておくと、いざというとき思い出せます</p>



<h3 class="wp-block-heading">LAMBDAとヘルパー関数 自分だけの関数を作る(中級者向け)</h3>



<p class="wp-block-paragraph">最後は中級者向けの<strong>LAMBDA</strong>です<br>よく使う数式に名前を付けて、自分だけの独自関数として呼び出せる仕組みです<br>こうした「自作関数」は長らくVBA(マクロ)の領分でしたが、LAMBDAなら数式の範囲でできてしまいます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=LAMBDA(税抜, 税抜 * 1.1)(1000)
    「税抜に1.1を掛ける」処理に引数を渡して呼び出す

名前の管理で「税込」という名前を付けておけば
=税込(1000) のように自分の関数として使えるようになる</code></pre></div>



<p class="wp-block-paragraph">あわせて、配列を1行・1列ずつ処理する<strong>ヘルパー関数</strong>も使えます<br>代表が<strong>BYROW</strong>(行ごとに計算)で、ほかにMAP・REDUCE・SCAN・BYCOL・MAKEARRAYといった同じLAMBDAヘルパー群がそろっています</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">LAMBDAとヘルパー関数は、数式に慣れた方が「同じ計算を何度も書くのがしんどい」と感じてきたあたりで効いてきます<br>初心者のうちは「そういう仕組みもある」と知っておくくらいで十分です</p>
</div></div>



<p class="wp-block-paragraph">LAMBDAはExcel 2024の公式な新機能として名指しされていて、ヘルパー関数もBYROWを代表に同じく2024へ搭載されています<br>Microsoft 365では、ほかの新関数と近い2022年ごろに使えるようになったとされています</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>まずはTEXTSPLITとVSTACK、この2つだけでも試してみてください</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11-1024x537.png" alt="Excel 2024のVSTACKで複数の表が1枚に縦結合された結果" class="wp-image-4816" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h19_11.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">セル内画像とIMAGE関数 画像を表の一部として扱う</h2>



<p class="wp-block-paragraph">関数の次に分かりやすい変化が、画像の扱いです<br>Excel 2024では<strong><span class="swl-marker mark_yellow">画像をセルの中に置ける</span></strong>ようになりました</p>



<p class="wp-block-paragraph">長らくExcelに貼り付けた画像は、セルの上に浮いて乗っているだけでした<br>行を並べ替えても画像は元の位置に取り残されてズレる、というのが定番の困りごとでした</p>



<p class="wp-block-paragraph">Excel 2024では、画像を<strong>セルそのものの中身</strong>として扱えます<br>セルに入った画像は、行の並べ替え・フィルター・サイズ変更にちゃんと追従して、表の一部として一緒に動きます</p>



<p class="wp-block-paragraph">セルの中に画像を置く方法は、大きく2通りあります</p>



<ul style="background-color:#f3fafe80" class="wp-block-list is-style-num_circle -list-under-dashed has-background">
<li>手元の画像をコピーして、セルに「セルに配置」で貼り付ける(ローカルの画像を入れたいとき)</li>



<li>先ほどの<strong>IMAGE関数</strong>でURLから読み込む(Web上の画像を数式で入れたいとき)</li>
</ul>



<p class="wp-block-paragraph">商品一覧にサムネイルを並べる・名簿に顔写真を添える、といった場面で「画像が表とズレない」のは思いのほか快適です<br>このセル内画像のMicrosoft 365での展開は2022年から2023年ごろで、それがExcel 2024に乗っています</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>並べ替えで画像だけ置き去りになる、あの地味なストレスから解放されますよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33-1024x537.png" alt="Excel 2024でセルの中に画像が収まり表の一部として扱える様子" class="wp-image-4817" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-26_23h23_33.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">その他の改善 動的配列グラフや性能、見た目もよくなった</h2>



<p class="wp-block-paragraph">派手さは無いものの、使っていると地味に効いてくる改善もまとめておきます</p>



<h3 class="wp-block-heading">動的配列を参照するグラフ 件数が変わってもグラフが追従</h3>



<p class="wp-block-paragraph">Excel 2024では、<strong>動的配列をグラフが参照できる</strong>ようになりました<br>FILTERなどで件数が増減するデータをグラフ化すると、配列が再計算されたときにグラフのデータ点も自動で増減してくれます</p>



<p class="wp-block-paragraph">1つ注意したいのは、動的配列(スピル)そのものは前の世代で入った機能だという点です<br>Excel 2024で新しくなったのは、<strong>動的配列を「グラフが参照」できるようになった</strong>ところです<br>動的配列そのものを2024の新機能と勘違いしないよう、ここだけ切り分けておきます</p>



<h3 class="wp-block-heading">パフォーマンスと安定性の向上</h3>



<p class="wp-block-paragraph">計算の速度と安定性も改善されています<br>公式が挙げているのは、独立した計算を持つ<strong>複数のブックを同時に開いたとき</strong>の遅延やハングが軽くなった、という点です</p>



<p class="wp-block-paragraph">大きなファイルを何枚も並べて作業する人ほど効いてくる部分です<br>具体的に何倍速くなったといった数字は公式に出ていないので、ここでは「重さが減った」とだけ押さえておきます</p>



<h3 class="wp-block-heading">既定フォントがAptosに(Office 2024全体の変更)</h3>



<p class="wp-block-paragraph">見た目の変化として、<strong>既定フォントがCalibriからAptosに変わりました</strong><br>17年ほど続いたCalibriを置き換える形です</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">これはExcel単独の新機能というより、<strong>Office 2024全体での既定フォント変更</strong>です<br>WordやPowerPointなども含めて既定がAptosになりました(Excelでは細身のAptos Narrowとされます)<br>Microsoft 365では2023年7月ごろから順次切り替わっていたものを、買い切り版Excel 2024が固定した形です</p>
</div></div>



<h3 class="wp-block-heading">セキュリティ・互換まわりの改善</h3>



<p class="wp-block-paragraph">地味ですが、安全面とファイル互換も手が入っています</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>XLLアドインの既定ブロック</strong> インターネット由来のXLLアドインを既定でブロックして、マルウェア配布の手口から守ります<br>意識しないところで守られている枠です</li>



<li><strong>OpenDocument形式(ODF)1.4対応</strong> LibreOfficeなど他のソフトとファイルをやり取りする人向けの互換改善です</li>



<li><strong>アクセシビリティの強化</strong> 読みやすい文書を作るための道具がまとまっています<br>ただし前の世代から続く強化なので、2024で初めて加わったわけではありません</li>
</ul>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>このへんは「ついでに良くなった」枠、意識しなくても恩恵を受けています</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">Excel 2024に入らなかった「Microsoft 365限定」の機能</h2>



<p class="wp-block-paragraph">ここは「2024で使えると思われがちだけど、実は買い切り版には来ていない」機能です<br>誤解しやすいので整理しておきます</p>



<p class="wp-block-paragraph">冒頭でも触れたとおり、買い切り版は「ある時点のMicrosoft 365を切り出して固定したもの」です<br>つまり<strong><span class="swl-marker mark_yellow">買い切り版が出たあとにMicrosoft 365へ来た新機能は、その買い切り版には入りません</span></strong><br>次に挙げる機能は、Excel 2024には降りておらず、サブスク版のMicrosoft 365でしか使えない位置づけです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>GROUPBY / PIVOTBY</strong> 数式だけで集計表を作れる新しい集計関数、Microsoft 365では2024年9月ごろに一般提供されました</li>



<li><strong>正規表現の関数(REGEXTEST / REGEXEXTRACT / REGEXREPLACE)</strong> 文字列を柔軟なパターンで判定・抽出・置換する関数です</li>



<li><strong>Focus Cell(フォーカスセル)</strong> 選択中のセルの行と列をハイライトして、大きな表で位置を見失わない機能です</li>



<li><strong>Copilot</strong> AIに自然な言葉で頼んで、数式作成や分析を助けてもらう機能です</li>



<li><strong>Python in Excel</strong> Excelの中でPythonのコードを実行する機能です、公式が永続ライセンス版は非対応と明記しています</li>
</ul>



<p class="wp-block-paragraph">このうちGROUPBYとPIVOTBYは、Microsoft 365での一般提供がExcel 2024の登場とほぼ同じ時期でした<br>ただ買い切り版は少し前までの機能セットで固定されているため、タイミング的に間に合わず、買い切り版には来ていないと見られています</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">PIVOTBYについては、公式の対応表記が情報源によって揺れていて、買い切り版での扱いがはっきりしないところがあります<br>姉妹関数のGROUPBYはMicrosoft 365限定とされているので、この記事では2つセットで「Microsoft 365側の機能」として扱い、買い切りで使えると断定するのは避けておきます</p>
</div></div>



<p class="wp-block-paragraph">正規表現の関数(REGEX系)も、現時点ではMicrosoft 365限定です<br>文字列のパターン処理に興味がある方は、別記事の<a href="https://javeo.jp/excel-regex/" target="_blank" rel="noopener noreferrer">ExcelのREGEX関数3つの使い方</a>で挙動をまとめているので、あわせてどうぞ<br>こちらはMicrosoft 365で使う前提の内容です</p>



<p class="wp-block-paragraph">これらMicrosoft 365限定の機能と、買い切り版がどの世代で何を取り込んできたかの全体像は、このシリーズの次の記事でまとめて整理する予定です(近日公開)<br>「結局どこからどこまでが使えるのか」を一望したい方は、そちらを待ってもらえればと思います</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「Excel 2024でCopilot使える?」とよく聞かれますが、あれはサブスク側だけなんですよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">まとめ Excel 2024は文字列・配列の関数が主役</h2>



<p class="wp-block-paragraph">Excel 2024で増えた新機能を、もう一度ざっくり振り返ります</p>



<ul style="background-color:#f3fafe80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li>いちばんの目玉は<strong>14個のテキスト/配列関数(TEXTSPLIT・VSTACK・TAKEなど)とLAMBDA</strong>、データの整形が数式だけで片づく</li>



<li><strong>IMAGE関数とセル内画像</strong>で、画像を表の一部として並べ替え・フィルターできるようになった</li>



<li>動的配列を参照するグラフ・性能向上・既定フォントAptos(Office全体)などの<strong>地味な改善</strong>も入った</li>



<li>GROUPBY・正規表現・Copilot・Python in Excelは<strong>Microsoft 365限定</strong>で、買い切りのExcel 2024には入っていない</li>
</ul>



<p class="wp-block-paragraph">まず触ってみてほしいのは、やはりTEXTSPLITとVSTACKまわりです<br>1つのセルに詰まった値をバラす・複数の表を1枚にまとめる、という日常作業が数式だけで完結するので、コピペや手作業がぐっと減ります</p>



<p class="wp-block-paragraph">1つ前の世代であるExcel 2021の新機能(XLOOKUPや動的配列など)を先に押さえたい方は、<a href="https://javeo.jp/excel-2021-new-features/" target="_blank" rel="noopener noreferrer">Excel 2021の新機能と新関数まとめ</a>もどうぞ<br>この記事の新関数は、その2021で入った動的配列の上で動くものなので、合わせて読むと2021から2024への流れがつながります</p>



<p class="wp-block-paragraph">このシリーズでは、続けて「Microsoft 365限定の機能+買い切り版の全体タイムライン」も近日公開予定です<br>買い切り版のどの世代で何が使えるのか、全体像をつかみたい方は合わせて読んでもらえればと思います</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/excel-2024-new-features/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel 2021の新機能と新関数まとめ</title>
		<link>https://javeo.jp/excel-2021-new-features/</link>
					<comments>https://javeo.jp/excel-2021-new-features/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Thu, 25 Jun 2026 13:45:16 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[初心者]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4805</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-2021-new-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>Excel 2021で増えた新機能・新関数を、XLOOKUPや動的配列(スピル)などを中心にまとめました、M365でいつ実装された機能かも併記しつつ、共同編集など関数以外の変化も初心者向けに整理しています]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-2021-new-features-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">「Excel 2021って、どんな新機能が増えたの？」と気になっている方に向けた記事です</p>



<p class="wp-block-paragraph">結論から言うと、Excel 2021でいちばん大きく変わったのは関数まわりです<br><strong><span class="swl-marker mark_yellow">XLOOKUP</span></strong>や<strong>動的配列(スピル)</strong>といった、表計算の組み立て方そのものが変わる機能が買い切り版に入りました<br>ほかにも共同編集や自動保存など、複数人で作業するための仕組みも増えています</p>



<p class="wp-block-paragraph">ここで先に1つだけ前提を共有しておきます<br>買い切り版のExcel(2021など)は、その時点の<strong><span class="swl-marker mark_yellow">Microsoft 365の機能セットを切り出して固定したもの</span></strong>です<br>新機能はまずサブスク版のMicrosoft 365に入り、後から買い切り版に取り込まれる流れになっています</p>



<p class="wp-block-paragraph">なのでこの記事では、各機能に「Microsoft 365でいつ頃使えるようになったか」を一言そえていきます、たとえばXLOOKUPは2020年2月にMicrosoft 365で一般提供が始まり、それが2021年10月の買い切り版に乗った、という時系列で見ると分かりやすいです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「サブスクで先に使えた機能が、買い切りに後から来る」って覚えておくと混乱しないですよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="wp-block-paragraph">更新チャネルの細かい話(最新チャネルとか半期チャネルとか)はシリーズの別記事に譲って、ここでは「Microsoft 365が先、買い切りが後」という大枠だけ押さえてもらえれば十分です、Excel 2021そのものは<strong>2021年10月</strong>に買い切り版として登場しました</p>



<p class="wp-block-paragraph">それでは、関心の高い関数から順に見ていきます</p>



<h2 class="wp-block-heading">スピル(動的配列)とは Excel 2021で変わった計算の土台</h2>



<p class="wp-block-paragraph">新関数の話に入る前に、その土台になる<strong>スピル(動的配列)</strong>を先に説明させてください、ここを理解しておくと、このあとの新関数の挙動がスッと入ってきます</p>



<p class="wp-block-paragraph">スピル(spill)は「こぼれる」という意味です、1つのセルに入れた数式の結果が、そのセルだけでなく<strong><span class="swl-marker mark_yellow">下や右の複数セルへ自動的に広がる(こぼれる)</span></strong>仕組みを指します</p>



<p class="wp-block-paragraph">これまでのExcelだと、複数の結果を返したい場合はセルを1つずつ数式で埋めるか、配列数式を <strong>Ctrl + Shift + Enter</strong> で確定する、ちょっと面倒な操作が必要でした<br>Excel 2021ではこの計算エンジンの挙動が変わって、数式を1つ書くだけで結果がまわりのセルへ自動で展開されます</p>



<p class="wp-block-paragraph">たとえば商品リストに「単価×数量」の小計を入れるとき、これまでは先頭セルに数式を書いてから下までコピーする手順が要りました<br>スピルが効くExcel 2021なら、先頭で範囲どうしの掛け算を1回書くだけで、行数ぶんの小計がまとめてこぼれてくれます<br>行が増えても数式の貼り直しがいらないので、データが日々増える表ほど効いてきます</p>



<p class="wp-block-paragraph">たとえば <code>=A1:A5*2</code> と1セルに入れるだけで、A1からA5までを2倍した5つの結果が、入力したセルを起点に縦5マスへこぼれていきます、結果が広がった範囲は薄い枠で囲まれて表示されるので、どこまでが1つの数式の結果か一目で分かります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=A1:A5*2     一つの数式でA1〜A5を2倍した結果が下へこぼれる
=A1#         スピルで広がった範囲全体を「#」で参照できる</code></pre></div>



<p class="wp-block-paragraph">覚えておくと便利なのが、上の例の <code>=A1#</code> のような<strong>スピル範囲演算子(#)</strong>です、スピルで広がった範囲全体を「A1#」のように後ろに#を付けて参照できるので、結果が何行になるか分からない場面でも数式を組みやすくなります</p>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">このあと出てくるFILTER・UNIQUE・SORT・SEQUENCEといった新関数は、どれもこのスピルの上で動きます、結果が複数セルへ自動で広がるのが前提なので、まずスピルの感覚をつかんでおくと理解が早いです</p>
</div></div>



<p class="wp-block-paragraph">Microsoft 365での提供時期でいうと、動的配列は<strong>2020年初頭(最新チャネルでは2020年1月)</strong>に展開されました、それが2021年10月の買い切り版Excel 2021に取り込まれた、という流れです</p>



<p class="wp-block-paragraph">逆に言うと、2021より前の買い切り版にはスピルがありません、同じ数式を打っても1セル分の結果しか返らない(あるいは#SPILL!のような形にならない古い挙動になる)ので、以前のバージョンからExcel 2021に乗り換えていちばん体感が変わるのがこのあたりです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>新関数の土台がスピルなので、まずはここだけ押さえてみてください</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06-1024x537.png" alt="Excel 2021のスピルで数式の結果が複数セルへ広がる様子" class="wp-image-4807" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h34_06.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Excel 2021の注目の新関数(利用頻度の高い順)</h2>



<p class="wp-block-paragraph">ここがExcel 2021の目玉です、よく使う順にXLOOKUP・FILTER・UNIQUE・SORT・SEQUENCE・LETの6つを見ていきます、どれも以前のバージョンには無く、Excel 2021で初めて買い切り版に入った関数です</p>



<h3 class="wp-block-heading">XLOOKUP VLOOKUPの後継として一番使う関数</h3>



<p class="wp-block-paragraph">新関数のなかで真っ先に覚えたいのが<strong><span class="swl-marker mark_yellow">XLOOKUP</span></strong>です、長年おなじみのVLOOKUP・HLOOKUPの後継にあたる検索関数で、表から目的の値を引っぱってくる用途で使います</p>



<p class="wp-block-paragraph">VLOOKUPで地味に困っていた点が、XLOOKUPではかなり解消されています、おもな違いは次のとおりです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>探す列と返す列を別々に指定できる、VLOOKUPのように「左から何列目」と数えなくてよい</li>



<li>既定が完全一致なので、うっかり近似一致で誤った値を拾う事故が減る</li>



<li>検索値が見つからないときの代わりの値(見つかりませんでした等)を引数で指定できる</li>



<li>左方向への検索や、複数列をまとめて返す配列指定もできる</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない時の値])

例: =XLOOKUP(&quot;りんご&quot;, A2:A100, C2:C100, &quot;該当なし&quot;)
    A列から「りんご」を探して、同じ行のC列の値を返す
    見つからなければ「該当なし」を表示する</code></pre></div>



<p class="wp-block-paragraph">VLOOKUPだと「列番号を後から数え直す」「列を挿入したら番号がズレる」といった面倒がつきものでした<br>XLOOKUPは範囲そのものを指定するので、列の増減に強いのが実務でうれしいところです</p>



<p class="wp-block-paragraph">実際に<strong>VLOOKUPからの書き換え</strong>で何が変わるか、同じ「商品コードから単価を引く」処理を並べてみます<br>VLOOKUPは表の左から数えた列番号(下の例なら3列目)を手で指定するので、間に列が増えると番号がズレて壊れます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="VLOOKUP → XLOOKUP"><code>VLOOKUP: =VLOOKUP(D2, A2:C100, 3, FALSE)
         A〜C列の左端から3列目を「3」と数えて指定する

XLOOKUP: =XLOOKUP(D2, A2:A100, C2:C100)
         探す列(A列)と返す列(C列)を別々に指定するだけ</code></pre></div>



<p class="wp-block-paragraph">XLOOKUPは「探す列」と「返す列」を直接指定するので、列番号を数える作業そのものが消えます<br>列を1本足しても範囲を選び直すだけで済むので、テンプレートを長く使い回す表ほど壊れにくくなるのが利点です</p>



<p class="wp-block-paragraph">実務だと、商品マスタから単価を引く・社員番号から所属を引く・コードから名称に変換する、といった<strong>突き合わせ作業</strong>のほとんどがXLOOKUPで片づきます<br>見つからないときの表示も引数で指定できるので、空欄やエラー値のまま放置しにくいのも地味に助かるところです</p>



<p class="wp-block-paragraph">Microsoft 365での一般提供は<strong>2020年2月10日</strong>に告知され、その後春までに最新チャネルへ広がりました<br>これが買い切り版のExcel 2021に取り込まれています<br>なお<strong><span class="swl-marker mark_yellow" style="color:#e8313b">XLOOKUPは以前のバージョンでは使えませんでした</span></strong><br>買い切り版で使いたいならExcel 2021以降が必要です</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>VLOOKUPの列番号ズレに泣いた人ほど、XLOOKUPのありがたみが分かるはずです</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">FILTER 条件に合う行だけ自動で抜き出す</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">FILTER</span></strong>は、表から条件に合う行だけを抜き出してくれる関数です、これまでオートフィルターやピボットテーブルでやっていた絞り込みを、数式1つで実現できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=FILTER(対象範囲, 条件, [一致しない時の値])

例: =FILTER(A2:C100, B2:B100=&quot;東京&quot;, &quot;なし&quot;)
    B列が「東京」の行だけをA〜C列ごと抜き出す</code></pre></div>



<p class="wp-block-paragraph">抜き出した結果はスピルで下へ広がるので、元データを更新すると絞り込み結果も自動で追従します<br>手動でフィルターをかけ直す手間がなくなるのが大きい利点です</p>



<p class="wp-block-paragraph">たとえば1枚の売上台帳から「東京分だけの一覧」「未入金だけの一覧」を別シートに出しておきたい場面で効きます<br>台帳に行を追加すれば各シートの抜き出し結果も<strong>その場で自動更新</strong>されるので、毎月フィルターを掛け直して貼り付ける作業から解放されます<br>条件を複数組み合わせたいときは、条件部分を掛け算でつなげば「東京かつ未入金」のような絞り込みもできます</p>



<p class="wp-block-paragraph">FILTERを含む6つの動的配列関数(FILTER・SORT・SORTBY・UNIQUE・SEQUENCE・RANDARRAY)は、スピルの基盤と同じく<strong>2020年初頭(最新チャネルでは2020年1月)</strong>にMicrosoft 365へ提供され、Excel 2021に取り込まれました</p>



<h3 class="wp-block-heading">UNIQUE 重複を除いた一覧をサッと作る</h3>



<p class="wp-block-paragraph"><strong>UNIQUE</strong>は、範囲から重複を取り除いて、ユニークな値の一覧を返す関数です、「重複の削除」機能を使わなくても、数式で重複なしのリストを作れます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=UNIQUE(A2:A100)
    A列の中から重複を除いた値の一覧を返す</code></pre></div>



<p class="wp-block-paragraph">たとえば顧客名や商品名の重複なしリストを作りたいとき、UNIQUEなら元データが増えても自動で一覧が更新されます<br>FILTERと組み合わせると「特定条件の重複なし一覧」も作れるので、地味ながら出番の多い関数です</p>



<p class="wp-block-paragraph">集計の下ごしらえで重宝するのもこの関数です<br>たとえばSUMIFやCOUNTIFで集計したいとき、まずUNIQUEで「集計の見出しになる項目(店舗名や月など)」の一覧を作っておくと、その横に集計式を並べるだけで表が組めます<br>項目が増えても見出し側が自動で伸びるので、作り直しの少ない集計表になります</p>



<h3 class="wp-block-heading">SORT 並べ替えを数式で固定する</h3>



<p class="wp-block-paragraph"><strong>SORT</strong>は、範囲を並べ替えた結果を返す関数です、リボンの並べ替え機能と違って、元データを直接いじらずに「並べ替えた状態のコピー」を別の場所へ出せます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=SORT(A2:B100, 2, -1)
    A〜B列を、2列目を基準に降順(-1)で並べ替えて返す</code></pre></div>



<p class="wp-block-paragraph">元データを更新すれば並べ替え結果も自動で付いてくるので、ランキング表のように「常に上位順で見せたい」場面に向いています<br>似た関数にSORTBY(別の列を基準に並べ替える)もあります</p>



<p class="wp-block-paragraph">元の台帳は入力した順のまま触らず、見せる用のシートだけ売上の高い順に並べたい、というときに向いています<br>FILTERで絞り込んだ結果をさらにSORTで並べ替える、といった重ねがけもできるので、「東京分を売上の多い順に」のような表示用の表をワンセットで作れます</p>



<h3 class="wp-block-heading">SEQUENCE 連番や日付の並びを一発で作る</h3>



<p class="wp-block-paragraph"><strong>SEQUENCE</strong>は、連続した数値の並びを作る関数です、1から10までの連番や、等間隔の数列をスピルで一気に生成できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=SEQUENCE(10)        1〜10の連番を縦に作る
=SEQUENCE(5, 1, 100, 10)  100から10ずつ増える5個の数列</code></pre></div>



<p class="wp-block-paragraph">連番をオートフィルでドラッグして作る手間が省けるほか、ほかの関数と組み合わせて「指定日数ぶんの日付一覧」を作るような使い方もできます<br>利用頻度はXLOOKUPやFILTERほどではないものの、覚えておくと便利な関数です</p>



<p class="wp-block-paragraph">たとえば月初の日付に SEQUENCE を足し合わせると、その月の<strong>カレンダーや日報のひな型</strong>を一発で並べられます<br>行数を変えたいときも数式の数字を直すだけなので、ドラッグでコピーしてマス目がズレる事故が起きにくいのが利点です</p>



<h3 class="wp-block-heading">LET 長い数式に名前を付けて読みやすくする</h3>



<p class="wp-block-paragraph">最後は中級者向けの<strong>LET</strong>です、数式の途中で使う計算結果に名前を付けて、その名前を式の中で何度も使い回せる関数です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-none" data-lang="数式の例"><code>=LET(税抜, A1*B1, 税抜 + 税抜*0.1)
    A1*B1の結果を「税抜」と名付け、その値を再利用する</code></pre></div>



<p class="wp-block-paragraph">同じ計算を何度も書かずに済むので、長くなりがちな数式が読みやすくなり、再計算の負荷も減らせます<br>初心者のうちは優先度低めですが、複雑な数式を組むようになると効いてくる関数です</p>



<p class="wp-block-paragraph">同じ中間結果を1つの数式の中で何度も参照する場面、たとえば割引後の金額をベースに税額も合計も出すような式で効きます<br>名前を付けておけば後から式を読み返したときに「この計算は何だっけ」となりにくいので、自分以外の人が触る表を作るときにも向いています</p>



<p class="wp-block-paragraph">LETのMicrosoft 365での一般提供は<strong>2020年後半(11月ごろ、最新チャネル)</strong>とされています、これも2021年10月の買い切り版に取り込まれました</p>



<p class="wp-block-paragraph">なお、ここで挙げた以外に<strong>XMATCH</strong>(MATCHの強化版、配列の中で位置を返す)もExcel 2021で新たに使えます、XLOOKUPと同じ時期にMicrosoft 365へ入った検索系の関数で、MATCHを使い込んでいる方なら出番があります</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">関数つながりで、文字列を正規表現で扱う関数についてもまとめています(こちらは2024年からの機能です)、興味があれば<a href="https://javeo.jp/excel-regex/" target="_blank" rel="noopener noreferrer">ExcelのREGEX関数3つの使い方</a>もどうぞ</p>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>まずはXLOOKUPとFILTER、この2つだけでも作業がだいぶ変わりますよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29-1024x537.png" alt="Excel 2021のXLOOKUPで別の表から値を引く数式バーと結果" class="wp-image-4808" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h41_29.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">共同編集まわり 複数人で同時に作業する仕組み</h2>



<p class="wp-block-paragraph">関数の次に大きい変化が、複数人での作業を支える機能です、Excel 2021では共同編集・自動保存・シートビュー・刷新されたコメントが使えるようになりました</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">このセクションの機能は<strong>OneDriveやSharePointにファイルを保存しているのが前提</strong>です、ローカルのPCに置いたファイルだけで使う方には縁が薄いかもしれません、また企業向けのボリュームライセンス版(Excel LTSC 2021)には含まれない点にも注意です</p>
</div></div>



<h3 class="wp-block-heading">共同編集 同じブックを複数人で同時に開ける</h3>



<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow">共同編集(co-authoring)</span></strong>は、同じExcelブックを複数人で同時に開いて編集できる機能です、誰かがセルを書き換えると、その変更が数秒で他の人の画面にも反映されます、誰がどこを触っているかも色付きのカーソルで分かります</p>



<p class="wp-block-paragraph">「ファイルを共有フォルダに置いて、開いている人がいたら閉じるまで待つ」というやり取りが減るのが利点です<br>Microsoft 365のデスクトップ版では<strong>2017年</strong>ごろに導入され、Excel 2021でも買い切り版として使えるようになりました</p>



<p class="wp-block-paragraph"><strong>使い始めの一歩</strong>はシンプルで、まず編集したいブックをローカルではなくOneDriveに保存します<br>あとは画面右上の「共有」ボタンから相手のメールアドレスを入れてリンクを送れば、相手がそのリンクを開いた時点で同時編集が始まります<br>SharePointのチームサイトに置いたファイルでも同じ流れで共有でき、社内のメンバーとならこちらの方が配りやすいことも多いです</p>



<h3 class="wp-block-heading">自動保存 数秒ごとに勝手に保存される</h3>



<p class="wp-block-paragraph"><strong>自動保存(AutoSave)</strong>は、OneDriveやSharePoint上のファイルを数秒ごとに自動で保存してくれる機能です、画面左上のトグルがオンになっていると、こまめに保存し続けてくれます</p>



<p class="wp-block-paragraph">「保存し忘れて作業が飛んだ」という事故が減る半面、上書きされたくないファイルはオフにする判断もいります<br>クラウド保存が前提の機能なので、ローカル保存のファイルでは従来どおり手動保存(Ctrl + S)になります</p>



<h3 class="wp-block-heading">シートビュー 自分用の表示を他人に影響させない</h3>



<p class="wp-block-paragraph"><strong>シートビュー(Sheet Views)</strong>は、自分専用の並べ替えやフィルターの表示を作れる機能です、共同編集で同じシートを見ているとき、誰かがフィルターをかけると全員の表示が変わってしまう、という困りごとを避けられます</p>



<p class="wp-block-paragraph">自分はAさん分だけ絞り込んで見たい、でも他の人の表示は崩したくない、そんな場面で役立ちます、これもクラウド保存・共同編集とセットで効いてくる機能です</p>



<h3 class="wp-block-heading">刷新されたコメントと@メンション</h3>



<p class="wp-block-paragraph">Excel 2021では、コメント機能が刷新されました、返信を重ねてスレッドのように会話できる<strong>近代的コメント(Modern comments)</strong>になり、<strong>@メンション</strong>で特定の相手を呼ぶと通知が飛ぶようになっています</p>



<p class="wp-block-paragraph">コメントをスレッド状にする発想自体は以前のExcelにもありましたが、@メンション通知込みで刷新されたコメントが2021前半にMicrosoft 365へ展開され、それがExcel 2021に乗っています<br>あわせて「メモ」と「コメント」が別物として扱われるようになっていて、ちょっとした覚え書きはメモ、相手とのやり取りはコメント、と使い分ける形です</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>このへんはOneDrive保存が条件、ローカル中心の人はスルーで大丈夫ですよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21-1024x537.png" alt="Excel 2021の刷新されたコメント機能でやり取りが続く画面" class="wp-image-4809" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-25_21h44_21.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">データ型・グラフはどう変わった？ 誤解しやすい点を整理</h2>



<p class="wp-block-paragraph">ここは「2021の新機能だと思われがちだけど実はそうでもない」ところなので、誤解を解く意味で整理しておきます</p>



<p class="wp-block-paragraph">まずグラフについて、<strong>じょうごグラフやマップ(塗り分け)グラフは、2021より前のバージョンで既に搭載済み</strong>です、新しいグラフ=2021、というイメージを持っている方もいますが、これらは以前から使える機能なので、2021で初めて加わったわけではありません</p>



<p class="wp-block-paragraph">同じく、文字列を結合するCONCATやTEXTJOIN、条件分岐のIFSやSWITCH、集計のMAXIFS・MINIFSといった関数も、すべて<strong>もっと前のバージョンで追加済み</strong>です、2021の動的配列系の新関数(XLOOKUPやFILTERなど)と混ざりやすいので、ここで切り分けておきます</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" class="wp-block-table is-style-stripes"><table style="--table-width:700px;"><thead><tr><th>機能・関数</th><th>初登場(買い切り版)</th></tr></thead><tbody><tr><td>じょうごグラフ / マップグラフ</td><td>以前のバージョン(2021より前)</td></tr><tr><td>CONCAT / TEXTJOIN / IFS / SWITCH / MAXIFS / MINIFS</td><td>以前のバージョン(2021より前)</td></tr><tr><td>XLOOKUP / 動的配列(スピル)/ FILTER / UNIQUE / SORT / LET</td><td>Excel 2021</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">もう1つ、よく話題にあがる<strong>リンクされたデータ型(株価・地理)</strong>についてです、セルに会社名や地名を入れて、関連データを引っぱってこられる機能ですね</p>



<p class="wp-block-paragraph">これは以前のバージョンから使えるようになった機能で、Excel 2021固有の目玉ではありません<br>どの版から正式に使えるかは情報源によって書き方が分かれていて、線引きがはっきりしないところがあります<br>なので「2021の新機能」として強く打ち出すのは避けて、参考程度に押さえておくのがよさそうです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>新グラフやCONCATを「2021の新機能」と紹介してる記事もあるけど、あれは以前から使える機能ですよ</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">その他の改善 パフォーマンスや見た目もよくなった</h2>



<p class="wp-block-paragraph">派手さは無いものの、使っていると地味に効いてくる改善もまとめておきます</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>パフォーマンス改善</strong> SUMIF・COUNTIF・AVERAGEIFといったよく使う関数の計算が速くなっています、特に意識しなくても恩恵を受けられる部分です</li>



<li><strong>アクセシビリティ リボン</strong> 読み上げ対応など、誰でも読みやすい文書を作るための道具が1か所にまとまりました(Office 2021全体の改善です)</li>



<li><strong>見た目の刷新</strong> ダークモードや、Office 2021全体の視覚的なリフレッシュ(配色やアイコンの整理)も入っています</li>
</ul>



<p class="wp-block-paragraph">パフォーマンス改善はExcel 2021の新機能として案内されているもので、具体的に何倍速くなったといった数字は公式に出ていないので、ここでは「速くなった」とだけ押さえておきます、アクセシビリティや見た目はExcel単独というよりOffice 2021全体の話なので、ついでに良くなった枠として捉えるのがちょうどいいです</p>



<h2 class="wp-block-heading">まとめ Excel 2021は関数の進化が主役</h2>



<p class="wp-block-paragraph">Excel 2021で増えた新機能を、もう一度ざっくり振り返ります</p>



<ul style="background-color:#f3fafe80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li>いちばんの目玉は<strong>動的配列(スピル)とXLOOKUP・FILTERなどの新関数</strong>、表計算の組み立て方が変わる</li>



<li>共同編集・自動保存・シートビュー・刷新コメントで<strong>複数人作業がしやすくなった</strong>(OneDrive保存が前提)</li>



<li>じょうごグラフ・CONCAT系は<strong>以前のバージョンで既存</strong>、2021の新機能ではない点に注意</li>



<li>新機能はまずMicrosoft 365に入り、後から買い切り版(2021は2021年10月)へ取り込まれる</li>
</ul>



<p class="wp-block-paragraph">まず触ってみてほしいのは、やはりXLOOKUPと動的配列まわりです、VLOOKUPの面倒だった部分が解消され、絞り込みや並べ替えも数式だけで完結するようになるので、日々の作業がかなりラクになります</p>



<p class="wp-block-paragraph">このシリーズでは、続けて「Excel 2024で2021から何が変わったか」と「Microsoft 365限定の機能+全体の変遷タイムライン」も近日公開予定です、買い切り版のどの世代で何が使えるのか、全体像をつかみたい方は合わせて読んでもらえればと思います</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/excel-2021-new-features/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SeleniumVBAの使い方 実践コード集【VBA】</title>
		<link>https://javeo.jp/selenium-vba-code/</link>
					<comments>https://javeo.jp/selenium-vba-code/#comments</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 14:38:52 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4571</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/selenium-vba-code-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>SeleniumVBAで実際によく書くコードを実践編としてまとめました、要素の探し方をBy.CssSelectorに寄せるコツ、クリックや入力・待機やIsPresentでの存在チェック・プルダウン・複数要素ループ・スクショ・JS実行、そして便利なヘルパー関数まで、コピペで使える形で解説します]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/selenium-vba-code-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">SeleniumVBAを入れてみたものの、「で、実際にやりたい操作はどう書くの？」というところで止まっていませんか？</p>



<p class="wp-block-paragraph">導入と基本の流れは前の記事「<a href="https://javeo.jp/selenium-vba/" target="_blank" rel="noopener noreferrer">Excelでもブラウザ操作！SeleniumVBAの使い方</a>」で書いたので、この記事は<strong><span class="swl-marker mark_yellow">実際に書くコードに集中した実践編</span></strong>です、導入はそちらで済んでいる前提で進めます</p>



<p class="wp-block-paragraph">クリックや入力、待機、要素の存在チェック、プルダウン、複数要素のループ、スクショ、JavaScript実行…と、ブラウザ自動化で「結局これ毎回書くよね」というコードをまとめました、私が普段よく使う書き方をベースにしているので、コピペして手を入れながら使ってもらえればと思います</p>



<p class="wp-block-paragraph">最初に一番だいじな「要素の探し方」から見ていきます、ここを <strong>By.CssSelector</strong> に寄せておくと、あとがぐっとラクになります</p>



<h2 class="wp-block-heading">要素の探し方は By.CssSelector に寄せる</h2>



<p class="wp-block-paragraph">SeleniumVBAで要素を探すときは <strong>FindElement(By.X, &#8220;値&#8221;)</strong> という形で書きます、この <strong>By</strong> には id・class・name・タグ名・CSSセレクタ・XPath…と何種類か指定できるんですが、初心者のうちは全部覚えようとしなくて大丈夫です</p>



<p class="wp-block-paragraph">個人的なおすすめは、<strong><span class="swl-marker mark_yellow">基本は By.CssSelector ひとつに寄せる</span></strong>やり方です、CSSセレクタはWeb制作でも使う書き方で、id・class・属性・子孫…とだいたいの探し方をこれ1本でカバーできます、覚えることが減るぶん、つまずきにくくなります</p>



<p class="wp-block-paragraph">「探したいもの」と「CSSセレクタの書き方」を対応表にするとこんな感じです</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" class="wp-block-table is-style-stripes"><table style="--table-width:800px;"><thead><tr><th>探したいもの</th><th>CSSセレクタ</th><th>例</th></tr></thead><tbody><tr><td>id で探す</td><td>#id名</td><td>#search</td></tr><tr><td>class で探す</td><td>.class名</td><td>.btn</td></tr><tr><td>name 属性で探す</td><td>[name=&#8217;値&#8217;]</td><td>[name=&#8217;q&#8217;]</td></tr><tr><td>タグ名で探す</td><td>タグ名</td><td>div</td></tr><tr><td>属性で探す</td><td>タグ[属性=&#8217;値&#8217;]</td><td>input[type=&#8217;text&#8217;]</td></tr><tr><td>子孫をたどる(スペース)</td><td>.親 .子</td><td>.list .item</td></tr><tr><td>直下の子に限定(&gt;)</td><td>.親 &gt; .子</td><td>.list &gt; .item</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">そして、これらを<strong>スペース(子孫)</strong>や<strong>「&gt;」(直下の子)</strong>でつなげられるのがCSSセレクタの強みです、階層をたどって狙った要素をピンポイントに指定できるので、似た要素がたくさんあるページほどここが効いてきます</p>



<p class="wp-block-paragraph">属性での絞り込み(<strong>[id^=]</strong>など)や <strong>:not</strong>・<strong>:nth-child</strong> といったCSSセレクタ自体の書き方は、別記事「<a href="https://javeo.jp/css-selector/" target="_blank" rel="noopener noreferrer">CSSセレクタの書き方 自動化で要素を狙う指定方法</a>」に詳しくまとめたので、狙った要素がうまく取れないときはこちらもどうぞ</p>



<p class="wp-block-paragraph">たとえば id が &#8220;search&#8221; の検索ボックスを探すなら、こう書けます、<strong>By.Name</strong> や <strong>By.ID</strong> を使い分けなくても、CSSセレクタの書き方を変えるだけで済むのがラクなところです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' id が search の要素を探す
Dim el As WebElement
Set el = driver.FindElement(By.CssSelector, "#search")

' name 属性が q の要素を探す(Googleの検索ボックスなど)
Set el = driver.FindElement(By.CssSelector, "[name='q']")</code></pre></div>



<p class="wp-block-paragraph">ちなみに <strong>FindElementByCssSelector(&#8220;#search&#8221;)</strong> のように、Byを書かずに呼べるショートカットのメソッドも用意されています、どちらでも結果は同じなので、書きやすい方で大丈夫です</p>



<h3 class="wp-block-heading">CSSで足りないとき … テキスト検索はループ、親だけXPath</h3>



<p class="wp-block-paragraph">正直に書いておくと、CSSセレクタは「要素の中の文字で探す」のと「子から親へさかのぼる」のが苦手です、SeleniumVBAには <strong>By.LinkText</strong> や <strong>By.XPath</strong> もあるので手っ取り早くはそれを使えばいいんですが、<strong><span class="swl-marker mark_yellow">By.CssSelectorに寄せ切りたいなら、テキスト検索は独自functionで再現できます</span></strong></p>



<p class="wp-block-paragraph">考え方はシンプルで、<strong>CSSで候補を集めて、VBAでループしながらtext一致を探す</strong>だけです、まずはリンクを表示文字で探す関数、全aタグを集めてループするので、これで <strong>By.LinkText</strong> の代わりになります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' リンクを表示文字で探す(全aタグをループしてtext一致・LinkTextの代わり)
Public Function FindLinkByText(driver As WebDriver, ByVal keyword As String) As WebElement
    Dim els As WebElements, el As WebElement
    Set els = driver.FindElements(By.CssSelector, "a")
    For Each el In els
        If InStr(el.GetText, keyword) &gt; 0 Then
            Set FindLinkByText = el
            Exit Function
        End If
    Next el
    Set FindLinkByText = Nothing   ' 見つからなければ Nothing
End Function</code></pre></div>



<p class="wp-block-paragraph">同じ考え方を、リンク以外の要素にも広げたのがこちらです、探す範囲のCSSセレクタとキーワードを渡すと、その中からtext一致の要素を返します、<strong>「送信」という文字のボタン</strong>のような、<strong>By.XPath</strong> でやりがちなテキスト検索を、CSSとループだけで書けます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 指定CSSの要素をループして表示文字で探す(XPathを使わずtext一致)
Public Function FindByText(driver As WebDriver, ByVal cssSel As String, _
                           ByVal keyword As String) As WebElement
    Dim els As WebElements, el As WebElement
    Set els = driver.FindElements(By.CssSelector, cssSel)
    For Each el In els
        If InStr(el.GetText, keyword) &gt; 0 Then
            Set FindByText = el
            Exit Function
        End If
    Next el
    Set FindByText = Nothing
End Function

' 使い方(button の中からテキスト「送信」を探す)
' FindByText(driver, "button", "送信").Click</code></pre></div>



<p class="wp-block-paragraph">これで、リンク文字もテキスト一致も <strong>By.CssSelector</strong> ＋ループで書けるので、覚える <strong>By</strong> を増やさずに済みます</p>



<p class="wp-block-paragraph">そして、<strong><span class="swl-marker mark_yellow">CSSでもループでも唯一どうにもならないのが、子から親へさかのぼる逆引き</span></strong>です、CSSは子孫しか選べないので、ここだけは <strong>By.XPath</strong> の <strong>&#8220;..&#8221;</strong>(親を表す書き方)を使います</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 見つけた要素から親をたどる(CSSでは無理・XPathの ".." を使う)
Dim child As WebElement, parent As WebElement
Set child = driver.FindElement(By.CssSelector, "#price")

' その要素を起点に ".." で親要素を取る
Set parent = child.FindElement(By.XPath, "..")</code></pre></div>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">整理すると、<strong>子・孫への絞り込み</strong>はCSSセレクタ、<strong>テキストで探す</strong>のはCSSセレクタ＋ループの独自function、<strong>子から親への逆引き</strong>だけがXPathの <strong>&#8220;..&#8221;</strong>、という棲み分けです、ほぼCSSに寄せておいて、親をたどるときだけXPathを出す、くらいの感覚でちょうどいいと思います</p>
</div></div>



<h2 class="wp-block-heading">よく使う操作コード集</h2>



<p class="wp-block-paragraph">ここからは、見つけた要素に対して「何をするか」のコードをまとめていきます、どれも前の記事の基本コード(<strong>StartChrome → OpenBrowser → NavigateTo</strong> でページを開いたあと)の流れの中で使う想定です</p>



<h3 class="wp-block-heading">クリックする・文字を入力する</h3>



<p class="wp-block-paragraph">クリックは <strong>Click</strong>、文字入力は <strong>SendKeys</strong> です、入力欄に元から入っている文字を消したいときは、<strong>SendKeys</strong> の <strong>clearBeforeTyping</strong> を True にするか、先に <strong>Clear</strong> を呼びます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' ボタンをクリック
driver.FindElement(By.CssSelector, ".btn-search").Click

' 入力欄に文字を打ち込む
driver.FindElement(By.CssSelector, "[name='q']").SendKeys "SeleniumVBA"

' 元の文字を消してから入力(clearBeforeTyping)
driver.FindElement(By.CssSelector, "#keyword").SendKeys "新しい値", clearBeforeTyping:=True

' 入力欄を空にするだけ
driver.FindElement(By.CssSelector, "#keyword").Clear

' フォームを送信する
driver.FindElement(By.CssSelector, "#keyword").Submit</code></pre></div>



<h3 class="wp-block-heading">テキスト・属性・CSSを取り出す</h3>



<p class="wp-block-paragraph">表示テキストを取るのは <strong>GetText</strong>、リンク先(href)などの属性は <strong>GetAttribute</strong>、文字色などの見た目は <strong>GetCSSProperty</strong> で取れます、メソッド名を間違えやすいところなので、ここはまとめて覚えておくと安心です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim el As WebElement
Set el = driver.FindElement(By.CssSelector, "#title")

' 表示テキストを取る
Debug.Print el.GetText

' 属性を取る(リンク先の href など)
Debug.Print el.GetAttribute("href")

' 見た目のCSS値を取る(文字色など)
Debug.Print el.GetCSSProperty("color")

' 中のHTMLやタグ名を取りたいとき
Debug.Print el.GetInnerHTML
Debug.Print el.GetTagName

' 表示・有効・選択の状態を真偽値で取れる
Debug.Print el.IsDisplayed
Debug.Print el.IsEnabled
Debug.Print el.IsSelected</code></pre></div>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">名前を取り違えやすいので注意です、テキストは <strong>.Text</strong> ではなく <strong>GetText</strong>(メソッド)、CSS値は <strong>GetCSSProperty</strong> で取ります、PythonのSeleniumと名前が少し違うので、ここは間違えやすいポイントです</p>
</div></div>



<h3 class="wp-block-heading">待機する(ImplicitMaxWait が基本)</h3>



<p class="wp-block-paragraph">ブラウザ自動化でハマりやすいのが「要素がまだ表示されていないのに探しにいって失敗する」パターンです、対策の基本が <strong>ImplicitMaxWait</strong> です</p>



<p class="wp-block-paragraph">これを設定しておくと、<strong><span class="swl-marker mark_yellow">以降の FindElement が、要素が出てくるまで自動でリトライしながら待ってくれます</span></strong>、ページ表示がもたつくサイトでも、これだけでだいぶ安定します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 以降の FindElement は、最大10秒まで要素を待つ(ミリ秒指定)
driver.ImplicitMaxWait = 10000

' 単純にその場で止めたいだけなら Wait(ミリ秒)
driver.Wait 1000   ' 1秒待つ</code></pre></div>



<p class="wp-block-paragraph"><strong>ImplicitMaxWait</strong> は「要素が出るまで待つ賢い待機」、<strong>Wait</strong> は「とにかく指定ミリ秒止まる」だけのシンプルな待機です、基本は <strong>ImplicitMaxWait</strong> を最初に1回セットしておき、どうしても固定で待ちたい場面だけ <strong>Wait</strong> を足す、という使い分けがおすすめです</p>



<h3 class="wp-block-heading">要素があるか確認する(IsPresent)</h3>



<p class="wp-block-paragraph">覚えておきたいのが、<strong>FindElement</strong> は要素が見つからないとエラーになる、という点です、なので「あるかどうか分からない要素」を相手にするときは、いきなり <strong>FindElement</strong> しないほうが安全です</p>



<p class="wp-block-paragraph">そこで使うのが <strong>IsPresent</strong> です、これは要素があるかどうかを <strong>True / False</strong> で返してくれるので、エラーで止まらずに分岐できます、第3引数で「この要素は最大何ミリ秒待つか」も指定できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 要素があるかを True / False で確認する
If driver.IsPresent(By.CssSelector, ".alert") Then
    Debug.Print "アラートが出ています"
End If

' 待ち時間を指定しつつ、見つかった要素を受け取る
Dim el As WebElement
If driver.IsPresent(By.CssSelector, "#result", 5000, , el) Then
    Debug.Print el.GetText   ' 見つかったときだけ使う
End If</code></pre></div>



<p class="wp-block-paragraph">最後の引数に <strong>ByRef</strong> で変数を渡すと、見つかった要素をそのまま受け取れます、「あるか確認 → あれば使う」を1回で書けるので、地味に便利です</p>



<h3 class="wp-block-heading">プルダウン(select)を選ぶ</h3>



<p class="wp-block-paragraph">プルダウン(select要素)は、専用のメソッドで選べます、表示文字で選ぶ <strong>SelectByVisibleText</strong>、値で選ぶ <strong>SelectByValue</strong>、順番で選ぶ <strong>SelectByIndex</strong> の3つを覚えておけば十分です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim sel As WebElement
Set sel = driver.FindElement(By.CssSelector, "#prefecture")

' 表示されている文字で選ぶ
sel.SelectByVisibleText "東京都"

' value 属性の値で選ぶ
sel.SelectByValue "13"

' 上から数えた順番で選ぶ(0始まり)
sel.SelectByIndex 0</code></pre></div>



<h3 class="wp-block-heading">複数の要素をまとめて取る・ループする</h3>



<p class="wp-block-paragraph">1つではなく、条件に合う要素を<strong>全部</strong>取りたいときは <strong>FindElements</strong>(複数形)を使います、これは要素のコレクションを返すので、<strong>For Each</strong> でぐるっと回せます、一覧ページから値をまとめて拾うときの定番です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim els As WebElements
Dim el As WebElement

' class="item" の要素を全部取る
Set els = driver.FindElements(By.CssSelector, ".item")

For Each el In els
    Debug.Print el.GetText
Next el</code></pre></div>



<h3 class="wp-block-heading">表をまるごとExcelに取り込む</h3>



<p class="wp-block-paragraph">VBAでブラウザを動かす一番のうまみが、<strong><span class="swl-marker mark_yellow">取ってきた値をそのままExcelに書き出せる</span></strong>ことです、ページの表(table要素)なら、<strong>TableToArray</strong> で2次元配列にできるので、シートへの貼り付けがかなりラクになります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' ページの表を2次元配列にして、シートに一気に貼る
Dim tbl As WebElement
Set tbl = driver.FindElement(By.CssSelector, "table#data")

Dim arr As Variant
arr = tbl.TableToArray

Range("A1").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1).Value = arr

' 1セルずつ書きたいときは For Each で
Dim els As WebElements, el As WebElement, r As Long
Set els = driver.FindElements(By.CssSelector, ".price")
r = 1
For Each el In els
    Cells(r, 1).Value = el.GetText
    r = r + 1
Next el</code></pre></div>



<p class="wp-block-paragraph">逆に、Excelの一覧を読みながらページを順に開く、という回し方もできます、A列に並べたURLやIDを <strong>For</strong> で回して、そのつど <strong>NavigateTo</strong> でページを開けば、Excel主導のブラウザ自動化が組めます</p>



<h3 class="wp-block-heading">スクリーンショットを撮る</h3>



<p class="wp-block-paragraph">画面の証跡を残したいときは <strong>SaveScreenshot</strong> です、ページ全体・特定の要素だけ・縦に長いページの全体…と撮り分けられます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 表示中の画面を保存
driver.SaveScreenshot "C:\temp\shot.png"

' 縦に長いページ全体を保存(fullScreenShot)
driver.SaveScreenshot "C:\temp\full.png", , fullScreenShot:=True

' 特定の要素だけ保存
Dim el As WebElement
Set el = driver.FindElement(By.CssSelector, "#chart")
el.SaveScreenshot "C:\temp\chart.png"</code></pre></div>



<h3 class="wp-block-heading">iframe・タブを切り替える</h3>



<p class="wp-block-paragraph">ページの中に別ページが埋め込まれている <strong>iframe</strong> の中身は、そのままだと操作できません、<strong>SwitchToFrame</strong> で中に入って、終わったら <strong>SwitchToDefaultContent</strong> で元に戻ります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' iframe の中に入る
Dim frame As WebElement
Set frame = driver.FindElement(By.CssSelector, "iframe#content")
driver.SwitchToFrame frame

' iframe 内の要素を操作したあと、元のページに戻る
driver.SwitchToDefaultContent</code></pre></div>



<p class="wp-block-paragraph">タブやウィンドウの切り替えは <strong>Windows</strong> 経由で行います、タイトルやURLで目的のタブに移ったり、新しいタブを開いたりできます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' タイトルやURLで目的のタブへ切り替える
driver.Windows.SwitchToByTitle "注文一覧"
driver.Windows.SwitchToByUrl "https://example.com/orders"

' 次のタブへ・新しいタブを開く
driver.Windows.SwitchToNext
driver.Windows.SwitchToNew windowType:=svbaTab</code></pre></div>



<h3 class="wp-block-heading">JavaScriptを実行する・スクロールする</h3>



<p class="wp-block-paragraph">標準のメソッドだけだと届かない操作は、<strong>ExecuteScript</strong> でJavaScriptを直接走らせて片付けられます、戻り値も受け取れるので、ちょっとした計算やページ内の値取得にも使えます</p>



<p class="wp-block-paragraph">JS側では、VBAから渡した引数を <strong>arguments[0]</strong> の形で受け取れます、よく使うのは「目的の要素まで画面をスクロールする」用途です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' JSを実行して戻り値を受け取る(5 * 10 = 50)
Dim ret As Variant
ret = driver.ExecuteScript("return arguments[0]*arguments[1];", 5, 10)
Debug.Print ret

' 指定した要素までスクロールする
Dim el As WebElement
Set el = driver.FindElement(By.CssSelector, "#footer")
driver.ExecuteScript "arguments[0].scrollIntoView(true);", el

' 画面を下に1000pxスクロールする
driver.ExecuteScript "window.scrollBy(0,1000);"</code></pre></div>



<h3 class="wp-block-heading">エンターキーなどの特殊キーを送る</h3>



<p class="wp-block-paragraph">検索ボックスに文字を打って、そのままエンターで検索したい…というのもよくあります、特殊キーは <strong>WebKeyboard</strong> を用意して、<strong>SendKeys</strong> の文字とつなげて送ります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim k As New WebKeyboard
Dim box As WebElement
Set box = driver.FindElement(By.CssSelector, "[name='q']")

' 検索語を打ってエンターキーで送信
box.SendKeys "SeleniumVBA" & k.ReturnKey

' Ctrl + A で入力欄を全選択する
box.SendKeys k.Chord(k.CtrlKey, "a")</code></pre></div>



<h3 class="wp-block-heading">ヘッドレス・起動オプションを付ける</h3>



<p class="wp-block-paragraph">画面を出さずに裏で動かす(ヘッドレス)や、起動時のオプションを足したいときは、<strong>StartChrome</strong> のあとに <strong>CreateCapabilities</strong> で設定オブジェクトを作って、<strong>OpenBrowser</strong> に渡します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim driver As New WebDriver
driver.StartChrome

Dim caps As WebCapabilities
Set caps = driver.CreateCapabilities

' 画面を出さずに動かす(ヘッドレス)
caps.RunInvisible

' 起動オプションを足す
caps.AddArguments "&#45;&#45;start-maximized"

' ダウンロード先と確認ダイアログの設定
caps.SetDownloadPrefs downloadFolderPath:="C:\dl\", promptForDownload:=False

' 設定を渡してブラウザを開く
driver.OpenBrowser caps</code></pre></div>



<p class="wp-block-paragraph">ヘッドレスにすると画面が出ないぶん動作が軽くなるので、定期実行や大量処理のときに向いています、ただ動作確認のうちは、画面を出したまま挙動を見ながら作るほうが安心です</p>



<h2 class="wp-block-heading">便利なヘルパー関数を用意しておく</h2>



<p class="wp-block-paragraph">同じような書き方を毎回くり返すなら、自分用の小さな関数(ヘルパー)にまとめておくと、コードがぐっと読みやすくなります、ここでは私がよく使うものを紹介します、どれも検証済みのメソッドだけで組んでいるので、そのままコピペして使えます</p>



<h3 class="wp-block-heading">TryFind … 無ければ Nothing を返す(エラーを出さない)</h3>



<p class="wp-block-paragraph">さっき書いたとおり <strong>FindElement</strong> は要素が無いとエラーになります、<strong>TryFind</strong> は <strong>IsPresent</strong> を使って、見つかれば要素を、無ければ <strong>Nothing</strong> を返します、「あるかどうか分からない要素」を扱うときの土台になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 存在チェック付き取得(無ければNothing・エラーを出さない)
Public Function TryFind(driver As WebDriver, ByVal sel As String, _
                        Optional ByVal waitMS As Long = 3000) As WebElement
    Dim el As WebElement
    If driver.IsPresent(By.CssSelector, sel, waitMS, , el) Then
        Set TryFind = el
    Else
        Set TryFind = Nothing
    End If
End Function</code></pre></div>



<h3 class="wp-block-heading">WaitFor … 出るまで待って、ダメなら明示エラー</h3>



<p class="wp-block-paragraph"><strong>WaitFor</strong> は逆に、「この要素は確実に出るはず」という場面用です、時間内に出れば返し、出なければ「何のセレクタで失敗したか」が分かるエラーを出します、原因が分からないまま止まるより、メッセージが残るぶんデバッグがラクになります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 要素が出るまで待って取得(ダメなら明示エラー)
Public Function WaitFor(driver As WebDriver, ByVal sel As String, _
                        Optional ByVal timeoutMS As Long = 10000) As WebElement
    Dim el As WebElement
    If driver.IsPresent(By.CssSelector, sel, timeoutMS, , el) Then
        Set WaitFor = el
    Else
        Err.Raise vbObjectError + 513, , "要素が見つかりません: " & sel
    End If
End Function</code></pre></div>



<h3 class="wp-block-heading">Css … By.CssSelector を短く書くラッパー</h3>



<p class="wp-block-paragraph">毎回 <strong>driver.FindElement(By.CssSelector, &#8220;&#8230;&#8221;)</strong> と書くのは長いので、<strong>Css(driver, &#8220;&#8230;&#8221;)</strong> だけで済むようにしたラッパーです、CSSセレクタに寄せる方針と相性がよく、本文のコードがかなりスッキリします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' By.CssSelector 短縮ラッパー
Public Function Css(driver As WebDriver, ByVal sel As String) As WebElement
    Set Css = driver.FindElement(By.CssSelector, sel)
End Function

' 使うとこう書ける
' Css(driver, ".btn-search").Click</code></pre></div>



<h3 class="wp-block-heading">SafeClick … 存在・表示・有効を確かめてからクリック</h3>



<p class="wp-block-paragraph">クリックは、要素はあっても「まだ表示されていない・押せない状態」だと失敗することがあります、<strong>SafeClick</strong> は <strong>IsPresent</strong> で存在を確かめ、さらに <strong>IsDisplayed</strong> と <strong>IsEnabled</strong> が True のときだけ <strong>Click</strong> します、押せないときに止まらず素通りするので、流れが安定します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 安全クリック(存在＋表示＋有効を確認してClick)
Public Sub SafeClick(driver As WebDriver, ByVal sel As String, _
                     Optional ByVal waitMS As Long = 5000)
    Dim el As WebElement
    If driver.IsPresent(By.CssSelector, sel, waitMS, , el) Then
        If el.IsDisplayed And el.IsEnabled Then el.Click
    End If
End Sub</code></pre></div>



<h3 class="wp-block-heading">スクロール系 … 最下部まで・要素を画面中央へ</h3>



<p class="wp-block-paragraph">スクロールまわりも、<strong>ExecuteScript</strong>でJavaScriptを走らせる独自functionにしておくと便利です、よく出番があるのが、遅延読み込みや無限スクロールのページで<strong><span class="swl-marker mark_yellow">最下部まで自動で送って中身を出し切る</span></strong>処理と、目的の要素を画面の真ん中まで持ってくる処理です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>' 最下部までオートスクロール(無限スクロール・遅延読み込み対策)
' 高さが伸びなくなったら読み切ったとみなして止まる
Public Sub ScrollToBottom(driver As WebDriver, _
                          Optional ByVal maxLoops As Long = 30, _
                          Optional ByVal waitMS As Long = 800)
    Dim lastH As Double, newH As Double, i As Long
    lastH = driver.ExecuteScript("return document.body.scrollHeight;")
    For i = 1 To maxLoops
        driver.ExecuteScript "window.scrollTo(0, document.body.scrollHeight);"
        driver.Wait waitMS
        newH = driver.ExecuteScript("return document.body.scrollHeight;")
        If newH = lastH Then Exit For
        lastH = newH
    Next i
End Sub

' 対象の要素を画面の中央へスクロール
Public Sub ScrollToCenter(driver As WebDriver, el As WebElement)
    driver.ExecuteScript "arguments[0].scrollIntoView({block:'center', inline:'center'});", el
End Sub</code></pre></div>



<p class="wp-block-paragraph"><strong>ScrollToBottom</strong>は、ページの高さが伸びなくなったら「もう読み切った」と判断して止まる作りなので、件数の読めない無限スクロールでも空回りしません、<strong>ScrollToCenter</strong>は要素を上端ではなく中央に置くので、固定ヘッダーに隠れて押せない…みたいなクリック事故も減らせます</p>



<h2 class="wp-block-heading">ハマりどころとTips</h2>



<p class="wp-block-paragraph">最後に、書きはじめのうちにつまずきやすいところを、軽くまとめておきます</p>



<ul class="wp-block-list is-style-note_list -list-under-dashed">
<li><strong>閉じ忘れに注意</strong> … 処理の終わりに <strong>CloseBrowser</strong> → <strong>Shutdown</strong> を呼ばないと、裏でWebDriverが残ることがあります、処理の最後に毎回呼ぶ形にしておくのがおすすめです</li>



<li><strong>まず ImplicitMaxWait をセット</strong> … 「要素がまだ無い」系のエラーは、最初に <strong>ImplicitMaxWait</strong> を入れておくだけでかなり減ります</li>



<li><strong>存在チェックは IsPresent で</strong> … 無いかもしれない要素を <strong>FindElement</strong> で取りにいくとエラーになります、迷ったら <strong>IsPresent</strong> で分岐するのが安全です</li>



<li><strong>メソッド名の取り違えに注意</strong> … 探すのは <strong>By.CssSelector</strong>(By.Cssではない)、テキストは <strong>GetText</strong>、CSS値は <strong>GetCSSProperty</strong> です、名前が紛らわしいので、ここはコピペで間違いを防ぐのがラクです</li>
</ul>



<p class="wp-block-paragraph">このあたりを押さえておけば、たいていの「動かない…」はかなり減らせると思います、あとは作りたい処理に合わせて、ここまでのコードを組み合わせていく感じです</p>



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



<p class="wp-block-paragraph">SeleniumVBAの実践コードを、ひととおり並べてみました、最後にポイントを整理しておきます</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>要素の探し方は <strong>By.CssSelector</strong> に寄せると覚えることが減る、リンク文字やテキスト検索はCSS＋ループの独自functionで再現でき、XPathが要るのは親への逆引き(<strong>&#8220;..&#8221;</strong>)だけ</li>



<li>操作は <strong>Click</strong> / <strong>SendKeys</strong> / <strong>GetText</strong> / <strong>GetAttribute</strong> が基本、待機は <strong>ImplicitMaxWait</strong> をまずセット</li>



<li>無いかもしれない要素は <strong>IsPresent</strong> で確認、プルダウンや複数要素・スクショ・JS実行も専用メソッドで書ける</li>



<li>よく使う処理は <strong>TryFind</strong> / <strong>WaitFor</strong> / <strong>Css</strong> / <strong>SafeClick</strong> のようにヘルパー関数化しておくと読みやすい</li>
</ul>



<p class="wp-block-paragraph">まだ導入が済んでいない方は、まず「<a href="https://javeo.jp/selenium-vba/" target="_blank" rel="noopener noreferrer">Excelでもブラウザ操作！SeleniumVBAの使い方</a>」で土台を作ってから、この記事のコードを動かしてみてください</p>



<p class="wp-block-paragraph">ドライバーの更新まわりで困ったときは「<a href="https://javeo.jp/vba-chromedriver-auto-update/" target="_blank" rel="noopener noreferrer">VBAでChromeDriverを自動更新する方法</a>」、これまでの定番だったSeleniumBasicから入りたい方は「<a href="https://javeo.jp/seleniumbasic-startup/" target="_blank" rel="noopener noreferrer">SeleniumBasicの導入方法</a>」も合わせて読んでもらえると、VBAでのブラウザ自動化がだいぶ見通しよくなると思います</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/selenium-vba-code/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Excelでもブラウザ操作！SeleniumVBAの使い方</title>
		<link>https://javeo.jp/selenium-vba/</link>
					<comments>https://javeo.jp/selenium-vba/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Thu, 04 Jun 2026 23:56:36 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[初心者]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4447</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/selenium-vba-1-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>Excelからブラウザを自動操作できるSeleniumVBAの導入・使い方を、ブラウザ自動化をやってきた立場でまとめました、SeleniumBasicとの違い(.NET不要・ドライバー自動更新)から基本コード、スクレイピングやRPAでの活かし方まで初心者向けに解説します]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/selenium-vba-1-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">「Excelからブラウザを動かして、面倒なWeb作業を自動化できたらいいのに…」と思ったこと、ありませんか？</p>



<p class="wp-block-paragraph">結論から言うと、<strong><span class="swl-marker mark_yellow">VBAからでもブラウザの自動操作はできます</span></strong>、そのための定番が「Selenium」という仕組みで、それをExcelやAccessのVBAから使えるようにしたのが今回の主役 <strong>SeleniumVBA</strong> です</p>



<p class="wp-block-paragraph">しかも、専用のRPAツールを買ったり、別のソフトをインストールしたりしなくても、<strong>手元のExcel(マクロ)の延長でブラウザ操作を始められる</strong>のが手軽なところです</p>



<p class="wp-block-paragraph">私はこれまで、VBAでもPythonでもブラウザ自動化をいろいろやってきました、VBA側だと長らく「SeleniumBasic」が定番だったんですが、こちらはもう更新が止まっていて、ドライバーの手動更新まわりで地味に手間がかかるんですよね</p>



<p class="wp-block-paragraph">その点 <strong>SeleniumVBA</strong> は、今もちゃんとメンテされていて、<strong><span class="swl-marker mark_yellow">ドライバーの更新まで自動でやってくれる</span></strong>のが大きいです、この記事では、SeleniumVBAとは何かから、導入・基本的な使い方・ドライバーの自動更新まで、ブラウザ自動化が初めての方にも分かるように順を追って解説していきます</p>



<h2 class="wp-block-heading">SeleniumVBAとは?ExcelからブラウザをVBAで操作できる</h2>



<p class="wp-block-paragraph">まず「Selenium」から軽く説明しておきます</p>



<p class="wp-block-paragraph">Seleniumは、<strong>ブラウザを自動で操作するための仕組み(プログラムからChromeやEdgeを動かす技術)</strong>です、もともとはWebサイトの自動テスト用に作られたもので、ページを開いたり、ボタンを押したり、入力欄に文字を打ち込んだり…といった「人がブラウザでやる操作」をコードで再現できます</p>



<p class="wp-block-paragraph">その Selenium を、<strong><span class="swl-marker mark_yellow">ExcelやAccessのVBAから呼び出せるようにしたライブラリ</span></strong>が SeleniumVBA です、GitHubの <a href="https://github.com/GCuser99/SeleniumVBA" target="_blank" rel="noopener noreferrer">GCuser99/SeleniumVBA</a> で公開されていて、無料で使えます</p>



<p class="wp-block-paragraph">特徴をざっとまとめると、こんな感じです</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>Pure VBA</strong> … VBAだけで完結していて、外部の特別なソフトに依存しない</li>



<li><strong><span class="swl-marker mark_yellow">.NET Frameworkが不要</span></strong> … 後述のSeleniumBasicと違って、追加ランタイムを入れずに動く</li>



<li>Windows + Microsoft Office(Excel / Access)で動く</li>



<li>Chrome / Edge / Firefox に対応している</li>



<li>今もメンテが続いている(リリースが重ねられていて、比較的新しいバージョンが出ている)</li>
</ul>



<p class="wp-block-paragraph">仕組みとしては、SeleniumVBAがローカルで動く「WebDriver」というサーバー(ブラウザを操作する仲介役)とやり取りして、その先のブラウザを動かす…という流れになります、このあたりはPythonのSeleniumと考え方は同じなので、両方触ったことがある方ならすんなり入れると思います</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">「WebDriver」は、ブラウザのバージョンごとに対応するものが必要です、Chromeを使うなら「ChromeDriver」が要る、という関係になっていて、ここの食い違いがブラウザ自動化でつまずきやすいポイントなんですが、SeleniumVBAはそこを自動でそろえてくれます(詳しくは後述します)</p>
</div></div>



<h2 class="wp-block-heading">SeleniumBasicとの違いは?なぜ今SeleniumVBAなのか</h2>



<p class="wp-block-paragraph">VBAでSeleniumというと、これまでは「SeleniumBasic」が定番でした、私もずっとお世話になってきたライブラリで、今でも普通に使えます</p>



<p class="wp-block-paragraph">ただ、これから新しく始めるなら SeleniumVBA の方が扱いやすい場面が多いです、その理由を整理しておきます</p>



<h3 class="wp-block-heading">.NET Framework 3.5 が要らない</h3>



<p class="wp-block-paragraph">SeleniumBasicは、古い <strong>.NET Framework 3.5</strong> に依存しています、最近のWindowsだと初期状態でこれが入っておらず、別途有効化が必要になることがあって、導入の最初でつまずく方がそこそこいるんですよね</p>



<p class="wp-block-paragraph">世代としても古い土台なので、将来のサポート面ではどうしても不安が残ります、その点 <strong><span class="swl-marker mark_yellow" style="color:#e8313b">SeleniumVBAは.NETが不要</span></strong>で、この前提条件まわりの面倒がそもそも発生しないのが大きな違いです</p>



<h3 class="wp-block-heading">アプリのインストールが要らない</h3>



<p class="wp-block-paragraph">SeleniumBasicは、専用のソフトをインストーラーで入れる必要があります、一方の SeleniumVBA は、配布されているアドインファイル(.xlam)を読み込むだけで使えるので、<strong>ソフトのインストールそのものが不要</strong>です</p>



<p class="wp-block-paragraph">会社のPCでソフトのインストールが制限されている、みたいな環境でも導入のハードルが低いのは、地味だけど助かるポイントです</p>



<h3 class="wp-block-heading">ドライバーの自動更新が標準で付いている</h3>



<p class="wp-block-paragraph">ブラウザ自動化で一番ありがちなトラブルが、<strong>ブラウザが自動更新されて、ドライバーのバージョンと合わなくなって動かなくなる</strong>パターンです</p>



<p class="wp-block-paragraph">SeleniumBasicでこれを直すには、自分で新しいドライバーを落としてきて差し替える、という手動作業が必要でした、SeleniumVBAは <strong><span class="swl-marker mark_yellow">ドライバーをそろえる仕組みが最初から組み込まれていて</span></strong>、ここを自動でやってくれます、この差は地味に効いてきます</p>



<h3 class="wp-block-heading">今もメンテが続いている</h3>



<p class="wp-block-paragraph">SeleniumBasicは、公開されているリポジトリの更新がかなり前で止まっています、一方の SeleniumVBA は今もリリースが重ねられていて、メンテが続いているのは安心材料です</p>



<p class="wp-block-paragraph">もちろん「SeleniumBasicがもうダメ」という話ではなくて、既に資産があるならそのまま使えます、ただ <strong>これから新規で組むなら、土台の新しいSeleniumVBAの方が後々ラク</strong>、という温度感です</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>項目</th><th>SeleniumVBA</th><th>SeleniumBasic</th></tr></thead><tbody><tr><td>導入方法</td><td>アドイン(.xlam)を読み込むだけ</td><td>インストーラーでソフトを導入</td></tr><tr><td>.NET Framework</td><td>不要</td><td>3.5 が必要</td></tr><tr><td>ドライバー更新</td><td>自動でそろえられる</td><td>手動で差し替え</td></tr><tr><td>メンテ状況</td><td>継続中</td><td>更新が止まっている</td></tr><tr><td>対応ブラウザ</td><td>Chrome / Edge / Firefox</td><td>Chrome / Edge ほか</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">SeleniumVBAを導入する(xlamアドインが一番ラク)</h2>



<p class="wp-block-paragraph">導入方法は公式に何通りか用意されていますが、<strong><span class="swl-marker mark_yellow">配布されている「SeleniumVBA.xlam」というアドインを取り込む方法が一番ラク</span></strong>なので、まずはこれをおすすめします</p>



<p class="wp-block-paragraph">大まかな流れはこんな感じです</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">SeleniumVBA.xlam をダウンロードする</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">GitHubのリポジトリから、配布されている <strong>SeleniumVBA.xlam</strong>(アドインファイル)を入手します、分かりやすい場所に保存しておきます</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">VBAエディタで参照設定に追加する</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">Excelを開いてVBAエディタを起動し、メニューの「ツール」→「参照設定(References)」を開きます、「参照(Browse)」から先ほどの <strong>SeleniumVBA.xlam</strong> を選んで読み込みます</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">WebDriver クラスが使えるか確認する</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">参照設定にチェックが入った状態で、コード内に <strong>WebDriver</strong> と打って候補が出てくれば取り込み成功です、これで次のコードがそのまま書けるようになります</p>
</div></div>
</div>



<p class="wp-block-paragraph">ほかにも、DLL登録用のインストーラーを使う方法や、ソースのクラス・標準モジュールを直接取り込む方法も公式に用意されています、ただ最初のうちは、参照設定するだけで済む <strong>xlamアドイン</strong>がいちばん迷わないと思います</p>



<h2 class="wp-block-heading">SeleniumVBAの基本的な使い方</h2>



<p class="wp-block-paragraph">導入できたら、さっそく動かしてみます、まずは「Googleのトップページを開いて、検索ボックスの情報を取ってきて、ブラウザを閉じる」という基本的な流れを書いてみます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim driver As New WebDriver
driver.StartChrome
driver.OpenBrowser
driver.NavigateTo "https://www.google.com/"
driver.Wait 1000
Dim element As WebElement
Set element = driver.FindElement(By.Name, "q")
Debug.Print element.GetText
driver.CloseBrowser
driver.Shutdown</code></pre></div>



<p class="wp-block-paragraph">短いコードですが、ブラウザ自動化の基本がひととおり詰まっています、上から順に何をしているか見ていきます</p>



<ul class="wp-block-list -list-under-dashed">
<li><strong>StartChrome</strong> … Chrome用のWebDriverを起動する(Edgeなら StartEdge、Firefoxなら StartFirefox)</li>



<li><strong>OpenBrowser</strong> … 実際にブラウザのウィンドウを開く</li>



<li><strong>NavigateTo</strong> … 指定したURLのページへ移動する</li>



<li><strong>Wait</strong> … 指定したミリ秒だけ待つ(ここでは1000=1秒)</li>



<li><strong>FindElement</strong> … ページの中から目的の要素を探す(ここでは name属性が &#8220;q&#8221; の検索ボックス)</li>



<li><strong>GetText</strong> … 見つけた要素のテキストを取り出す</li>



<li><strong>CloseBrowser</strong> … ブラウザのウィンドウを閉じる</li>



<li><strong>Shutdown</strong> … WebDriver(裏で動いていた仲介役)を終了する</li>
</ul>



<p class="wp-block-paragraph">流れとしては、<strong><span class="swl-marker mark_yellow">起動 → ブラウザを開く → ページ移動 → 要素を探す → 値を取る → 閉じる</span></strong>という順番です、ここを押さえておけば、あとは「探す要素」と「取る/入れる値」を変えていくだけで、いろんな自動化に応用できます</p>



<p class="wp-block-paragraph">ちなみに <strong>FindElement</strong> の探し方は、上の例の name 以外にも、id・class・CSSセレクタ・XPath などいくつか指定できます、このあたりの「要素の探し方」の考え方は、PythonのSeleniumとほぼ共通なので、片方を知っていればもう片方もすぐ馴染みます</p>



<p class="wp-block-paragraph">クリックや入力・待機、そして要素の探し方を<strong>By.CssSelector</strong>に寄せるコツなど、実際によく書くコードは続編の「<a href="https://javeo.jp/selenium-vba-code/" target="_blank" rel="noopener noreferrer">SeleniumVBAの使い方 実践コード集</a>」にまとめたので、基本が動いたらこちらも見てみてください</p>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">最後の <strong>CloseBrowser</strong> と <strong>Shutdown</strong> を忘れると、裏でWebDriverが起動したまま残ってしまうことがあります、処理の終わりにきちんと閉じる、という形にしておくのがおすすめです</p>
</div></div>



<h2 class="wp-block-heading">ドライバーの自動更新(SeleniumVBA最大の便利ポイント)</h2>



<p class="wp-block-paragraph">ここが、私がSeleniumVBAを推したい一番の理由です</p>



<p class="wp-block-paragraph">前にも触れたとおり、ブラウザは勝手にバージョンアップしていくので、放っておくとドライバーとの組み合わせがズレて「昨日まで動いてたのに急に止まった」が起きます、SeleniumBasicだと、ここを自分で直す必要がありました</p>



<p class="wp-block-paragraph">SeleniumVBAには <strong>WebDriverManager</strong> というクラスがあって、<strong><span class="swl-marker mark_yellow">インストール済みのブラウザに合うドライバーを自動で検出して、必要なら自動でダウンロードしてくれます</span></strong></p>



<p class="wp-block-paragraph">明示的に呼ぶなら、こんな感じで書けます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim mngr As New WebDriverManager
Debug.Print mngr.AlignChromeDriverWithBrowser()</code></pre></div>



<p class="wp-block-paragraph"><strong>AlignChromeDriverWithBrowser</strong> が、「今入っているChromeに合うChromeDriverを用意する」処理です(Edge・Firefox向けの対応するメソッドもあります)、公式の説明によると、<strong>StartChrome</strong> などでドライバーを起動するときにも、ブラウザに合うドライバーを自動で検出してそろえてくれる仕組みになっています</p>



<p class="wp-block-paragraph">つまり、<strong><span class="swl-marker mark_yellow">普段は特別なことを意識しなくても、ブラウザに合ったドライバーが用意される</span></strong>ということです、SeleniumBasicの頃にちまちまドライバーを差し替えていた手間を思うと、ここは素直にありがたいです</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">SeleniumBasic側でドライバーをどう手動更新するかは、別記事「<a href="https://javeo.jp/vba-chromedriver-auto-update/" target="_blank" rel="noopener noreferrer">VBAでChromeDriverを自動更新する方法</a>」でまとめています、SeleniumVBAだと、ここで書いた仕組みが標準で効いてくる、という対比で読んでもらえると違いが分かりやすいと思います</p>
</div></div>



<h2 class="wp-block-heading">SeleniumVBAはどんなことに使える?</h2>



<p class="wp-block-paragraph">ブラウザを自動で操作できると、できることの幅がかなり広がります、私が実務でブラウザ自動化を使ってきた中だと、ざっくり次のような場面が定番です</p>



<h3 class="wp-block-heading">Webスクレイピング(情報の収集)</h3>



<p class="wp-block-paragraph">ページを開いて、必要な情報を読み取ってExcelに書き出す…という<strong>スクレイピング</strong>は、ブラウザ自動化の王道の使い道です</p>



<p class="wp-block-paragraph">たとえば、複数ページにまたがる一覧から欲しいデータだけ拾ってきて表にまとめる、みたいな作業、手でやると気が遠くなりますが、SeleniumVBAなら <strong>NavigateTo</strong> でページを順に開いて <strong>FindElement</strong> で値を取る、という流れで回せます</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">スクレイピングをするときは、対象サイトの利用規約やrobots.txtを確認して、相手のサーバーに負荷をかけすぎないようにするのが大切です、待機(<strong>Wait</strong>)を挟むなど、節度を持って使うようにしてください</p>
</div></div>



<h3 class="wp-block-heading">ブラウザ操作の自動化(RPA的な使い方)</h3>



<p class="wp-block-paragraph">もうひとつが、<strong>毎日のようにやっているブラウザ作業を丸ごと自動化する</strong>、いわゆるRPA的な使い方です</p>



<p class="wp-block-paragraph">ログインして、決まった画面を開いて、入力して、ボタンを押して…という一連の操作を、ExcelのVBAから流せます、Excelに置いた一覧を読みながら順番に処理する、みたいなこともできるので、<strong><span class="swl-marker mark_yellow">Excelが得意なデータ管理と、ブラウザ操作を1つにまとめられる</span></strong>のがVBAでやる強みです</p>



<p class="wp-block-paragraph">専用のRPAツールを別途用意しなくても、すでに手元にあるExcelの延長で組めるのは、地味だけど実務だとうれしいポイントだと思います</p>



<h2 class="wp-block-heading">SeleniumVBAを使うときの注意点</h2>



<p class="wp-block-paragraph">便利なSeleniumVBAですが、始める前に知っておきたい前提もいくつかあります</p>



<ul class="wp-block-list is-style-note_list -list-under-dashed">
<li><strong>Windows + Microsoft Office が前提</strong> … ExcelやAccessのVBAから使うライブラリなので、その環境がベースになります</li>



<li><strong>操作するブラウザが必要</strong> … Chrome / Edge / Firefox のいずれかがインストールされている前提です</li>



<li><strong>アドイン(.xlam)の読み込み・マクロ実行が前提</strong> … 普段アドインを使わない方は最初の取り込みで少し戸惑うかもしれません、会社のPCだとマクロやアドインがセキュリティポリシーで制限されていることもあるので、自分の環境で使えるかを確認してから始めるのがおすすめです</li>



<li><strong>初回はドライバーのダウンロードが入る</strong> … 自動でそろえてくれる分、最初の実行時にドライバーの取得が走ることがあります</li>



<li><strong>日本語の情報はまだ少なめ</strong> … 比較的新しいので、困ったときは公式リポジトリの情報を当たる場面が多めです</li>
</ul>



<p class="wp-block-paragraph">とはいえ、コードの書き味そのものはSeleniumらしい素直な作りで、PythonやSeleniumBasicを触ったことがあれば <strong>StartChrome</strong> → <strong>NavigateTo</strong> → <strong>FindElement</strong> の流れはすぐ掴めると思います、最初のドライバー取得さえ越えれば、あとは快適です</p>



<h2 class="wp-block-heading">SeleniumBasicという選択肢もある</h2>



<p class="wp-block-paragraph">ここまで SeleniumVBA を中心に紹介してきましたが、VBAでのブラウザ自動化には <strong>SeleniumBasic</strong> という長く使われてきた選択肢もあります</p>



<p class="wp-block-paragraph">ざっくり選び分けると、こんな感じで考えると分かりやすいです</p>



<ul class="wp-block-list -list-under-dashed">
<li><strong>これから新しく始めるなら</strong> … .NET不要でドライバー自動更新つきの <strong>SeleniumVBA</strong> が扱いやすい</li>



<li><strong>すでにSeleniumBasicの資産があるなら</strong> … そのまま使える、ただしドライバーは手動更新が必要になる</li>
</ul>



<p class="wp-block-paragraph">SeleniumBasicをこれから入れてみたい方は、導入手順を「<a href="https://javeo.jp/seleniumbasic-startup/" target="_blank" rel="noopener noreferrer">SeleniumBasicの導入方法</a>」でまとめているので、そちらを見てもらえれば一通りそろいます</p>



<p class="wp-block-paragraph">ドライバーの手動更新まわりでつまずいたときは、「<a href="https://javeo.jp/vba-chromedriver-auto-update/" target="_blank" rel="noopener noreferrer">VBAでChromeDriverを自動更新する方法</a>」が役立つはずです、SeleniumVBAの「自動でそろう」仕組みと読み比べると、それぞれの立ち位置がよりはっきりすると思います</p>



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



<p class="wp-block-paragraph">SeleniumVBAは、<strong><span class="swl-marker mark_yellow">ExcelやAccessのVBAからブラウザを自動操作できるライブラリ</span></strong>で、Seleniumの仕組みをそのままVBAから使えるのが魅力です</p>



<p class="wp-block-paragraph">あらためてポイントを整理すると、こんなところです</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>SeleniumVBAなら、ExcelのVBAからChrome / Edge / Firefox を自動操作できる</li>



<li>SeleniumBasicと違って <strong>.NETが不要</strong>で、ドライバーの更新も自動でそろえてくれる</li>



<li>導入は <strong>xlamアドイン</strong>を参照設定するのが一番ラク</li>



<li>基本は <strong>StartChrome → NavigateTo → FindElement → GetText → CloseBrowser</strong> の流れ</li>



<li>スクレイピングやRPA的な作業まで、幅広く応用できる</li>
</ul>



<p class="wp-block-paragraph">これからExcelでブラウザ操作を始めるなら、自動更新つきで土台の新しい SeleniumVBA はかなり心強い選択肢だと思います、まずは今回の基本コードを動かすところから、気軽に試してみてください</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/selenium-vba/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelで正規表現 REGEX関数3つの使い方とコピペ例</title>
		<link>https://javeo.jp/excel-regex/</link>
					<comments>https://javeo.jp/excel-regex/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Wed, 03 Jun 2026 14:08:50 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[初心者]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4427</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-regex-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>2024年から、Excelに正規表現を扱う関数が3つ追加されました これまで文字列を抜き出したり整えたりするのに、VBAでVBScriptのRegExpを呼んだり、LEFT・MID・FINDあたりを組み合わせて頑張ってた [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/excel-regex-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">2024年から、Excelに正規表現を扱う関数が3つ追加されました</p>



<p class="wp-block-paragraph">これまで文字列を抜き出したり整えたりするのに、VBAでVBScriptのRegExpを呼んだり、LEFT・MID・FINDあたりを組み合わせて頑張ってたわけですが、それが関数1つで書けるようになったってことです</p>



<p class="wp-block-paragraph">私自身、PythonでのスクレイピングやVBAでわりと正規表現を使ってきた側なんですが、Excelのセルにそのまま正規表現を書けるのは地味に助かるなと思ってます、別シートにマクロを仕込まなくても、関数だけで完結するのが大きいんですよね</p>



<p class="wp-block-paragraph">この記事ではその<strong>REGEXTEST・REGEXEXTRACT・REGEXREPLACE</strong>の3つについて、構文と引数、実際の数式の例、事務作業での使いどころをまとめていきます</p>



<h2 class="wp-block-heading">ExcelのREGEX関数とは（使えるバージョンに注意）</h2>



<p class="wp-block-paragraph">ExcelのREGEX関数は、セルの中の文字列を<strong>正規表現</strong>でチェックしたり、抜き出したり、置き換えたりするための関数です、用意されてるのは次の3つ</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>関数</th><th>やること</th><th>戻り値</th></tr></thead><tbody><tr><td>REGEXTEST</td><td>パターンに一致するか判定する</td><td>TRUE / FALSE</td></tr><tr><td>REGEXEXTRACT</td><td>一致した部分を抜き出す</td><td>テキスト</td></tr><tr><td>REGEXREPLACE</td><td>一致した部分を置き換える</td><td>テキスト</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">名前のとおり、TEST=判定、EXTRACT=抽出、REPLACE=置換という役割分担になっていて、この3つを覚えれば文字列処理のだいたいの場面はカバーできます</p>



<p class="wp-block-paragraph">ただ1つ注意したいのが、使えるExcelが限られるという点です</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">REGEX関数が使えるのは<strong><span class="swl-marker mark_yellow" style="color:#e8313b">Microsoft 365（サブスク版）</span></strong>だけです、買い切りのExcel 2021やExcel 2024には入っていないので、その環境では使えません</p>
</div></div>



<p class="wp-block-paragraph">2024年5月にプレビューとして登場して、その後Windows・Mac・Webの各Microsoft 365で正式に使えるようになりました、Insider（先行プレビュー版）への参加もいりません</p>



<p class="wp-block-paragraph">自分のExcelがどっちか分からないときは、空いてるセルに<code>=REGEXTEST("a","a")</code>とでも打ってみてください、エラー（#NAME?）が出るなら、その環境にはまだREGEX関数が来てないってことになります</p>



<p class="wp-block-paragraph">もう1つ、正規表現の方言（フレーバー）の話です、ExcelのREGEX関数は<strong><span class="swl-marker mark_yellow">PCRE2</span></strong>という、多くのツールが採用しているフレーバーを使っています、後で出てくるVBAのVBScript RegExpとは細かい書き方が違う部分があるので、そこだけ頭の片隅に置いておくといいです</p>



<h2 class="wp-block-heading">正規表現の基礎は別記事にまとめてあります</h2>



<p class="wp-block-paragraph">この記事はExcelのREGEX関数の使い方に集中したいので、正規表現そのものの基礎（メタ文字とか<strong>\d</strong>・<strong>\w</strong>といった定義済みパターン）はここでは説明しません</p>



<p class="wp-block-paragraph">「<strong>\d</strong>って何だっけ」「<strong>[0-9]</strong>と<strong>[^0-9]</strong>の違いが曖昧」みたいな、記号の意味そのものがあやしい方は、先にこっちを読んでもらえると以降の数式がスッと入ってきます、郵便番号や電話番号などのよく使うパターンの早見表も載せてあります</p>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">正規表現の基本ルールは <a href="https://javeo.jp/regexp-beginner/" target="_blank" rel="noopener noreferrer">正規表現とは？拒否反応が出る人向けに基本とよく使うパターンを整理</a> でまとめています、メタ文字の早見表・定義済みパターン・よく使うパターン集つきです</p>
</div></div>



<p class="wp-block-paragraph">以下では、この記事に出てくるパターンに簡単な補足は添えますが、深い解説は上の記事にお任せして進めていきます</p>



<h2 class="wp-block-heading">REGEXTEST（パターンに一致するか判定する）</h2>



<p class="wp-block-paragraph">まずは一番シンプルな<strong>REGEXTEST</strong>から、これは「セルの中身がパターンに一致するか？」を<strong>TRUE / FALSE</strong>で返してくれる関数です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXTEST(text, pattern, [case_sensitivity])</code></pre></div>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>引数</th><th>意味</th></tr></thead><tbody><tr><td>text</td><td>調べたい文字列（セル参照でOK）</td></tr><tr><td>pattern</td><td>正規表現のパターン</td></tr><tr><td>case_sensitivity</td><td>省略可、0=大文字小文字を区別（既定）/ 1=区別しない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、textの<strong><span class="swl-marker mark_yellow">どこか一部でもパターンに一致すればTRUE</span></strong>になるところです、全体がきっちり一致してる必要はありません</p>



<p class="wp-block-paragraph">例えばA2セルに数字が含まれているか調べたいなら、こんな感じ</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXTEST(A2,"[0-9]")</code></pre></div>



<p class="wp-block-paragraph">A2セルに1個でも数字（<strong>[0-9]</strong>）があればTRUE、まったく無ければFALSEが返ります</p>



<p class="wp-block-paragraph">メールアドレスっぽいかをざっくり判定したいなら、@が入ってるかどうかだけでも目印になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXTEST(A2,"@")</code></pre></div>



<p class="wp-block-paragraph">これはあくまで「@を含むか」の簡易チェックなので、ちゃんとしたメール形式かまで見たいなら後で出てくる抽出のパターンを応用する形になります</p>



<p class="wp-block-paragraph">大文字小文字を区別したくないときは、3つ目の引数に1を渡します、例えば<strong>&#8220;abc&#8221;</strong>でも<strong>&#8220;ABC&#8221;</strong>でも引っかけたいケースですね</p>



<h2 class="wp-block-heading">REGEXEXTRACT（一致した部分を抜き出す）</h2>



<p class="wp-block-paragraph">次は抜き出し担当の<strong>REGEXEXTRACT</strong>です、文字列の中からパターンに一致した部分だけを取り出してくれます、住所から郵便番号だけ、文章からメアドだけ、みたいな使い方ができます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])</code></pre></div>



<p class="wp-block-paragraph">引数で重要なのが3つ目の<strong>return_mode</strong>で、これで「何を返すか」が変わります</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>return_mode</th><th>返すもの</th></tr></thead><tbody><tr><td>0（既定）</td><td>最初に一致した1件</td></tr><tr><td>1</td><td>一致した全件を配列で（スピルして縦に並ぶ）</td></tr><tr><td>2</td><td>最初に一致したキャプチャグループを配列で</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">case_sensitivity（4つ目）はREGEXTESTと同じで、0=区別する（既定）/ 1=区別しない、です</p>



<h3 class="wp-block-heading">郵便番号を抜き出す（return_mode 0）</h3>



<p class="wp-block-paragraph">A2セルに「東京都千代田区永田町1-7-1 100-8981」みたいな住所文字列が入っているとして、そこから郵便番号だけ取り出したいとします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXEXTRACT(A2,"\d{3}-\d{4}")</code></pre></div>



<p class="wp-block-paragraph"><strong>\d{3}-\d{4}</strong>は「数字3つ・ハイフン・数字4つ」というパターンなので、100-8981の部分が抜き出されます、return_modeを省略してるので、最初に一致した1件だけが返る形です</p>



<h3 class="wp-block-heading">メールアドレスを抜き出す（簡易版）</h3>



<p class="wp-block-paragraph">文章の中からメアドを抜きたいときは、こんなパターンが使えます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")</code></pre></div>



<p class="wp-block-paragraph">@の前後とドメイン部分をざっくり拾うパターンです、ただしこれは<strong><span class="swl-marker mark_yellow">あくまで簡易版</span></strong>で、世の中のメアドの仕様を完全に網羅したものではありません、社内の名簿から拾うくらいの用途なら十分実用になります</p>



<h3 class="wp-block-heading">数字のかたまりを全部抜き出す（return_mode 1）</h3>



<p class="wp-block-paragraph">1件だけじゃなくて、一致したもの全部が欲しいときはreturn_modeに1を渡します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXEXTRACT(A2,"\d+",1)</code></pre></div>



<p class="wp-block-paragraph"><strong>\d+</strong>は「数字が1つ以上続くかたまり」なので、A2セルの中にある数字のかたまりが全部、縦にスピル（自動で複数セルに展開）して並びます、文字列に散らばった数値をまとめて拾いたいときに便利です</p>



<h3 class="wp-block-heading">年・月・日に分解する（return_mode 2）</h3>



<p class="wp-block-paragraph">カッコ<strong>( )</strong>で囲った部分（キャプチャグループ）だけを取り出したいときはreturn_modeに2を渡します、日付を年・月・日にバラすのが分かりやすい例です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXEXTRACT("2024-05-20","(\d{4})-(\d{2})-(\d{2})",2)</code></pre></div>



<p class="wp-block-paragraph">3つのグループ<strong>(\d{4})</strong>・<strong>(\d{2})</strong>・<strong>(\d{2})</strong>に分けてあるので、2024・05・20の3つが配列で返ります、横にスピルして年・月・日が別セルに並ぶイメージですね</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">REGEX関数の戻り値は<strong><span class="swl-marker mark_yellow" style="color:#e8313b">テキスト（文字列）</span></strong>です、抜き出した郵便番号や数字をそのまま計算に使おうとすると文字列扱いでうまくいかないことがあるので、数値として使いたいときは<strong>VALUE関数</strong>で囲って数値に変換してください</p>
</div></div>



<p class="wp-block-paragraph">例えば数字のかたまりを数値にしたいなら、<code>=VALUE(REGEXEXTRACT(A2,"\d+"))</code>のように包む形になります</p>



<h2 class="wp-block-heading">REGEXREPLACE（一致した部分を置き換える）</h2>



<p class="wp-block-paragraph">3つ目は置換担当の<strong>REGEXREPLACE</strong>です、パターンに一致した部分を別の文字列に差し替えます、不要な文字を消したり、伏せ字にしたり、並べ替えたりできます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])</code></pre></div>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>引数</th><th>意味</th></tr></thead><tbody><tr><td>text</td><td>元の文字列</td></tr><tr><td>pattern</td><td>正規表現のパターン</td></tr><tr><td>replacement</td><td>置き換え後の文字列（$1 $2 でグループ参照できる）</td></tr><tr><td>occurrence</td><td>省略可、0=全て置換（既定）/ 正のN=N番目だけ / 負の数=末尾から数える</td></tr><tr><td>case_sensitivity</td><td>省略可、0=区別（既定）/ 1=区別しない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">数字だけ残して他を消す</h3>



<p class="wp-block-paragraph">電話番号などで、ハイフンやカッコが混ざってるのを取り払って数字だけにしたいときの定番がこれ</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXREPLACE(A2,"[^0-9]","")</code></pre></div>



<p class="wp-block-paragraph"><strong>[^0-9]</strong>は「数字以外の文字」という意味なので、それを空文字（&#8221;&#8221;）に置き換える＝<strong><span class="swl-marker mark_yellow">数字以外を全部消す</span></strong>動きになります、occurrenceを省略すると既定で全部が対象です</p>



<h3 class="wp-block-heading">電話番号の中央を伏せ字にする</h3>



<p class="wp-block-paragraph">個人情報を一覧で見せるときに、電話番号の真ん中をマスクしたいことがあります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXREPLACE("090-1234-5678","-\d{4}-","-****-")</code></pre></div>



<p class="wp-block-paragraph">「ハイフン・数字4つ・ハイフン」の部分を「-****-」に置き換えてるので、結果は<strong>090-****-5678</strong>になります、真ん中の4桁だけ隠せるってわけです</p>



<h3 class="wp-block-heading">姓名を並べ替える（$1 $2 を使う）</h3>



<p class="wp-block-paragraph">replacementの中では<strong>$1</strong>・<strong>$2</strong>でキャプチャグループを参照できます、これを使うと並べ替えができます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-text" data-lang="Excelの数式"><code>=REGEXREPLACE("SoniaBrown","([A-Z][a-z]+)([A-Z][a-z]+)","$2, $1")</code></pre></div>



<p class="wp-block-paragraph">1つ目のグループ（Sonia）を<strong>$1</strong>、2つ目（Brown）を<strong>$2</strong>として、「$2, $1」の順で並べ直しているので、結果は<strong>Brown, Sonia</strong>になります、姓・名の順番を入れ替えたいときなどに応用が利きます</p>



<h2 class="wp-block-heading">実務での使いどころ</h2>



<p class="wp-block-paragraph">ここまでの3関数を、日々の事務作業に当てはめるとこんな使い方ができます、どれもさっきまでの数式の組み合わせで対応できる範囲です</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" class="wp-block-table is-style-stripes"><table style="--table-width:800px;"><thead><tr><th>やりたいこと</th><th>使う関数</th><th>パターン例</th></tr></thead><tbody><tr><td>住所から郵便番号を抜く</td><td>REGEXEXTRACT</td><td>\d{3}-\d{4}</td></tr><tr><td>文章からメアドを拾う</td><td>REGEXEXTRACT</td><td>[A-Za-z0-9._%+-]+@…</td></tr><tr><td>電話番号を数字だけに整形</td><td>REGEXREPLACE</td><td>[^0-9] を &#8220;&#8221; に</td></tr><tr><td>電話番号の中央をマスク</td><td>REGEXREPLACE</td><td>-\d{4}- を -****- に</td></tr><tr><td>数字を含む行だけ判定</td><td>REGEXTEST</td><td>[0-9]</td></tr><tr><td>メール形式かざっくり判定</td><td>REGEXTEST</td><td>@</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">個人的にいいなと思うのは、表記ゆれのチェックや不要文字の除去みたいな、地味だけど件数が多いと面倒な作業がフィルや数式コピーでまとめて片付くところです、今までVBAでループ書いてた処理が、関数1行で済むケースがけっこうあります</p>



<p class="wp-block-paragraph">REGEXTESTはTRUE / FALSEを返すので、IF関数やフィルター、条件付き書式と組み合わせると「このパターンに合う行だけ色を付ける」みたいなこともできて、チェック作業がはかどります</p>



<h2 class="wp-block-heading">関連：XLOOKUP・XMATCHも正規表現に対応した</h2>



<p class="wp-block-paragraph">ちょっとした関連ネタとして、2024年12月には<strong>XLOOKUP</strong>と<strong>XMATCH</strong>でも正規表現が使えるようになりました</p>



<p class="wp-block-paragraph">具体的には、これらの関数の照合モードを表す<strong>match_mode</strong>引数に<strong>3</strong>を指定すると、検索値を正規表現として扱ってくれます、「完全一致じゃなくて、パターンに合う行を引っ張ってきたい」みたいな検索ができるようになるってことです</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">XLOOKUP・XMATCHの正規表現モードは、執筆時点ではプレビュー機能として提供されているものです、こちらもMicrosoft 365向けで、フレーバーはREGEX関数と同じPCRE2です、大事なブックでの常用は仕様が固まってからのほうが安心です</p>
</div></div>



<p class="wp-block-paragraph">正規表現を覚えておくと、こうやって対応する関数が増えたときにそのまま流用できるので、文字列処理の引き出しとして持っておいて損はないなと感じてます</p>



<h2 class="wp-block-heading">REGEX関数を使うときの注意点</h2>



<p class="wp-block-paragraph">便利な反面、使う前に押さえておきたいポイントもいくつかあります</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>使えるのはMicrosoft 365のみ、買い切りのExcel 2021 / 2024では使えない（共有相手の環境にも注意）</li>



<li>戻り値はテキスト、数値として扱うならVALUE関数で変換する</li>



<li>フレーバーはPCRE2、VBAのVBScript RegExpとは細部の書き方が違う場合がある</li>



<li>大量データに複雑なパターンを当てると、再計算が重くなることがある</li>
</ul>



<p class="wp-block-paragraph">共有のところは特に見落としがちで、自分のPCでは動くのに、買い切り版のExcelを使ってる同僚が開いたら<strong><span class="swl-marker mark_yellow">#NAME?エラー</span></strong>になる、というのが起こり得ます、配布するファイルで使うときは相手の環境も確認しておくと安心です</p>



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



<p class="wp-block-paragraph">ExcelのREGEX関数3つを振り返っておきます</p>



<ul class="wp-block-list is-style-num_circle">
<li><strong>REGEXTEST</strong>…パターンに一致するかをTRUE / FALSEで判定</li>



<li><strong>REGEXEXTRACT</strong>…一致した部分を抜き出す（return_modeで最初の1件 / 全件 / グループを切替）</li>



<li><strong>REGEXREPLACE</strong>…一致した部分を置き換える（$1 $2でグループ参照、occurrenceで対象を絞る）</li>
</ul>



<p class="wp-block-paragraph">Microsoft 365限定という条件はありますが、使える環境なら文字列処理がだいぶ楽になります、まずはREGEXTESTで判定から触ってみて、慣れてきたら抽出・置換に広げていくと取っつきやすいです</p>



<p class="wp-block-paragraph">肝心の正規表現のパターンの作り方があやしいときは、メタ文字や定義済みパターンの基礎をまとめた <a href="https://javeo.jp/regexp-beginner/" target="_blank" rel="noopener noreferrer">正規表現とは？拒否反応が出る人向けに基本とよく使うパターンを整理</a> を読んでみてください、そっちにはVBAで正規表現を使う実装例も載せてあるので、関数では物足りなくなってVBAに踏み込みたくなったときにも役立つと思います</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/excel-regex/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAでJSONを扱う方法 VBA-JSONの使い方</title>
		<link>https://javeo.jp/vba-json/</link>
					<comments>https://javeo.jp/vba-json/#comments</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Fri, 22 May 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[初心者]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=111</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/vba-json-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>ExcelVBAでJSONを扱うなら定番ライブラリ「VBA-JSON」がおすすめです、JsonConverter.basの導入から参照設定、ParseJsonでのパース、ConvertToJsonでの生成、配列やネストへのアクセスまで初心者向けにまとめました]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/vba-json-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">「VBAでJSONを読み込みたいんだけど、標準機能だとどうにもならない…」と手が止まっていませんか？</p>



<p class="wp-block-paragraph">結論から言うと、<strong><span class="swl-marker mark_yellow">ExcelVBAでJSONを扱うなら「VBA-JSON」という定番ライブラリを入れるのが一番ラク</span></strong>です</p>



<p class="wp-block-paragraph">やることはシンプルで、<code>JsonConverter.bas</code> というファイルを1つ取り込んで、参照設定を1つ入れるだけ、あとは <code>ParseJson</code> でJSONを読み込んで、<code>ConvertToJson</code> でJSONを書き出せます</p>



<p class="wp-block-paragraph">この記事では、VBA-JSONの導入から実際の使い方(パース・生成・配列やネストへのアクセス・ループ処理)まで、初心者の方にも分かるように順を追って解説していきます、つまずきポイントとFAQ、AIにコードを書いてもらうコツもまとめているので、必要なところだけ拾い読みでも大丈夫です</p>



<h2 class="wp-block-heading">VBAでJSONを扱うなら VBA-JSON が定番</h2>



<p class="wp-block-paragraph">まず大前提として、<strong>VBAには標準でJSONを扱う機能がありません</strong></p>



<p class="wp-block-paragraph">Excelには CSV を読む機能はあっても、JSONをそのまま「項目ごとに取り出す」みたいなことは素のVBAだとできないんですよね</p>



<p class="wp-block-paragraph">そこで使うのが、オープンソースのライブラリ「<strong>VBA-JSON</strong>」です</p>



<p class="wp-block-paragraph">GitHubの <a href="https://github.com/VBA-tools/VBA-JSON" target="_blank" rel="noopener noreferrer">VBA-tools/VBA-JSON</a> で公開されていて、JSON界隈ではかなり知られた定番です、最新は <code>v2.3.1</code> で、WindowsのExcelでもMacのExcelでも動きます</p>



<p class="wp-block-paragraph">使う関数は基本的にこの2つだけ覚えればOKです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>ParseJson</strong> … JSON文字列を、VBAで扱えるデータ(Dictionary / Collection)に変換する(=読み込む)</li>



<li><strong>ConvertToJson</strong> … VBAのデータを、JSON文字列に変換する(=書き出す)</li>
</ul>



<p class="wp-block-paragraph">「読み込む」と「書き出す」の往復、これだけです、難しそうに見えて中身はシンプルなので安心してください</p>



<h2 class="wp-block-heading">VBAでJSONを扱う場面はどんなとき？</h2>



<p class="wp-block-paragraph">そもそも「ExcelでJSONなんて使うの？」と思うかもしれませんが、最近のWeb APIはJSONで返ってくるのがほぼ標準なので、意外と日常業務の中で出番があります</p>



<p class="wp-block-paragraph">たとえばこんなケースです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>為替レートや天気予報のWeb APIを叩いてExcelに取り込む</li>



<li>WebサービスからダウンロードしたデータをVBAで集計する</li>



<li>取引先のシステムとJSON形式でデータをやり取りする</li>



<li>WordPressや社内システムのREST APIを操作する</li>
</ul>



<p class="wp-block-paragraph">VBA-JSONを使えるようになると、<strong>Excel完結の作業に外部データを取り込める幅</strong>が一気に広がります、普段の集計シートに「最新のデータを自動で引っ張ってくる」ような仕組みを足せるイメージですね</p>



<p class="wp-block-paragraph">実際にWeb APIへリクエストを送ってJSONを受け取る流れは、<a href="https://javeo.jp/ebay-api-request/" target="_blank" rel="noopener noreferrer">eBay APIにVBAでリクエストを送る方法を解説した記事</a>でも具体例を扱っているので、API連携をやってみたい方はあわせてどうぞ</p>



<h2 class="wp-block-heading">そもそもJSONって何？という人向けの基礎</h2>



<p class="wp-block-paragraph">「JSONって言葉は聞くけど、よく分かってない」という方のために、ここで一度ざっくり整理しておきます、もう分かってる方は読み飛ばしてOKです</p>



<p class="wp-block-paragraph">JSON(<strong>J</strong>ava<strong>S</strong>cript <strong>O</strong>bject <strong>N</strong>otation)は、テキストベースのデータ交換フォーマットです</p>



<p class="wp-block-paragraph">Web APIからデータを取得するとき、他システムとのデータやり取りなど、いろんな場面で使われています、軽量で人間にも機械にも読みやすいのが特徴ですね</p>



<h3 class="wp-block-heading">JSONの基本構造と記述ルール</h3>



<p class="wp-block-paragraph">細かいルールはいくつかありますが、まず押さえておきたいのはこのあたりです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>項目名は「&#8221;」(ダブルクォーテーション)で囲む</li>



<li>文字列も「&#8221;」(ダブルクォーテーション)で囲む</li>



<li>数値は小数点を含めてそのまま表記(クォーテーション不要)</li>



<li>真偽値(Boolean)は「true」「false」のどちらか ※小文字、「&#8221;」は付けない</li>



<li>Null値は「null」 ※小文字、「&#8221;」は付けない</li>



<li>「[ ]」で囲んだ配列の中も、上記と同じルール</li>
</ul>



<p class="wp-block-paragraph">形としては「<code>"キー": 値</code>」のセットが基本で、複数のデータを <code>{ }</code> で囲んだものを「オブジェクト」、順序のあるデータの並びを <code>[ ]</code> で囲んだものを「配列」と呼びます</p>



<p class="wp-block-paragraph">このあたりの言葉は、VBA-JSONを使うときに何度も出てくるので、なんとなく頭に入れておくと後がスムーズです</p>



<h3 class="wp-block-heading">JSONのサンプルをExcelの表で考えてみる</h3>



<p class="wp-block-paragraph">JSONはCSVほど一目で分かる形式じゃないので、サンプルと一緒に見方を説明します、この記事ではずっとこのデータを例に進めていきます</p>



<p class="wp-block-paragraph">たとえばこんなJSON形式のデータがあるとして</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-lang="JSON"><code>[{&quot;name&quot;:&quot;Javeo&quot;,&quot;birthdate&quot;:{&quot;year&quot;:2000,&quot;month&quot;:1,&quot;day&quot;:1},&quot;height&quot;:180,&quot;weight&quot;:70,&quot;favorite_foods&quot;:[&quot;Meat&quot;,&quot;Vegetables&quot;],&quot;glasses&quot;:true},{&quot;name&quot;:&quot;Javelin&quot;,&quot;birthdate&quot;:{&quot;year&quot;:2002,&quot;month&quot;:2,&quot;day&quot;:2},&quot;height&quot;:150,&quot;weight&quot;:null,&quot;favorite_foods&quot;:[&quot;Sweets&quot;],&quot;glasses&quot;:false}]</code></pre></div>



<p class="wp-block-paragraph">一行だと分かりづらいので、整形するとこうなります(VSCodeなどのエディタで簡単に整形できます)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-lang="JSON"><code>[
  {
    &quot;name&quot;: &quot;Javeo&quot;,
    &quot;birthdate&quot;: {
      &quot;year&quot;: 2000,
      &quot;month&quot;: 1,
      &quot;day&quot;: 1
    },
    &quot;height&quot;: 180,
    &quot;weight&quot;: 70,
    &quot;favorite_foods&quot;: [
      &quot;Meat&quot;,
      &quot;Vegetables&quot;
    ],
    &quot;glasses&quot;: true
  },
  {
    &quot;name&quot;: &quot;Javelin&quot;,
    &quot;birthdate&quot;: {
      &quot;year&quot;: 2002,
      &quot;month&quot;: 2,
      &quot;day&quot;: 2
    },
    &quot;height&quot;: 150,
    &quot;weight&quot;: null,
    &quot;favorite_foods&quot;: [
      &quot;Sweets&quot;
    ],
    &quot;glasses&quot;: false
  }
]</code></pre></div>



<p class="wp-block-paragraph">これをExcel的に表にすると、こんなイメージになります</p>


<div class="c-scrollHint"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="both" class="wp-block-table is-all-centered"><table style="--table-width:1200px;"><tbody><tr><th rowspan="2">name</th><th colspan="3">birthdate</th><th rowspan="2">height</th><th rowspan="2">witght</th><th colspan="2" rowspan="2">favorite_foods</th><th rowspan="2">glasses</th></tr><tr><th>year</th><th>month</th><th>day</th></tr><tr><td>javeo</td><td>2000</td><td>1</td><td>1</td><td>180</td><td>70</td><td>Meat</td><td>Vegetables</td><td>true</td></tr><tr><td>Javelin</td><td>2002</td><td>2</td><td>2</td><td>150</td><td></td><td>Sweets</td><td></td><td>false</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つまりJSONをざっくり言うと、<strong>項目と値が対になっていて、「{ }」が階層を、「[ ]」が配列のデータ群を表している</strong>と思えばOKです</p>



<p class="wp-block-paragraph">この「JaveoとJavelinの2人分のデータ」を、これからVBA-JSONで取り出していきます</p>



<h2 class="wp-block-heading">VBA-JSONの導入手順(2026年版)</h2>



<p class="wp-block-paragraph">ここが一番大事なパートです、導入でつまずく人が多いので、順番にやっていきましょう</p>



<p class="wp-block-paragraph">やることは大きく分けて2つ、<strong><span class="swl-marker mark_yellow">「JsonConverter.basのインポート」と「参照設定」</span></strong>だけです</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l"><strong>ライブラリのダウンロード</strong></div><div class="swell-block-step__body">
<p class="wp-block-paragraph">GitHubの<a href="https://github.com/VBA-tools/VBA-JSON" target="_blank" rel="noreferrer noopener">VBA-tools/VBA-JSON</a>リポジトリにアクセス</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l"><strong>ファイルを探す</strong></div><div class="swell-block-step__body">
<p class="wp-block-paragraph">ページ内にある「<code>JsonConverter.bas</code>」をダウンロード</p>



<p class="wp-block-paragraph">※何年も更新されていませんが、文字列を分解するだけのプログラムで特に改良点がないってだけなので気にせずどうぞ</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l"><strong>VBAへのインポート</strong></div><div class="swell-block-step__body">
<p class="wp-block-paragraph">VBAで使えるようにするにはVBEの画面でインポートするだけ</p>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><a href="https://javeo.jp/wp-content/uploads/2022/02/image-6.png"><img decoding="async" width="298" height="398" src="https://javeo.jp/wp-content/uploads/2022/02/image-6.png" alt="" class="wp-image-159 size-full" srcset="https://javeo.jp/wp-content/uploads/2022/02/image-6.png 298w, https://javeo.jp/wp-content/uploads/2022/02/image-6-225x300.png 225w" sizes="(max-width: 298px) 100vw, 298px" /></a></figure><div class="wp-block-media-text__content">
<p class="wp-block-paragraph">プロジェクトエクスプローラー<br>右クリック→「ファイルのインポート」</p>
</div></div>



<p class="wp-block-paragraph">もしくは「JsonConverter.bas」をプロジェクトエクスプローラーへドラッグ&amp;ドロップでもOK</p>



<figure class="wp-block-image size-full"><a href="https://javeo.jp/wp-content/uploads/2022/02/VBA-JSONをインポート.gif"><img decoding="async" width="868" height="474" src="https://javeo.jp/wp-content/uploads/2022/02/VBA-JSONをインポート.gif" alt="" class="wp-image-167"/></a></figure>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">Microsoft Scripting Runtime に参照設定する</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">VBA-JSONを動かすには参照設定が要ります</p>



<p class="wp-block-paragraph">VBA-JSONは内部で「Dictionary」という、キーと値をセットで扱うデータの入れ物を使っています、このDictionaryをそのまま書くスタイル(早期バインディングと言います)で動かすために、<strong><span class="swl-marker mark_yellow">Microsoft Scripting Runtime への参照設定が必要</span></strong>になります</p>



<p class="wp-block-paragraph">設定はVBEのメニューからで、手順はこうです</p>



<ol style="background-color:#f8fbfd" class="wp-block-list -list-under-dashed has-background">
<li>VBEのメニューで「ツール → 参照設定」を開く</li>



<li>一覧から「<code>Microsoft Scripting Runtime</code>」を探す</li>



<li>チェックボックスにチェックを入れて「OK」を押す</li>
</ol>



<p class="wp-block-paragraph">これを忘れると、コードを実行したときに「ユーザー定義型は定義されていません」というエラーが出ます、後ろのFAQでも触れますが、この参照設定はかなりの確率でハマるので先に済ませておくのがおすすめです</p>
</div></div>
</div>



<h3 class="wp-block-heading">Mac の Excel で使う場合</h3>



<p class="wp-block-paragraph">MacのExcelには Microsoft Scripting Runtime が無いので、参照設定の代わりに同じ作者の「<strong>VBA-Dictionary</strong>」というライブラリを一緒に入れます</p>



<p class="wp-block-paragraph"><a href="https://github.com/VBA-tools/VBA-Dictionary" target="_blank" rel="noopener noreferrer">VBA-tools/VBA-Dictionary</a> から <code>Dictionary.cls</code> をダウンロードして、JsonConverter.bas と同じようにインポートすればOKです、WindowsとMacの両方で動かしたいときも、参照設定ではなくこのVBA-Dictionaryを使う形にしておくと安心ですね</p>



<p class="wp-block-paragraph">ここまでできたら準備は完了です、いよいよ実際にJSONを扱っていきます</p>



<h2 class="wp-block-heading">ParseJson でJSONを解析(パース)してみる</h2>



<p class="wp-block-paragraph">JSON形式のテキストを、VBAで扱えるデータ構造(DictionaryやCollection)に変換することを「<strong>解析(パース)</strong>」と言います</p>



<p class="wp-block-paragraph">このパースが、<code>ParseJson</code> 関数を使えば<strong>たった一行で完了</strong>します</p>



<p class="wp-block-paragraph">まずはWeb APIからJSONを取ってきてパースする、いちばんよくある形のサンプルです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>&#39; /// 事前準備 ///
&#39; VBEの [ツール] &gt; [参照設定] から下記にチェックを入れる
&#39; ・Microsoft Scripting Runtime   (Dictionary用、VBA-JSONに必須)
&#39; ・Microsoft XML, v6.0           (APIを叩く場合)
Sub GetJsonData()
    Dim http As Object
    Dim jsonText As String
    Dim parsedData As Object &#39; 解析後のデータ格納用

    &#39; Web APIからJSONデータを取得(例)
    Set http = CreateObject(&quot;MSXML2.XMLHTTP&quot;)
    http.Open &quot;GET&quot;, &quot;https://javeo.jp/wp-json/test/v1/data&quot;, False
    http.send
    jsonText = http.responseText

    &#39; ここがVBA-JSONの本体、JSONを解析
    Set parsedData = ParseJson(jsonText)

    &#39; 解析したデータをデバッグ出力
    Debug.Print &quot;名前: &quot; & parsedData(1)(&quot;name&quot;)
    Debug.Print &quot;身長: &quot; & parsedData(1)(&quot;height&quot;)

    Set http = Nothing
    Set parsedData = Nothing
End Sub</code></pre></div>



<p class="wp-block-paragraph">長く見えるかもしれませんが、VBA-JSONを使っている箇所は、結局このたった一行だけです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Set parsedData = ParseJson(jsonText)</code></pre></div>



<p class="wp-block-paragraph">この一行を通すことで、最初のサンプルにあった「長いただの文字列」が、<code>parsedData(1)("name")</code> といった具合に<strong>要素を指定してデータを取り出せる構造</strong>に変わります</p>



<p class="wp-block-paragraph">APIを使わず、手元の文字列をそのままパースして試すこともできます、まずは動きを確かめたいときはこちらが手っ取り早いです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Sub ParseSample()
    Dim jsonText As String
    Dim parsedData As Object

    &#39; 動作確認用に文字列を直接用意
    jsonText = &quot;[{&quot;&quot;name&quot;&quot;:&quot;&quot;Javeo&quot;&quot;,&quot;&quot;height&quot;&quot;:180}]&quot;

    Set parsedData = ParseJson(jsonText)

    Debug.Print parsedData(1)(&quot;name&quot;) &#39; → Javeo
    Debug.Print parsedData(1)(&quot;height&quot;) &#39; → 180
End Sub</code></pre></div>



<p class="wp-block-paragraph">VBAの中で「&#8221;」を書くときは「&#8221;&#8221;」と2つ重ねる必要があるので、そこだけ少し読みづらいですが、やっていることは「文字列をパースして取り出す」だけです</p>



<h2 class="wp-block-heading">パースしたJSONから値を取り出す(配列・オブジェクト・ネスト)</h2>



<p class="wp-block-paragraph">ここがVBA-JSONを使ううえで一番つまずきやすく、そして一番大事なところです</p>



<p class="wp-block-paragraph">ポイントは、<strong>パース後のデータが「Dictionary」と「Collection」の2種類に化けている</strong>という点です</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>JSONの「{ }」(オブジェクト)→ <strong>Dictionary</strong> になる(キー名で取り出す)</li>



<li>JSONの「[ ]」(配列)→ <strong>Collection</strong> になる(番号で取り出す)</li>
</ul>



<p class="wp-block-paragraph">この区別さえ分かれば、あとは指定の仕方が決まります、サンプルの「JaveoとJavelinのデータ」を例に、ひとつずつ見ていきましょう</p>



<h3 class="wp-block-heading">配列(Collection)は番号で取り出す</h3>



<p class="wp-block-paragraph">サンプルのJSONは全体が「[ ]」で囲まれた配列なので、パース直後の <code>parsedData</code> はCollectionになっています</p>



<p class="wp-block-paragraph">Collectionは「何番目」という番号(インデックス)で要素を取り出します、<strong>VBAのCollectionは1番から始まる</strong>のがポイントで、0番からじゃないので注意です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>&#39; 1人目(Javeo)のデータを取り出す
Set firstPerson = parsedData(1)

&#39; 2人目(Javelin)のデータを取り出す
Set secondPerson = parsedData(2)</code></pre></div>



<h3 class="wp-block-heading">オブジェクト(Dictionary)はキー名で取り出す</h3>



<p class="wp-block-paragraph">取り出した1人分のデータ(<code>parsedData(1)</code>)は「{ }」のオブジェクトなので、こちらはDictionaryです</p>



<p class="wp-block-paragraph">Dictionaryは番号ではなく、<strong>キー名(項目名)を指定して</strong>値を取り出します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>&#39; 1人目の名前と身長
Debug.Print parsedData(1)(&quot;name&quot;)   &#39; → Javeo
Debug.Print parsedData(1)(&quot;height&quot;) &#39; → 180

&#39; 真偽値もそのまま取れる
Debug.Print parsedData(1)(&quot;glasses&quot;) &#39; → True</code></pre></div>



<p class="wp-block-paragraph"><code>parsedData(1)("name")</code> は「配列の1番目(Collection)→ その中のnameキー(Dictionary)」という読み方になります、カッコが連続するのは、この2段階を一気に書いているからなんですね</p>



<h3 class="wp-block-heading">ネスト(入れ子)は同じ要領でつなげる</h3>



<p class="wp-block-paragraph">サンプルの <code>birthdate</code> は、中にさらに <code>year / month / day</code> を持つ「入れ子のオブジェクト」です、こういうネストも、考え方は同じでカッコをつなげるだけです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>&#39; 1人目の生年月日(birthdateの中のyear)
Debug.Print parsedData(1)(&quot;birthdate&quot;)(&quot;year&quot;)  &#39; → 2000
Debug.Print parsedData(1)(&quot;birthdate&quot;)(&quot;month&quot;) &#39; → 1

&#39; 配列の中の値(favorite_foodsの1個目)
Debug.Print parsedData(1)(&quot;favorite_foods&quot;)(1) &#39; → Meat</code></pre></div>



<p class="wp-block-paragraph">コツは、<strong><span class="swl-marker mark_yellow">「{ }が来たらキー名」「[ ]が来たら番号」をJSONの形に合わせて交互に書いていく</span></strong>だけ、整形したJSONを見ながら指でたどると間違えにくいです</p>



<h3 class="wp-block-heading">ループでまとめて処理する</h3>



<p class="wp-block-paragraph">実際の業務では「全員分をシートに書き出す」みたいに、繰り返し処理(ループ)で回すことがほとんどです</p>



<p class="wp-block-paragraph">配列(Collection)は <code>For Each</code> でぐるっと回せます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Sub WriteToSheet()
    Dim parsedData As Object
    Dim person As Object
    Dim i As Long

    Set parsedData = ParseJson(jsonText) &#39; jsonTextは取得済みとする

    i = 1
    &#39; 配列の要素(1人分のデータ)を1件ずつ取り出す
    For Each person In parsedData
        Cells(i, 1).Value = person(&quot;name&quot;)
        Cells(i, 2).Value = person(&quot;height&quot;)
        Cells(i, 3).Value = person(&quot;birthdate&quot;)(&quot;year&quot;)
        i = i + 1
    Next person
End Sub</code></pre></div>



<p class="wp-block-paragraph">キー名が分からないオブジェクトを総当たりで見たいときは、<code>.Keys</code> でキー一覧を回す手もあります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Dim key As Variant
&#39; 1人目のオブジェクトのキーと値を全部出す
For Each key In parsedData(1).Keys
    Debug.Print key & &quot; = &quot; & parsedData(1)(key)
Next key</code></pre></div>



<p class="wp-block-paragraph">ここまでで「読み込む(パース)」側はバッチリです、配列は番号・オブジェクトはキー名、これさえ押さえれば、たいていのJSONは取り出せます</p>



<h2 class="wp-block-heading">ConvertToJson でVBAのデータをJSONに変換(生成)</h2>



<p class="wp-block-paragraph">今度は逆方向、つまりVBAのDictionaryやCollectionから<strong>JSON文字列を作る(生成する)</strong>パターンです、こちらは <code>ConvertToJson</code> 関数を使います</p>



<p class="wp-block-paragraph">「VBAで作ったデータをAPIに送りたい」「JSON形式でファイルに保存したい」みたいなときに出番があります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Sub CreateJsonString()
    Dim postData As Object
    Dim skillsCollection As Collection
    Dim jsonString As String

    &#39; データを格納する親オブジェクトを準備
    Set postData = CreateObject(&quot;Scripting.Dictionary&quot;)

    &#39; 基本的なキーと値を追加
    postData(&quot;name&quot;) = &quot;鈴木 一郎&quot;
    postData(&quot;age&quot;) = 25

    &#39; 配列用のオブジェクトを「Collection」で準備
    Set skillsCollection = New Collection

    &#39; Collectionにデータを追加
    skillsCollection.Add &quot;Word&quot;
    skillsCollection.Add &quot;PowerPoint&quot;

    &#39; 親オブジェクトにCollectionを追加
    postData.Add &quot;skills&quot;, skillsCollection

    &#39; DictionaryをJSON文字列に変換
    jsonString = ConvertToJson(postData)

    &#39; 結果をイミディエイトウィンドウに出力
    Debug.Print jsonString
    &#39; 想定される出力: {&quot;name&quot;:&quot;鈴木 一郎&quot;,&quot;age&quot;:25,&quot;skills&quot;:[&quot;Word&quot;,&quot;PowerPoint&quot;]}

    &#39; オブジェクトの解放
    Set postData = Nothing
    Set skillsCollection = Nothing
End Sub</code></pre></div>



<p class="wp-block-paragraph">ポイントは、<strong><span class="swl-marker mark_yellow">JSONの「{ }」はDictionary、「[ ]」はCollectionで組み立てる</span></strong>という点です、パースのときと逆の対応関係になっているだけなので、慣れると自然に書けるようになります</p>



<p class="wp-block-paragraph">この <code>jsonString</code> をWeb APIに送信(POSTなど)すれば、VBAで作ったデータをサーバーに送れます</p>



<h3 class="wp-block-heading">改行付きで見やすく出力したいとき</h3>



<p class="wp-block-paragraph">デフォルトのままだと、生成されるJSONは改行なしの一行になります、人が読む用にきれいに整形したいときは、<code>Whitespace</code> オプションを付けます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>&#39; インデント2つ分で改行を入れて整形
jsonString = ConvertToJson(postData, Whitespace:=2)</code></pre></div>



<p class="wp-block-paragraph">ファイルに保存して中身を確認したいときなんかは、こちらのほうが見やすくておすすめです</p>



<h2 class="wp-block-heading">VBA-JSONを使わずにJSONを扱う方法(JScript)</h2>



<p class="wp-block-paragraph">ここまでVBA-JSONをおすすめしてきましたが、「ライブラリを追加したくない」「配布先でインポートさせるのが面倒」というケースもありますよね</p>



<p class="wp-block-paragraph">そういうときの代替案として、<strong>Windows標準のJScriptエンジンを使ってJSONをパースする方法</strong>もあるので紹介しておきます</p>



<p class="wp-block-paragraph">JScriptはWindowsに最初から入っているスクリプト実行の仕組みで、これを <code>ScriptControl</code> という部品から呼び出すと、JavaScriptの <code>JSON.parse</code> をVBAから間接的に使えます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Sub ParseByJScript()
    Dim sc As Object
    Dim jsonText As String
    Dim parsed As Object

    jsonText = &quot;{&quot;&quot;name&quot;&quot;:&quot;&quot;Javeo&quot;&quot;,&quot;&quot;height&quot;&quot;:180}&quot;

    &#39; JScriptエンジンを用意
    Set sc = CreateObject(&quot;ScriptControl&quot;)
    sc.Language = &quot;JScript&quot;

    &#39; JavaScriptのJSON.parseで解析
    Set parsed = sc.Eval(&quot;(&quot; & jsonText & &quot;)&quot;)

    &#39; プロパティ名で値を取り出す
    Debug.Print parsed.name   &#39; → Javeo
    Debug.Print parsed.height &#39; → 180
End Sub</code></pre></div>



<p class="wp-block-paragraph">この方法のメリットは、外部ライブラリのインポートが要らないことです</p>



<p class="wp-block-paragraph">ただ、いくつか弱点もあって、正直なところ常用にはVBA-JSONのほうが向いています</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><code>ScriptControl</code> は32bit版のOfficeでしか動かない(64bit版では別の書き方が必要)</li>



<li>取り出した値の扱い(配列やネスト)がVBA-JSONより少しクセがある</li>



<li>Macでは使えない</li>
</ul>



<p class="wp-block-paragraph">なので個人的には、<strong><span class="swl-marker mark_yellow">基本はVBA-JSON、どうしてもライブラリを足せない事情があるときだけJScript</span></strong>という使い分けがおすすめです</p>



<h2 class="wp-block-heading">VBA-JSONのよくあるつまずき・FAQ</h2>



<p class="wp-block-paragraph">VBA-JSONでハマりやすいポイントを、質問形式でまとめておきます、エラーが出たらまずここを確認してみてください</p>



<h3 class="wp-block-heading">「ユーザー定義型は定義されていません」と出る</h3>



<p class="wp-block-paragraph">これは <strong><span class="swl-marker mark_yellow">参照設定の漏れ</span></strong>がほぼ原因です</p>



<p class="wp-block-paragraph">VBA-JSONはDictionaryを使うので、WindowsのExcelなら「ツール → 参照設定」で <code>Microsoft Scripting Runtime</code> にチェックが入っているか確認してください、入っていなければチェックを入れて保存し、もう一度実行すれば直ります</p>



<p class="wp-block-paragraph">MacのExcelの場合は、前述のVBA-Dictionary(<code>Dictionary.cls</code>)を取り込んでいるかを確認しましょう</p>



<h3 class="wp-block-heading">「KeyNotFoundError」のようなエラーが出る</h3>



<p class="wp-block-paragraph">これは、<strong>JSONに存在しないキー名を指定して取り出そうとした</strong>ときに出るエラーです</p>



<p class="wp-block-paragraph">キー名のタイプミス、大文字小文字の違い、そもそもそのキーが無いJSONだった、あたりが定番の原因ですね</p>



<p class="wp-block-paragraph">このエラーはハマりやすいので、原因の切り分けと対処法を <a href="https://javeo.jp/vba-json-error/" target="_blank" rel="noopener noreferrer">VBA-JSONでKeyNotFoundErrorが発生するときの対処をまとめた記事</a> で別途くわしく解説しています、同じエラーで止まっている方はそちらをどうぞ</p>



<h3 class="wp-block-heading">日本語が文字化けする</h3>



<p class="wp-block-paragraph">Web APIから取得したJSONの日本語が文字化けする場合は、<strong>文字コードの取り違え</strong>が原因のことが多いです</p>



<p class="wp-block-paragraph">多くのAPIはUTF-8で返してくるので、<code>responseText</code> をそのまま使うとShift_JIS環境で化けることがあります、その場合は <code>responseBody</code>(バイト列)を取得して、UTF-8として読み直すと直ります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>Dim stream As Object
Set stream = CreateObject(&quot;ADODB.Stream&quot;)
stream.Open
stream.Type = 1               &#39; バイナリ
stream.Write http.responseBody
stream.Position = 0
stream.Type = 2               &#39; テキスト
stream.Charset = &quot;UTF-8&quot;       &#39; UTF-8として読み直す
jsonText = stream.ReadText
stream.Close</code></pre></div>



<h3 class="wp-block-heading">キーがあるか分からないとき、どう書けばいい？</h3>



<p class="wp-block-paragraph">キーが存在するか不安なときは、取り出す前に <code>.Exists</code> でチェックすると安全です(Dictionaryの機能です)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="VBA"><code>If parsedData(1).Exists(&quot;weight&quot;) Then
    Debug.Print parsedData(1)(&quot;weight&quot;)
Else
    Debug.Print &quot;weightキーはありません&quot;
End If</code></pre></div>



<p class="wp-block-paragraph">これを挟んでおくと、キーが無いJSONが来てもエラーで止まらずに処理を続けられます</p>



<h2 class="wp-block-heading">VBA-JSONの活用例</h2>



<p class="wp-block-paragraph">導入と使い方が分かったところで、「で、実際どんなことに使えるの？」というイメージを少し具体的にしておきます</p>



<p class="wp-block-paragraph">いちばん多いのは、やはり <strong><span class="swl-marker mark_yellow">Web APIのレスポンス(JSON)をパースしてシートに展開する</span></strong>パターンです、為替レート・天気・在庫情報みたいな「外部の最新データ」をExcelに自動で取り込めると、手作業のコピペがまるごと無くなります</p>



<p class="wp-block-paragraph">たとえばフリマやECのAPIを叩いて、出品データや売上をExcelに集計する、みたいな使い方ですね、APIへリクエストを送る具体的な書き方は <a href="https://javeo.jp/ebay-api-request/" target="_blank" rel="noopener noreferrer">eBay APIにVBAでリクエストを送る方法の記事</a> にまとめているので、JSONパースと組み合わせると一通りの流れがつかめます</p>



<p class="wp-block-paragraph">逆に <code>ConvertToJson</code> 側だと、VBAで組み立てたデータをJSONにして、メール本文やAPIのリクエストボディに載せる、といった使い方ができます、VBAから自動でメールを送る仕組みは <a href="https://javeo.jp/vba-gmail-send/" target="_blank" rel="noopener noreferrer">VBAでGmailを送信する方法の記事</a> で扱っているので、データ生成と通知を組み合わせたい方はあわせてどうぞ</p>



<p class="wp-block-paragraph">そもそもVBA自体がはじめてで「Dim とか For Each の書き方からあやしい…」という方は、先に <a href="https://javeo.jp/vba-beginner-001/" target="_blank" rel="noopener noreferrer">VBA入門の記事</a> で基礎をさらっておくと、この記事のコードもぐっと読みやすくなると思います</p>



<h2 class="wp-block-heading">AIにVBA-JSONのコードを書いてもらうコツ</h2>



<p class="wp-block-paragraph">最近はClaudeやChatGPTにVBAコードを書いてもらう人も増えてきました、もちろんVBA-JSONを使ったコードも、頼めば書いてくれます</p>



<p class="wp-block-paragraph">ただ、AIにそのまま「VBAでJSONをパースして」と頼むと、<strong>意図しない実装を返してくる</strong>ことがあるんですよね</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>VBA-JSONを使わず、自前のJSON解析関数をゼロから書こうとする</li>



<li>参照設定の前提がズレていて、そのままだと動かないコードを返す</li>



<li>標準機能だけで無理やり読もうとして、やたら長いコードになる</li>
</ul>



<p class="wp-block-paragraph">こうしたズレを避けるには、依頼するときに次のような前提を明示するのがおすすめです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain" data-lang="AIへの依頼例"><code>VBAで○○のJSONデータをパースするコードを書いてほしい
前提:
- VBA-JSON(JsonConverter.bas)を導入済み
- ParseJson の戻り値を Dictionary / Collection として直接扱う
- 参照設定は Microsoft Scripting Runtime を入れている前提
- 配列は番号、オブジェクトはキー名でアクセスする形で</code></pre></div>



<p class="wp-block-paragraph">エラーが出たときも、コードとエラーメッセージをまとめて貼り付ければ、AIが原因と対処をだいたい提示してくれます、自分でハマる時間がかなり減らせるので、これは活用しない手はないです</p>



<p class="wp-block-paragraph">ClaudeでVBAコードを書いてもらう基本的な流れは <a href="https://javeo.jp/claude-howto-beginner/" target="_blank" rel="noopener noreferrer">Claudeの使い方を初心者向けに解説した記事</a> にまとめているので、AIにコードを頼むのが初めての方は、そちらから読むとスムーズだと思います</p>



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



<p class="wp-block-paragraph">VBA-JSONを使えば、これまでVBAでは扱いにくかったJSONが、ぐっと身近になります</p>



<p class="wp-block-paragraph">導入のポイントはこの2つだけです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><code>JsonConverter.bas</code> をVBEにインポートする</li>



<li><code>Microsoft Scripting Runtime</code> に参照設定する(Macは VBA-Dictionary)</li>
</ul>



<p class="wp-block-paragraph">使い方も、覚える関数は2つだけです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>JSONを読み込むなら <code>ParseJson</code></strong>(配列は番号、オブジェクトはキー名で取り出す)</li>



<li><strong>JSONを書き出すなら <code>ConvertToJson</code></strong>(「{ }」はDictionary、「[ ]」はCollectionで組む)</li>
</ul>



<p class="wp-block-paragraph">この導入2ステップと関数2つさえ押さえれば、Web APIとの連携をはじめ、VBAでできることの幅がかなり広がります</p>



<p class="wp-block-paragraph">まずは手元の短いJSONを <code>ParseJson</code> に通して、<code>Debug.Print</code> で1個取り出してみるところから始めると、感覚がつかみやすいと思います</p>


<div class="p-blogParts post_content" data-partsID="4601">
<div class="jv-books" id="jv-books-vba" data-shelf="vba"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> VBAの独学に効く本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240" alt="Excel VBA塾【動画×本で学ぶ!】" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel VBA塾【動画×本で学ぶ!】</p><p class="jv-book-author">たてばやし淳</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4839975728">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4839975728">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240" alt="パーフェクトExcel VBA" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">パーフェクトExcel VBA</p><p class="jv-book-author">高橋宣成</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4297108755">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4297108755">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240" alt="Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Excel マクロ&amp;VBA［実践ビジネス入門講座］完全版 第3版</p><p class="jv-book-author">国本温子</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="amazon" data-book="4815631298">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="vba" data-mall="rakuten" data-book="4815631298">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='vba';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "Excel VBA塾【動画×本で学ぶ!】", "a": "たてばやし淳", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5722/9784839975722_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839975728?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16918602%2F", "id": "4839975728"}, {"t": "パーフェクトExcel VBA", "a": "高橋宣成", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8755/9784297108755.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297108755?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16076590%2F", "id": "4297108755"}, {"t": "Excel マクロ&VBA［実践ビジネス入門講座］完全版 第3版", "a": "国本温子", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/1291/9784815631291.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4815631298?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18165619%2F", "id": "4815631298"}, {"t": "増強改訂版 できる イラストで学ぶ 入社1年目からのExcel VBA", "a": "きたみあきこ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8414/9784295018414.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4295018414?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17725381%2F", "id": "4295018414"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/vba-json/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】VBAでもWebDriverWaitを使いたい</title>
		<link>https://javeo.jp/vba-webdriverwait/</link>
					<comments>https://javeo.jp/vba-webdriverwait/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sun, 07 Sep 2025 14:44:23 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SeleniumBasic]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<category><![CDATA[マクロ]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=3569</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2024/07/ExcelVBA-1024x512.jpg" class="webfeedsFeaturedVisual" /></p>待機処理が必要な理由 SeleniumでWebサイトを操作するときにありがちな内容がこちら これらを解決するには「要素が存在する・表示される・有効になる」まで待機処理が必要です WebDriverWaitクラスでできるこ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2024/07/ExcelVBA-1024x512.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">PythonでSeleniumを利用するときに利用必須ともいえるWebDriverWaitとexpected_conditionsですが、残念ながらVBAにはありません</p>



<p class="wp-block-paragraph">この記事では、<strong>VBAでWebDriverWait</strong>+expected_conditions<strong>を再現するクラス</strong>を作り、有用な待機処理を実現します</p>



<p class="wp-block-paragraph">※Pythonの場合はこちらをどうぞ</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-excel-python wp-block-embed-excel-python"><div class="wp-block-embed__wrapper">
https://javeo.jp/python_wait/
</div></figure>
</div>



<h2 class="wp-block-heading">待機処理が必要な理由</h2>



<p class="wp-block-paragraph">SeleniumでWebサイトを操作するときにありがちな内容がこちら</p>



<ul class="wp-block-list">
<li>ページロードが完了していないうちに要素を取得してエラー</li>



<li>JavaScriptで動的に生成されるボタンや入力欄がまだ非表示</li>



<li>ボタンが表示されてもクリック可能になる前に操作しようとしてエラー</li>
</ul>



<p class="wp-block-paragraph">これらを解決するには「要素が存在する・表示される・有効になる」まで待機処理が必要です</p>



<h2 class="wp-block-heading">WebDriverWaitクラスでできること</h2>



<p class="wp-block-paragraph">今回作ったVBAクラス <code>WebDriverWait</code> は、PythonのWebDriverWaitに近い操作性で以下の条件を待機できます</p>



<figure class="wp-block-table"><table><thead><tr><th>メソッド</th><th>説明</th></tr></thead><tbody><tr><td><code>UntilPresence(By)</code></td><td>DOM上に指定した <code>By</code> が存在するまで待機</td></tr><tr><td><code>UntilVisibleLocated(By)</code></td><td>画面上に <code>By</code> で指定した要素が表示されるまで待機 (<code>IsDisplayed</code>)</td></tr><tr><td><code>UntilVisible(element)</code></td><td>指定した <code>WebElement</code> が表示されるまで待機</td></tr><tr><td><code>UntilEnableLocated(By)</code></td><td>画面上に <code>By</code> で指定した要素が利用可能になるまで待機 (<code>IsDisplayed &amp; IsEnabled</code>)</td></tr><tr><td><code>UntilEnable(element)</code></td><td>指定した <code>WebElement</code> が利用可能になるまで待機</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイント：</p>



<ul class="wp-block-list">
<li>成功時は <code>WebElement</code> を返す</li>



<li>タイムアウト時は <code>Nothing</code> を返す</li>



<li>Pythonのように例外処理に頼らずVBAらしい安全な設計</li>
</ul>



<h2 class="wp-block-heading">VBA版WebDriverWaitの実装例</h2>



<p class="wp-block-paragraph">以下のクラスモジュールをVBAに追加してください※クラス名は <strong><code>WebDriverWait</code></strong> にしています</p>



<figure class="wp-block-image size-large"><a href="https://javeo.jp/wp-content/uploads/2025/09/image.jpg"><img decoding="async" width="1024" height="538" src="https://javeo.jp/wp-content/uploads/2025/09/image-1024x538.jpg" alt="" class="wp-image-3570" srcset="https://javeo.jp/wp-content/uploads/2025/09/image-1024x538.jpg 1024w, https://javeo.jp/wp-content/uploads/2025/09/image-300x158.jpg 300w, https://javeo.jp/wp-content/uploads/2025/09/image-150x79.jpg 150w, https://javeo.jp/wp-content/uploads/2025/09/image-768x403.jpg 768w, https://javeo.jp/wp-content/uploads/2025/09/image.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<div class="wp-block-cocoon-blocks-toggle-box-1 toggle-wrap toggle-box block-box not-nested-style cocoon-block-toggle"><input id="toggle-checkbox-202509242213270" class="toggle-checkbox" type="checkbox"/><label class="toggle-button" for="toggle-checkbox-202509242213270">プログラムを見る</label><div class="toggle-content">
<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-file="WebDriverWait " data-lang="Visual Basic + VBA"><code>&#39;--- クラス名: WebDriverWait ---
Option Explicit
&#39;====================================================================================================
&#39; PythonのWebDriverWaitの一部を再現したクラス
&#39; ※条件に合致した場合はWebElementを返して一致しなかった場合はNothingを返す
&#39;   - UntilPresenceeLocated・DOM上に指定したelementが表示されるまで待機は発生し得ないから準備していない
&#39;   - UntilPresence・・・・・DOM上に指定したByが表示されるまで待機
&#39;   - UntilVisibleLocated・・画面上に指定したelementが表示されるまで待機（IsDisplayed）
&#39;   - UntilVisible ・・・・・画面上に指定したByが表示されるまで待機（IsDisplayed）
&#39;   - UntilEnableLocated・・画面上に指定したelementが利用できるまで待機（IsDisplayed & IsEnabled）
&#39;   - UntilEnable ・・・・・画面上に指定したByが利用できるまで待機（IsDisplayed & IsEnabled）
&#39;====================================================================================================
Private pDriver As Selenium.WebDriver
Private pTimeout As Double
Private pInterval As Double

Public Sub Init(driver As Selenium.WebDriver, Optional timeoutSeconds As Double = 10, Optional intervalSeconds As Double = 0.5)
    Set pDriver = driver
    pTimeout = timeoutSeconds
    pInterval = intervalSeconds
End Sub

&#39; Presence
Public Function UntilPresence(By As Selenium.By) As Selenium.WebElement
    Dim start As Double: start = Timer
    Dim elem As Selenium.WebElement
    
    Do
        On Error Resume Next
        Set elem = pDriver.FindElement(By)
        On Error GoTo 0
        
        If Not elem Is Nothing Then
            Set UntilPresence = elem
            Exit Function
        End If
        
        DoEvents
        Application.wait Now + TimeSerial(0, 0, pInterval)
    Loop While Timer - start &lt; pTimeout
    
    Set UntilPresence = Nothing
End Function

&#39; Visibility (By指定)
Public Function UntilVisibleLocated(By As Selenium.By) As Selenium.WebElement
    Dim start As Double: start = Timer
    Dim elem As Selenium.WebElement
    
    Do
        On Error Resume Next
        Set elem = pDriver.FindElement(By)
        On Error GoTo 0
        
        If Not elem Is Nothing Then
            If elem.IsDisplayed Then
                Set UntilVisibleLocated = elem
                Exit Function
            End If
        End If
        
        DoEvents
        Application.wait Now + TimeSerial(0, 0, pInterval)
    Loop While Timer - start &lt; pTimeout
    
    Set UntilVisibleLocated = Nothing
End Function

&#39; Visibility (element指定)
Public Function UntilVisible(elem As Selenium.WebElement) As Selenium.WebElement
    Dim start As Double: start = Timer
    
    Do
        If Not elem Is Nothing Then
            If elem.IsDisplayed Then
                Set UntilVisible = elem
                Exit Function
            End If
        End If
        
        DoEvents
        Application.wait Now + TimeSerial(0, 0, pInterval)
    Loop While Timer - start &lt; pTimeout
    
    Set UntilVisible = Nothing
End Function

&#39; Enable (By指定)
Public Function UntilEnableLocated(By As Selenium.By) As Selenium.WebElement
    Dim start As Double: start = Timer
    Dim elem As Selenium.WebElement
    
    Do
        On Error Resume Next
        Set elem = pDriver.FindElement(By)
        On Error GoTo 0
        
        If Not elem Is Nothing Then
            If elem.IsDisplayed And elem.IsEnabled Then
                Set UntilEnableLocated = elem
                Exit Function
            End If
        End If
        
        DoEvents
        Application.wait Now + TimeSerial(0, 0, pInterval)
    Loop While Timer - start &lt; pTimeout
    
    Set UntilEnableLocated = Nothing
End Function

&#39; Enable (element指定)
Public Function UntilEnable(elem As Selenium.WebElement) As Selenium.WebElement
    Dim start As Double: start = Timer
    
    Do
        If Not elem Is Nothing Then
            If elem.IsDisplayed And elem.IsEnabled Then
                Set UntilEnable = elem
                Exit Function
            End If
        End If
        
        DoEvents
        Application.wait Now + TimeSerial(0, 0, pInterval)
    Loop While Timer - start &lt; pTimeout
    
    Set UntilEnable = Nothing
End Function
</code></pre></div>
</div></div>



<h2 class="wp-block-heading">使い方サンプル</h2>



<p class="wp-block-paragraph">このブログの練習用ページでテストできるようにしていますので自由にテストしてください</p>



<p class="wp-block-paragraph">ポイントはInit部分で引数は下記の通りです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>wait.Init driver, {最大待機秒数}, {判定間隔}</code></pre></div>



<div class="wp-block-cocoon-blocks-toggle-box-1 toggle-wrap toggle-box block-box not-nested-style cocoon-block-toggle"><input id="toggle-checkbox-202509242213271" class="toggle-checkbox" type="checkbox"/><label class="toggle-button" for="toggle-checkbox-202509242213271">プログラムを見る</label><div class="toggle-content">
<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Sub test()
    Dim driver As New Selenium.ChromeDriver
    Dim By As New Selenium.By
    
    driver.Get &quot;https://javeo.jp/practice_scraping/&quot;

    Dim wait As New WebDriverWait
    wait.Init driver, 10, 0.5

    &#39; presence_of_element_located(By)
    Dim elemUser As Selenium.WebElement
    Set elemUser = wait.UntilPresence(By.Css(&quot;#input_test&quot;))
    

    &#39; visibility_of_element_located(By)
    Dim elemPass As Selenium.WebElement
    Set elemPass = wait.UntilVisibleLocated(By.Css(&quot;#textarea_test&quot;))

    &#39; element_to_be_clickable(By)
    Dim elemBtn As Selenium.WebElement
    Set elemBtn = wait.UntilClickableLocated(By.Css(&quot;[name=&quot;&quot;checkbox_test&quot;&quot;]&quot;))

    
    elemUser.SendKeys &quot;testuser&quot;
    elemPass.SendKeys &quot;secret&quot;
    elemBtn.Click
End Sub
</code></pre></div>
</div></div>



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



<p class="wp-block-paragraph">個人的にPythonでもSeleniumを使うのでWebDriverWaitが使えない不便さを感じていました</p>



<p class="wp-block-paragraph">PythonとVBAでは思想も違うので適当にいじってますが、ほぼ同じように使えてスッキリです！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/vba-webdriverwait/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】VBA-JSON不要！VBAでChromedriverを自動更新</title>
		<link>https://javeo.jp/vba-chromedriver-auto-update-lite/</link>
					<comments>https://javeo.jp/vba-chromedriver-auto-update-lite/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sun, 07 Sep 2025 13:09:12 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[SeleniumBasic]]></category>
		<category><![CDATA[スクレイピング]]></category>
		<category><![CDATA[マクロ]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=3564</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2024/07/ExcelVBA-1024x512.jpg" class="webfeedsFeaturedVisual" /></p>やっていること 以前作成したVBAはJSON API endpointsを総当たりで取得していたのでJSONをパースする必要がありましたが、APIでドライバのバージョンを直接取得できることに気づいて少し手順を簡略化できま [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2024/07/ExcelVBA-1024x512.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">以前に別で作成したVBAのChromedriver自動更新プログラムですが色々見直すと実はVBA-JSONなしでも十分ってことに気づいて別途作成しました</p>



<p class="wp-block-paragraph">条件付きの簡略版ではありますのでご自身の環境に合わせて使い分けてください</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-excel-python wp-block-embed-excel-python"><div class="wp-block-embed__wrapper">
https://javeo.jp/vba-chromedriver-auto-update/
</div></figure>
</div>



<h2 class="wp-block-heading">やっていること</h2>



<ol class="wp-block-list has-watery-yellow-background-color has-background">
<li>chromedriverの保存先は端末環境によって違うので候補となる3箇所のフォルダ有無を確認</li>



<li>chromeの保存先も端末環境によって違うので候補となる3箇所のフォルダ有無を確認</li>



<li>PowerShellでchromeのバージョンを取得する<br>※なので一瞬PowerShellの画面がチラつきます</li>



<li>APIでChrome.exeのビルドまで一致している最新chromedriverのダウンロードパスを取得</li>



<li>ダウンロードしたzipファイルを解凍してをseleniumbasic用のフォルダへコピーする</li>
</ol>



<p class="wp-block-paragraph">以前作成したVBAはJSON API endpointsを総当たりで取得していたのでJSONをパースする必要がありましたが、APIでドライバのバージョンを直接取得できることに気づいて少し手順を簡略化できました</p>



<p class="wp-block-paragraph">処理としては数秒しか変わりませんがVBA-JSOＮ不要になったのは個人的にGoodポイント</p>



<p class="is-style-information-box has-box-style wp-block-paragraph">ここからは以前と同じことを書いてますが単独でこのページを見ていただいた方向けです</p>



<h2 class="wp-block-heading">必要な参照設定</h2>



<p class="wp-block-paragraph">このプログラムを実行するために設定した参照設定</p>



<figure class="wp-block-image size-full"><a href="https://javeo.jp/wp-content/uploads/2023/07/image-4.png"><img decoding="async" width="455" height="317" src="https://javeo.jp/wp-content/uploads/2023/07/image-4.png" alt="" class="wp-image-3282" srcset="https://javeo.jp/wp-content/uploads/2023/07/image-4.png 455w, https://javeo.jp/wp-content/uploads/2023/07/image-4-300x209.png 300w, https://javeo.jp/wp-content/uploads/2023/07/image-4-150x105.png 150w" sizes="(max-width: 455px) 100vw, 455px" /></a></figure>



<p class="wp-block-paragraph">追加したのは下記3つ</p>



<ul class="wp-block-list has-watery-yellow-background-color has-background">
<li>Microsoft Scripting Runtime</li>



<li>Microsoft XML, v6.0</li>



<li>Selenium Type Library</li>
</ul>



<p class="wp-block-paragraph">ここは旧バージョンと変わりありません</p>



<h2 class="wp-block-heading">ファイルへの反映手順</h2>



<p class="wp-block-paragraph">サンプルファイルとソースは下部に準備していますがファイルへの反映方法がわからない方向けに反映と使い方です</p>



<p class="wp-block-paragraph">そんなことわかってるからはよソースを！って方は<a href="#program-source" data-type="internal" data-id="#program-source">下部のソース</a>まで飛んじゃってください</p>



<h3 class="wp-block-heading">プロパティウィンドウを表示しておく</h3>



<p class="wp-block-paragraph">あとからモジュール名を変更したいので、もし表示されていない時は表示しておく</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">ヘッダーメニュー：表示　→　プロパティウィンドウ　※F4がショートカットキー</p>
</div>



<figure class="wp-block-image size-large"><a href="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44.png"><img decoding="async" width="1024" height="555" src="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-1024x555.png" alt="" class="wp-image-1298" srcset="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_44.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">標準モジュールを追加</h3>



<p class="wp-block-paragraph">自動更新プログラム用にモジュールを追加する</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">ヘッダーメニュー：挿入　→　標準モジュール</p>
</div>



<figure class="wp-block-image size-large"><a href="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54.png"><img decoding="async" width="1024" height="555" src="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-1024x555.png" alt="" class="wp-image-1299" srcset="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h03_54.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">モジュール名を変更する</h3>



<p class="wp-block-paragraph">必須ではないんですが、わかりやすい運用のためにはモジュール名変更推奨です</p>



<p class="wp-block-paragraph">今回は&#8221;<span class="marker-under">ChromeDriverAutoUpdateModule</span>&#8220;にします</p>



<figure class="wp-block-image size-large"><a href="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04.png"><img decoding="async" width="1024" height="555" src="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-1024x555.png" alt="" class="wp-image-1300" srcset="https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-1024x555.png 1024w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-300x163.png 300w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-150x81.png 150w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-768x416.png 768w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04-1536x832.png 1536w, https://javeo.jp/wp-content/uploads/2023/08/2023-08-01_09h05_04.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">プログラムの使い方</h3>



<p class="wp-block-paragraph">「<span class="marker-under">&lt;モジュール名&gt;.&lt;プロシージャ名&gt;()</span>  ※&#8221;&lt;モジュール名&gt;.&#8221;は省略可」でプログラムを呼び出せるので、本体プログラムの最初に「<span class="marker-under">ChromeDriverAutoUpdateModule.ChromeDriverAutoUpdate()</span>」を追加すれば必要なときにchromedriverが自動更新されます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-file="sample" data-lang="Visual Basic + VBA"><code>Sub main()
&#39;---Chromedriverの自動更新 ※別モジュールを参照
If ChromeDriverAutoUpdateModule.ChromeDriverAutoUpdate Then
    Exit Sub
End If

&#39;－－・－－・－－以下にプログラムを－－・－－・－－
End Sub</code></pre></div>



<h2 class="wp-block-heading">Chromedriverの書き込み権限がない時</h2>



<p class="wp-block-paragraph">Winsows11からセキュリティ周りが厳しくなったのか管理者権限でSeleniumBasicをインストールした場合、Chromedriverを更新しようとすると書き込み権限なしエラーが発生するので対応まとめました</p>



<p class="wp-block-paragraph">画像の通りですが下記手順で権限設定ができます</p>



<ol class="wp-block-list has-watery-blue-background-color has-background">
<li>&#8220;C:\Program Files&#8221;にある&#8221;SeleniumBasic&#8221;フォルダを右クリック</li>



<li>右クリックメニューで&#8221;プロパティ&#8221;をクリック</li>



<li>セキュリティタブに移って&#8221;編集&#8221;ボタンをクリック</li>



<li>&#8220;Users（{コンピュータ名}\Users）&#8221;をクリック</li>



<li>&#8220;フルコントロール&#8221;にチェックがついていないはずなのでクリックしてチェックを付ける</li>



<li>&#8220;適用&#8221;ボタンをクリック</li>
</ol>



<figure class="wp-block-image size-large"><a href="https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25.png"><img decoding="async" width="1024" height="538" src="https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25-1024x538.png" alt="" class="wp-image-3175" srcset="https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25-1024x538.png 1024w, https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25-300x158.png 300w, https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25-150x79.png 150w, https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25-768x403.png 768w, https://javeo.jp/wp-content/uploads/2023/07/2025-08-01_08h03_25.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">サンプルファイル</h2>



<p class="wp-block-paragraph">JSON-VBA含めて最低限のモジュールをセットしたファイル準備したので一から作る時のベースにしていただければ</p>





<h2 class="wp-block-heading" id="program-source">最後に実際のソース</h2>



<p class="wp-block-paragraph">まずはGithubをご利用の方向けはこちら</p>



<p class="wp-block-paragraph"><a href="https://github.com/javeo2022/webdriver_manager_VBA_Lite" target="_blank" rel="noreferrer noopener">https://github.com/javeo2022/webdriver_manager_VBA_Lite</a></p>



<p class="wp-block-paragraph">例によってコピペ用はこちらです</p>



<div class="wp-block-cocoon-blocks-toggle-box-1 toggle-wrap toggle-box block-box not-nested-style cocoon-block-toggle"><input id="toggle-checkbox-202510131456140" class="toggle-checkbox" type="checkbox"/><label class="toggle-button" for="toggle-checkbox-202510131456140">ソースを見る</label><div class="toggle-content">
<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function URLDownloadToFile Lib &quot;urlmon&quot; Alias &quot;URLDownloadToFileA&quot; _
                        (ByVal pCaller As Long, _
                         ByVal szURL As String, _
                         ByVal szFileName As String, _
                         ByVal dwReserved As Long, _
                         ByVal lpfnCB As Long) As Long
Private Declare PtrSafe Function SHCreateDirectoryEx Lib &quot;shell32.dll&quot; Alias &quot;SHCreateDirectoryExA&quot; _
                        (ByVal hwnd As LongPtr, ByVal pszPath As String, ByVal psa As LongPtr) As Long
#Else
Private Declare Function URLDownloadToFile Lib &quot;urlmon&quot; Alias &quot;URLDownloadToFileA&quot; _
                        (ByVal pCaller As Long, _
                         ByVal szURL As String, _
                         ByVal szFileName As String, _
                         ByVal dwReserved As Long, _
                         ByVal lpfnCB As Long) As Long
Private Declare Function SHCreateDirectoryEx Lib &quot;shell32.dll&quot; Alias &quot;SHCreateDirectoryExA&quot; _
                        (ByVal hwnd As LongPtr, ByVal pszPath As String, ByVal psa As LongPtr) As Long
#End If

Private Type VersionType &#39;---本当はクラスオブジェクトにしたいけどこれだけのためにモジュール作りたくない
    Major As Long
    Minor As Long
    Build As Long
    Revision As Long
    BuildVersion As String
    RevisionVersion As String
End Type
Const ZIP_FILE As String = &quot;chromedriver.zip&quot;
Const DRIVER_EXE As String = &quot;chromedriver.exe&quot;
Dim workPath As String
Sub test()
Call ChromeDriverAutoUpdate
End Sub
Public Function ChromeDriverAutoUpdate(Optional ByVal ForcedExecution As Boolean = False) As Boolean
&#39;====================================================================================================
&#39;chrome.exeとchromedriver.exeのバージョンを比較してchromedriverを自動更新する
&#39;もしくは強制実行フラグ（ForcedExecution）がTrueでも実行する
&#39;====================================================================================================
    Dim chromePath As String &#39;---chrome.exeが保存されているパス
    Dim chromeFullpath As String &#39;---chrome.exeまで含めたフルパス
    Dim chromeVersion As VersionType
    Dim chromedriverPath As String
    Dim chromedriverFullPath As String
    Dim objFso As New Scripting.FileSystemObject
    &#39; ---chromedriverをダウンロード用のフォルダを作成する　※Seleniumのキャッシュ構造に合わせている
    workPath = Environ(&quot;USERPROFILE&quot;) & &quot;\.cache\selenium\seleniumbasic&quot;
    Select Case SHCreateDirectoryEx(0&, workPath, 0&)
        Case 0:
            &#39; ---作成成功
        Case 183
            &#39; ---作成済み
        Case Else:
            &#39; ---作成できなかった時
            MsgBox &quot;ダウンロード用フォルダを作成できませんでした&quot; & vbCrLf & Error(Err), vbCritical
            ChromeDriverAutoUpdate = False
            Exit Function
    End Select
    
    &#39;---chrome本体のフォルダを探す
    Select Case True
        Case objFso.FolderExists(Environ(&quot;LOCALAPPDATA&quot;) & &quot;\Google\Chrome\Application&quot;)
            chromePath = Environ(&quot;LOCALAPPDATA&quot;) & &quot;\Google\Chrome\Application&quot;
        Case objFso.FolderExists(Environ(&quot;ProgramW6432&quot;) & &quot;\Google\Chrome\Application&quot;)
            chromePath = Environ(&quot;ProgramW6432&quot;) & &quot;\Google\Chrome\Application&quot;
        Case objFso.FolderExists(Environ(&quot;ProgramFiles&quot;) & &quot;\Google\Chrome\Application&quot;)
            chromePath = Environ(&quot;ProgramFiles&quot;) & &quot;\Google\Chrome\Application&quot;
        Case Else
            MsgBox &quot;&#39;chrome&#39;フォルダが見つかりません&quot;, vbCritical
            ChromeDriverAutoUpdate = False
            Exit Function
    End Select
    
    &#39;---念のためchrome.exeを確認する
    If objFso.FileExists(chromePath & &quot;\chrome.exe&quot;) = True Then
        chromeFullpath = chromePath & &quot;\chrome.exe&quot;
    Else
        MsgBox &quot;&#39;chrome.exe&#39;が見つかりません&quot;, vbCritical
        Exit Function
    End If
    
    &#39;---SeleniumBasicのフォルダを探す
    Select Case True
        Case objFso.FolderExists(Environ(&quot;LOCALAPPDATA&quot;) & &quot;\SeleniumBasic&quot;)
            chromedriverPath = Environ(&quot;LOCALAPPDATA&quot;) & &quot;\SeleniumBasic&quot;
        Case objFso.FolderExists(Environ(&quot;ProgramW6432&quot;) & &quot;\SeleniumBasic&quot;)
            chromedriverPath = Environ(&quot;ProgramW6432&quot;) & &quot;\SeleniumBasic&quot;
        Case objFso.FolderExists(Environ(&quot;ProgramFiles&quot;) & &quot;\SeleniumBasic&quot;)
            chromedriverPath = Environ(&quot;ProgramFiles&quot;) & &quot;\SeleniumBasic&quot;
        Case Else
            MsgBox &quot;&#39;SeleniumBasic&#39;のフォルダが見つかりません&quot;, vbCritical
            ChromeDriverAutoUpdate = False
            Exit Function
    End Select
    
    &#39;---念のためchromedriver.exeを確認する
    If objFso.FileExists(chromedriverPath & &quot;\&quot; & DRIVER_EXE) = False Then
        Debug.Print &quot;&#39;chromedriver.exe&#39;が見つかりませんでした&quot;
    End If
    chromedriverFullPath = chromedriverPath & &quot;\&quot; & DRIVER_EXE
        
    &#39;---chrome.exeのバージョンを取得する
    If GetChromeVersion(chromeFullpath, chromeVersion) = False Then &#39;---chrome.exeのバージョンを取得する
        MsgBox &quot;&#39;chrome.exe&#39;のバージョンが取得できませんでした&quot;, vbCritical
        ChromeDriverAutoUpdate = False
        Exit Function
    End If
    
    &#39;---chrome.exeのバージョンに合わせたchromedriver.exeをダウンロードする
    If ChromedriverQuickCheck(chromedriverPath, chromeVersion) = False Then &#39;---chromedriverのバージョンを取得する
        MsgBox &quot;&#39;chromedriver.exe&#39;のバージョンが取得できませんでした&quot;, vbCritical
        ChromeDriverAutoUpdate = False
        Exit Function
    End If
    
    &#39;---結果として更新していない場合もあるが、更新失敗じゃなくて更新不要な判定だからTrueを返す
    ChromeDriverAutoUpdate = True
Exit Function
ErrLabel:     &#39;---予期せぬエラーの分岐
    MsgBox &quot;chromedriver の入替に失敗しました&quot; & vbCrLf & Error(Err) & vbCrLf & &quot;※この画面のキャプチャを作成者へ送ってください&quot;
    ChromeDriverAutoUpdate = False
End Function
Private Function GetChromeVersion(ByVal chromeFullpath As String, ByRef chromeVersion As VersionType) As Boolean
&#39;====================================================================================================
&#39;PowerShellでchrome.exeのバージョン情報を取得する　※一瞬PowerShellが立ち上がる
&#39;====================================================================================================
    Dim command As String
    Dim objRet As Object
    
    On Error GoTo ErrLabel
        &#39;---chromeバージョン情報の初期値
        chromeVersion.Major = 1
        chromeVersion.Minor = 0
        chromeVersion.Build = 0
        chromeVersion.Revision = 0
        &#39;---chrome.exeのバージョンを取得するPowerShellコマンド
        command = &quot;powershell.exe -NoProfile -ExecutionPolicy Bypass (Get-Item -Path &#39;&quot; & chromeFullpath & &quot;&#39;).VersionInfo.FileVersion&quot;
        &#39;---PowerShellの実行結果をセット
        Set objRet = CreateObject(&quot;WScript.Shell&quot;).Exec(command)
        &#39;---PowerShellのコマンドレットの実行結果を取得
        chromeVersion.RevisionVersion = Trim(objRet.StdOut.ReadAll)
        &#39;---情報の取得が終わったらオブジェクトをクリアする
        Set objRet = Nothing
        &#39;---改行コードが含まれているから削除する
        chromeVersion.RevisionVersion = Trim(Replace(Replace(Replace(chromeVersion.RevisionVersion, vbCrLf, vbNullString), vbCr, vbNullString), vbLf, vbNullString))
        &#39;---バージョン情報を分けて返す
        With CreateObject(&quot;VBScript.RegExp&quot;) &#39;---正規表現の準備
            .Pattern = &quot;\d+\.\d+\.\d+(\.\d+)?&quot;
            .Global = True
            If .test(chromeVersion.RevisionVersion) Then &#39;---念のため正規表現でバージョン情報をチェックする
                chromeVersion.Major = CLng(Split(chromeVersion.RevisionVersion, &quot;.&quot;)(0))
                chromeVersion.Minor = CLng(Split(chromeVersion.RevisionVersion, &quot;.&quot;)(1))
                chromeVersion.Build = CLng(Split(chromeVersion.RevisionVersion, &quot;.&quot;)(2))
                If UBound(Split(chromeVersion.RevisionVersion, &quot;.&quot;)) &gt;= 3 Then &#39;---リビジョン番号がなければ9999を仮でセット※基本あるはず
                    chromeVersion.Revision = CLng(Split(chromeVersion.RevisionVersion, &quot;.&quot;)(3))
                Else
                    chromeVersion.Revision = 9999
                End If
                chromeVersion.BuildVersion = Join(Array(chromeVersion.Major, chromeVersion.Minor, chromeVersion.Build), &quot;.&quot;) &#39;---リビジョンを覗いたショートバージョン情報をセットする
                Debug.Print &quot;Chromeのバージョン：&quot; & chromeVersion.RevisionVersion
            Else &#39;---正規表現不一致なら失敗で返す
                MsgBox &quot;chrome.exe のバージョン情報取得に失敗しました&quot; & vbCrLf & &quot;[取得バージョン情報：&quot; & chromeVersion.RevisionVersion & &quot;]&quot; & vbCrLf & &quot;※この画面のキャプチャを作成者へ送ってください&quot;
                GetChromeVersion = False
                Exit Function
            End If
        End With
        GetChromeVersion = True
    On Error GoTo 0
    Exit Function
ErrLabel:     &#39;---予期せぬエラーの分岐
    MsgBox &quot;chrome.exe のバージョン情報取得に失敗しました&quot; & vbCrLf & &quot;[&quot; & Error(Err) & &quot;]&quot; & vbCrLf & &quot;※この画面のキャプチャを作成者へ送ってください&quot;
    GetChromeVersion = False
End Function
Private Function ChromedriverQuickCheck(chromedriverPath, chromeVersion As VersionType) As Boolean
    Dim objHttp As New MSXML2.XMLHTTP60
    Dim targetVarsion As String
    Dim uri As String
    Dim api_endpoints As String
    Dim downloadPath As String
    Dim objFso As New Scripting.FileSystemObject
    Const TARGET_PLATFORM As String = &quot;win64&quot;

    api_endpoints = &quot;https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_&quot; & chromeVersion.BuildVersion
    On Error GoTo ErrLabel
        With objHttp
            .Open &quot;GET&quot;, api_endpoints, False
            .Send
            targetVarsion = .responseText &#39;---JSON endpoints から情報を収集する
            downloadPath = workPath & &quot;\&quot; & targetVarsion
            &#39;--- 念のためリビジョンバージョンを比較する
            If chromeVersion.Major &gt;= CLng(Split(targetVarsion, &quot;.&quot;)(0)) Then
                &#39;--- まだダウンロードしていなかったらダウンロードする
                If objFso.FileExists(downloadPath & &quot;\&quot; & DRIVER_EXE) = False Then
                    uri = &quot;https://storage.googleapis.com/chrome-for-testing-public/&quot; & targetVarsion & &quot;/&quot; & TARGET_PLATFORM & &quot;/chromedriver-&quot; & TARGET_PLATFORM & &quot;.zip&quot;
                    Call DownloadChromedriver(uri, targetVarsion)
                    Call objFso.DeleteFile(chromedriverPath & &quot;\&quot; & DRIVER_EXE, True)
                    Debug.Print &quot;インストールしたChromedriverのバージョン：&quot; & targetVarsion
                End If
                &#39;--- chromedriverはいつでも上書きする
                Call objFso.GetFile(downloadPath & &quot;\&quot; & DRIVER_EXE).Copy(chromedriverPath & &quot;\&quot; & DRIVER_EXE, True)
            Else
                Debug.Print &quot;Chromeのバージョンが古いためChromedriverは更新しません&quot;
            End If
        End With
    On Error GoTo 0
    ChromedriverQuickCheck = True
    Exit Function
ErrLabel:     &#39;---予期せぬエラーの分岐
    MsgBox &quot;chromedriver.exe の更新に失敗しました&quot; & vbCrLf & &quot;[&quot; & Error(Err) & &quot;]&quot; & vbCrLf & &quot;※この画面のキャプチャを作成者へ送ってください&quot;
    ChromedriverQuickCheck = False
End Function
Private Function DownloadChromedriver(ByVal url As String, targetVersion As String) As Boolean
    Dim rc As Long
    Dim downloadPath As String
    Dim newDriverPath As String
    Dim objFso As New Scripting.FileSystemObject
    Dim objFolder As Scripting.Folder
    downloadPath = workPath & &quot;\&quot; & targetVersion
    &#39; ---chromedriverのフォルダを作成する
    Select Case SHCreateDirectoryEx(0&, downloadPath, 0&)
        Case 0:
            &#39; ---作成成功
        Case 183
            &#39; ---作成済み
        Case Else:
            &#39; ---作成できなかった時
            MsgBox &quot;ChromeDriver用フォルダを作成できませんでした&quot; & vbCrLf & Error(Err), vbCritical
            DownloadChromedriver = False
            Exit Function
    End Select
    
    &#39;---ファイルをダウンロードする
    If URLDownloadToFile(0, url, workPath & &quot;\&quot; & ZIP_FILE, 0, 0) &lt;&gt; 0 Then
        MsgBox &quot;ChromeDriverをダウンロードできませんでした&quot; & vbCrLf & Error(Err), vbCritical
        DownloadChromedriver = False
        Exit Function
    End If
    Application.DisplayAlerts = False
    &#39;---zipを既定のフォルダに向けて解凍する
    With CreateObject(&quot;Shell.Application&quot;) &#39;---zipを既定のフォルダに向けて解凍する
        .Namespace((downloadPath)).CopyHere .Namespace((workPath & &quot;\&quot; & ZIP_FILE)).Items
    End With
    &#39;--- 解凍したフォルダから再起処理してchromedriver.exeのフルパスを取得する
    newDriverPath = SearchFilesRecursively(downloadPath & &quot;\&quot;, &quot;chromedriver.exe&quot;)
    If newDriverPath = &quot;&quot; Then
        MsgBox &quot;chromedriver.exe の更新に失敗しました&quot;
        DownloadChromedriver = False
    End If
    &#39;---chromedriverをバージョンフォルダ直下に移動する
    Call objFso.MoveFile(newDriverPath, downloadPath & &quot;\&quot;)
    &#39;---chromedriverがなくなった不要フォルダを削除する
    For Each objFolder In objFso.GetFolder(downloadPath).SubFolders
        objFolder.Delete True
    Next
    &#39;---zipファイルを削除する
    Call objFso.DeleteFile(workPath & &quot;\&quot; & ZIP_FILE, True)
    Application.DisplayAlerts = True
    DownloadChromedriver = True
End Function
Function SearchFilesRecursively(ByVal folderPath As String, fileName As String) As String
    &#39;====================================================================================================
    &#39; folderPathを起点に再帰処理でサブフォルダまで対象にしてfileNameを探してフルパスを返す
    &#39;====================================================================================================
    Dim objFso As New Scripting.FileSystemObject
    Dim objFolder As Scripting.Folder
    Dim subFolder As Scripting.Folder
    Dim objFile As Scripting.File
    Dim result As String

    &#39; ファイル一覧をチェック
    For Each objFile In objFso.GetFolder(folderPath).Files
        If objFile.Name = fileName Then
            SearchFilesRecursively = objFile.Path
            Exit Function
        End If
    Next objFile

    &#39; サブフォルダを再帰的に探索
    For Each subFolder In objFso.GetFolder(folderPath).SubFolders
        result = SearchFilesRecursively(subFolder.Path, fileName)
        If result &lt;&gt; &quot;&quot; Then
            SearchFilesRecursively = result
            Exit Function
        End If
    Next subFolder

    &#39; 見つからなかった場合
    SearchFilesRecursively = &quot;&quot;
End Function
</code></pre></div>
</div></div>



<h2 class="wp-block-heading">あとがき</h2>



<p class="wp-block-paragraph">こちらが後出しなので簡易版としましたがむしろこちらを正規版で過去作成した方を特殊版にした方がいいかなと思っているレベル</p>



<p class="wp-block-paragraph">今後改修するとしたらこちらになる予定です</p>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/vba-chromedriver-auto-update-lite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAのループ処理 ForとDoの違いと使い分け</title>
		<link>https://javeo.jp/vba-loop/</link>
					<comments>https://javeo.jp/vba-loop/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Wed, 03 Sep 2025 11:50:43 +0000</pubDate>
				<category><![CDATA[Excel・VBA]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=3538</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2025/09/アイキャッチフレーム-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>ループ処理とは ループ処理とは、&#8221;指定条件の間&#8220;や&#8221;条件を満たすまで&#8220;繰り返し実行する仕組みのことです 例えば、セルA1からA10までの値を順番に読み取る、リストの中から条 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2025/09/アイキャッチフレーム-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">今回はプログラミングで必ず通る道の一つ、「ループ処理」の解説です</p>



<p class="wp-block-paragraph">Excelにおいては「一行ずつ～」とか「シートを左から～」など順番に処理をする場合や「一番下の行になるまで～」のように条件を満たすまで繰り返し処理を行うことが多くあります</p>



<p class="wp-block-paragraph">各言この記事では、VBAのループ処理について、初心者にもわかりやすく丁寧に解説していきます</p>
</div>



<h2 class="wp-block-heading">ループ処理とは</h2>



<p class="wp-block-paragraph">ループ処理とは、&#8221;<span class="marker-under">指定条件の間</span>&#8220;や&#8221;<span class="marker-under">条件を満たすまで</span>&#8220;繰り返し実行する仕組みのことです</p>



<p class="wp-block-paragraph">例えば、セルA1からA10までの値を順番に読み取る、リストの中から条件に合うデータだけを抽出する、などの場面で使われます</p>



<p class="wp-block-paragraph">VBAにはいくつかのループ構文があり、目的や処理対象に応じて使い分けることが重要です</p>



<h2 class="wp-block-heading">For Next について</h2>



<p class="wp-block-paragraph">For Nextは、指定した回数だけ繰り返すループ処理の中では基本的かつ他の言語でも多く使われる処理です</p>



<p class="wp-block-paragraph">VBAでは</p>



<p class="is-style-border-left-box has-box-style wp-block-paragraph"><strong> For {変数} To {初期値} To {上限} [Step {加算数}] ・・・処理・・・ Next [{変数}] </strong></p>



<p class="wp-block-paragraph">の形で記載し、{変数}は数値になるので必然的にLong型やInteger型などを選択することに<br>※[]内は省略可能</p>



<p class="wp-block-paragraph">↓↓のサンプルコードは、1から10までの数字をカウンター変数を使って順番に表示します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim i As Long
For i = 1 To 10
    Debug.Print i
Next i</code></pre></div>



<h3 class="wp-block-heading">Stepで増減を調整</h3>



<p class="wp-block-paragraph">Stepは指定しなければ1が適用されますが、負の値含め指定すると変動幅を調整できます</p>



<p class="wp-block-paragraph">例えば「奇数行だけ～」などの制御であれば Step 2 を指定することで条件分岐しなくても奇数だけのループが実現できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>For i = 1 To 10 Step 2
    Debug.Print i &#39; ---1，3，5，7，9
Next i</code></pre></div>



<h2 class="wp-block-heading">For Each Next について</h2>



<p class="wp-block-paragraph">For Each Nextは、コレクション（複数の要素を持つオブジェクト）を対象にしたループです</p>



<p class="is-style-border-left-box has-box-style wp-block-paragraph"><strong> For Each {変数} In {オブジェクト} ・・・処理・・・ Next [{変数}] </strong></p>



<p class="wp-block-paragraph">で記載しますがこちらは変数をVariant型で指定するのがVBAでのお作法</p>



<p class="wp-block-paragraph">活用シーンはオブジェクトを取り扱う際が多いと思うのですが、覚え始めの頃はオブジェクト自体そこまで利用しないと思うので個人的には中級者以上向けかなと思っています</p>



<p class="wp-block-paragraph">↓のサンプルでは、A1からA10までのセルの値を順番に表示します</p>



<p class="wp-block-paragraph">For Eachは、対象の要素数が不定の場合や、オブジェクトを扱うときに特に有効です</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim cell As Range
For Each cell In Range(&quot;A1:A10&quot;)
    Debug.Print cell.Value
Next cell</code></pre></div>



<h3 class="wp-block-heading">配列などFor Nextで代替できる（時もある）</h3>



<p class="wp-block-paragraph">VBAにはLBound、UBoundでインデックスの最小値と最大値を取得することができます</p>



<p class="wp-block-paragraph">配列であればインデックスを順番に指定すれば代替になるのでこの方法でOK</p>



<p class="wp-block-paragraph">↓↓はどちらも同じ結果になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim sample As Variant
Dim v As Variant

sample = Array(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;)
For Each v In sample
    Debug.Print v
Next

Dim i As Long
For i = LBound(sample) To UBound(sample)
    Debug.Print sample(i)
Next</code></pre></div>



<h2 class="wp-block-heading">Do Loop について</h2>



<p class="wp-block-paragraph">Do Loopは、条件に応じて繰り返すループです</p>



<p class="wp-block-paragraph">繰り返しの終了条件を柔軟に設定できるため、より複雑な処理に向いていてFor Nextならサンプルの通りDo Loopでの代替も可能</p>



<p class="is-style-border-left-box has-box-style wp-block-paragraph"><strong>Do ・・・処理・・・Loop</strong></p>



<p class="wp-block-paragraph">だけですが細々あるので以降詳細です</p>



<h3 class="wp-block-heading">Whileを使う場合</h3>



<p class="wp-block-paragraph">Whileは「条件が真の間、繰り返す」という意味です</p>



<p class="wp-block-paragraph">これが一番の基本形というか、Do Loopの8割くらいはこの記載になるはず</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim i As Integer
i = 1
Do While i &lt;= 10
    Debug.Print i
    i = i + 1
Loop</code></pre></div>



<h3 class="wp-block-heading">Untilを使う場合</h3>



<p class="wp-block-paragraph">Untilは「条件が偽の間、繰り返す」という意味で、Whileと逆の考え方になります</p>



<p class="wp-block-paragraph">あえてUntilを使うシーンはあまりないと思うので誰かが書いたプログラムを読み解くための知識程度に</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim i As Integer
i = 1
Do Until i &gt; 10
    Debug.Print i
    i = i + 1
Loop</code></pre></div>



<h3 class="wp-block-heading">Doの後ろ・Loopの後ろ、どちらでも条件指定可能</h3>



<p class="wp-block-paragraph">Doの後ろにWhile/Untilを記載するのが基本形ですが、Loopの後ろでも動作します</p>



<p class="wp-block-paragraph">初回は無条件で処理をする場合には便利ですが、条件で何とかなるケースがほぼだと思うのでこちらも知識程度に</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Do While i &lt;= 10
    &#39; 処理
Loop

Do
    &#39; 処理
Loop While i &lt;= 10</code></pre></div>



<h3 class="wp-block-heading">条件分岐とExitでループを抜ける場合</h3>



<p class="wp-block-paragraph">While/Untilを使わなくてもIfやSelect Caseの条件分岐の中でExit Doを使えば、条件に応じてループの途中で抜けることができます</p>



<p class="wp-block-paragraph">が、条件に合致しないと無限ループに陥ることもあるのであまり推奨はしていません</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Do
    If 条件 Then Exit Do
    &#39; 処理
Loop</code></pre></div>



<h3 class="wp-block-heading">While WendはDo While Loopと同じ</h3>



<p class="wp-block-paragraph">古い構文でWhile WendはなるものがあってDo While Loopと同じ動作をします</p>



<p class="wp-block-paragraph">あえて使う必要もないのでこれまた知識程度に</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>Dim i As Integer
i = 1
While i &lt;= 10
    Debug.Print i
    i = i + 1
Wend</code></pre></div>



<h2 class="wp-block-heading">Exitを使った途中抜け</h2>



<p class="wp-block-paragraph">途中でも紹介しましたがExit For/Doで途中抜けすることもできます（他の言語ではbreakが多いです）</p>



<p class="wp-block-paragraph">このコードは、1〜4までを表示し、5でループを終了します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>For i = 1 To 10
    If i = 5 Then Exit For
    Debug.Print i
Next i</code></pre></div>



<h2 class="wp-block-heading">他言語にあるContinueについて</h2>



<p class="wp-block-paragraph">他の言語にはcontinueというキーワードがあり、「その回の処理をスキップして次のループへ進む」ことができます</p>



<p class="wp-block-paragraph">VBAにはcontinueがありませんが、GoToを使って似たような動作を実現できます</p>



<p class="wp-block-paragraph">このコードは、5のときだけ処理をスキップしますがGotoは可読性が下がるため、使用は最小限に留めるのがベター</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-vba" data-lang="Visual Basic + VBA"><code>For i = 1 To 10
    If i = 5 Then GoTo Skip
    Debug.Print i
Skip:
Next i</code></pre></div>



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



<p class="wp-block-paragraph">ループ処理はVBAの基礎中の基礎ですが、奥が深く、使いこなすことで業務効率が劇的に向上しますので是非マスターしましょう！</p>



<figure class="wp-block-table"><table><thead><tr><th>構文</th><th>用途・特徴</th></tr></thead><tbody><tr><td>For Next</td><td>回数が決まっている繰り返し処理に最適</td></tr><tr><td>For Each</td><td>コレクションやセル範囲などの要素を順に処理</td></tr><tr><td>Do While/Until</td><td>条件に応じた柔軟な繰り返し処理が可能</td></tr><tr><td>Exit For/Do</td><td>条件に応じてループを途中で抜ける</td></tr><tr><td>Goto</td><td>continueの代替として処理スキップに使用可能</td></tr></tbody></table></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/vba-loop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
