<?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>WEBSERVICE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/webservice%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 17 Apr 2026 23:41:38 +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://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>WEBSERVICE関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのWEBSERVICE関数の使い方｜Webサービスからデータを取得する（※廃止予定）</title>
		<link>https://mashukabu.com/excel-function-howto-use-webservice/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-webservice/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 23:41:38 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[API連携]]></category>
		<category><![CDATA[ENCODEURL関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FILTERXML関数]]></category>
		<category><![CDATA[WEBSERVICE関数]]></category>
		<category><![CDATA[Web関数]]></category>
		<category><![CDATA[XPath]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6026</guid>

					<description><![CDATA[ExcelのWEBSERVICE関数の使い方を基本構文から実例まで解説。URL指定でWebサービスからデータを取得する手順、FILTERXML・ENCODEURLとの連携、廃止扱いの現状、代替手段（Power Query）まで丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「ExcelのセルにURLを書いたら、そのままWebの情報を引っ張ってこれないかな？」</p>



<p class="wp-block-paragraph">為替レートや天気情報、RSSフィードなど、Webにある情報をExcelに取り込みたい場面ってありますよね。毎回コピペするのは面倒ですし、自動更新されれば作業がかなり楽になります。</p>



<p class="wp-block-paragraph">ExcelのWEBSERVICE関数を使えば、URLを指定するだけでWebサービスからデータを取得できますよ。FILTERXML関数と組み合わせれば、欲しい項目だけをスマートに抜き出すこともできます。</p>



<p class="wp-block-paragraph">この記事では、ExcelのWEBSERVICE関数の基本構文から、FILTERXML・ENCODEURLとの連携、現状の「廃止扱い」の注意点、Power Queryなど代替手段までを丁寧に解説します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対象環境</strong>: Excel 2013以降のデスクトップ版（Windows/Mac）。Excel for the web・Excel Mobile では利用できません。また、2019年12月以降のMicrosoft 365では新規ファイルでの利用が廃止扱いになっています（後述）。</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのWEBSERVICE関数とは？Webからデータを取得するWeb関数</a><ol><li><a href="#toc2" tabindex="0">WEBSERVICE関数の読み方と位置づけ</a></li><li><a href="#toc3" tabindex="0">WEBSERVICE関数でできること</a></li><li><a href="#toc4" tabindex="0">対応バージョンと利用制限</a></li></ol></li><li><a href="#toc5" tabindex="0">ExcelのWEBSERVICE関数の書式と引数</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数の意味</a></li><li><a href="#toc8" tabindex="0">戻り値</a></li><li><a href="#toc9" tabindex="0">対応プロトコル</a></li></ol></li><li><a href="#toc10" tabindex="0">ExcelのWEBSERVICE関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">RSSフィードを取得する</a></li><li><a href="#toc12" tabindex="0">セル参照でURLを指定する</a></li><li><a href="#toc13" tabindex="0">動的なURLを作る</a></li></ol></li><li><a href="#toc14" tabindex="0">ExcelのWEBSERVICE関数の実践的な使い方・応用例</a><ol><li><a href="#toc15" tabindex="0">FILTERXML関数と組み合わせてXMLから値を抜き出す</a></li><li><a href="#toc16" tabindex="0">ENCODEURL関数で日本語URLをエンコードする</a></li><li><a href="#toc17" tabindex="0">為替レート取得の定番パターン</a></li></ol></li><li><a href="#toc18" tabindex="0">WEBSERVICE関数が廃止扱いになった背景と現状</a><ol><li><a href="#toc19" tabindex="0">廃止扱いの具体的な挙動</a></li><li><a href="#toc20" tabindex="0">廃止された理由</a></li><li><a href="#toc21" tabindex="0">実務での推奨方針</a></li></ol></li><li><a href="#toc22" tabindex="0">WEBSERVICE関数の代替手段</a><ol><li><a href="#toc23" tabindex="0">Power Queryを使う方法</a></li><li><a href="#toc24" tabindex="0">データ型「株価・地理」機能を使う</a></li><li><a href="#toc25" tabindex="0">VBAのXMLHTTPを使う方法</a></li></ol></li><li><a href="#toc26" tabindex="0">WEBSERVICE関数でよくあるエラーと対処法</a><ol><li><a href="#toc27" tabindex="0">#VALUE!エラーの原因と対処</a></li><li><a href="#toc28" tabindex="0">#NAME?エラーの原因と対処</a></li><li><a href="#toc29" tabindex="0">文字化けや日本語URLの対処</a></li></ol></li><li><a href="#toc30" tabindex="0">WEBSERVICE・FILTERXML・ENCODEURLの3点セット連携</a><ol><li><a href="#toc31" tabindex="0">基本テンプレート</a></li><li><a href="#toc32" tabindex="0">実務での使い分け早見表</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ｜ExcelのWEBSERVICE関数は用途を見極めて使おう</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのWEBSERVICE関数とは？Webからデータを取得するWeb関数</span></h2>



<p class="wp-block-paragraph">ExcelのWEBSERVICE関数は、指定したURLにアクセスしてその応答データをセルに返してくれるWeb関数です。Excel 2013で追加されました。</p>



<p class="wp-block-paragraph">「わざわざブラウザでページを開いてコピペする」という手間を、関数ひとつで自動化できる便利な関数ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">WEBSERVICE関数の読み方と位置づけ</span></h3>



<p class="wp-block-paragraph">WEBSERVICEは「ウェブサービス」と読みます。英語名そのままです。</p>



<p class="wp-block-paragraph">ExcelにはWeb関連の関数が3つあります。この3つは<strong>セットで使うのが基本</strong>ですよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td>ENCODEURL</td><td>URLに含める文字列をエンコードする</td></tr><tr><td>WEBSERVICE</td><td>URLにアクセスしてデータを取得する</td></tr><tr><td>FILTERXML</td><td>取得したXMLデータから必要な要素を抜き出す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">単独で使うよりも、組み合わせて使うと本領を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc3">WEBSERVICE関数でできること</span></h3>



<p class="wp-block-paragraph">WEBSERVICE関数を使うと、次のようなことができます。</p>



<ul class="wp-block-list"><li>Web APIからJSONやXMLデータを取得する</li><li>RSSフィードを取り込んで最新記事の一覧を作る</li><li>為替レートや株価などの外部データを自動取得する</li><li>郵便番号検索APIで住所を自動入力する</li><li>天気予報APIで1週間の天気をExcelに表示する</li></ul>



<p class="wp-block-paragraph">要するに、<strong>「URLで取得できるデータはExcelに引き込める」</strong>という便利な関数なんです。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョンと利用制限</span></h3>



<p class="wp-block-paragraph">ここは重要なポイントなので、しっかり押さえてくださいね。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>利用可否</th></tr></thead><tbody><tr><td>Excel 2013〜2021（Windows/Mac デスクトップ版）</td><td>利用可能</td></tr><tr><td>Microsoft 365（Windows デスクトップ版）</td><td>廃止扱い（既存ファイルのみ動作）</td></tr><tr><td>Excel for the web（ブラウザ版）</td><td>利用不可</td></tr><tr><td>Excel Mobile（iOS/Android）</td><td>利用不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Microsoft 365では、2019年12月以降の新規ファイルではWEBSERVICE関数が利用できません。これは「deprecated（廃止扱い）」というステータスで、<strong>古いファイルでは引き続き動作するものの、新規入力はブロックされる</strong>という扱いです。</p>



<p class="wp-block-paragraph">セキュリティ上の懸念と、Power Queryなどより高機能な代替手段が登場したことが廃止の背景ですよ。代替手段については記事後半で紹介しますね。</p>



<h2 class="wp-block-heading"><span id="toc5">ExcelのWEBSERVICE関数の書式と引数</span></h2>



<h3 class="wp-block-heading"><span id="toc6">基本構文</span></h3>



<pre class="wp-block-code"><code>=WEBSERVICE(URL)</code></pre>



<p class="wp-block-paragraph">カッコの中に、アクセスしたいURLを文字列として指定します。非常にシンプルな構文ですね。</p>



<h3 class="wp-block-heading"><span id="toc7">引数の意味</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>URL</td><td>必須</td><td>アクセス先のURL。HTTPまたはHTTPSのみ対応。最大32,767文字まで</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数はURLひとつだけなので、とても覚えやすい関数です。</p>



<h3 class="wp-block-heading"><span id="toc8">戻り値</span></h3>



<p class="wp-block-paragraph">戻り値は、指定したURLにアクセスして取得した<strong>生の文字列データ</strong>です。XML形式、JSON形式、プレーンテキストなど、サーバーが返す内容がそのまま返ってきます。</p>



<p class="wp-block-paragraph">戻り値の文字列の長さは<strong>最大32,767文字</strong>までです。セルの表示上限と同じですね。これを超えるデータは切り捨てられるので、大量データの取得には向いていません。</p>



<h3 class="wp-block-heading"><span id="toc9">対応プロトコル</span></h3>



<p class="wp-block-paragraph">HTTPまたはHTTPSのみ対応しています。FTPやSMTP、ファイルパス（<code>file://</code>）は使えません。</p>



<p class="wp-block-paragraph">また、サーバー側でCookie認証や複雑な認証ヘッダーを要求するAPIには対応していません。<strong>認証不要の公開API</strong>を使うのが基本ですよ。</p>



<h2 class="wp-block-heading"><span id="toc10">ExcelのWEBSERVICE関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">まずはシンプルな例で動きを確認してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">RSSフィードを取得する</span></h3>



<p class="wp-block-paragraph">試しにRSSフィードのURLを指定してみます。A1セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=WEBSERVICE(&quot;https://news.yahoo.co.jp/rss/topics/top-picks.xml&quot;)</code></pre>



<p class="wp-block-paragraph">結果として、RSSフィードのXMLデータがそのまま文字列でA1セルに返ってきます。セルをダブルクリックすると、<code><rss version="2.0">...<item><title>ニュース見出し</title>...</code> のような長い文字列が入っているのが確認できますよ。</p>



<p class="wp-block-paragraph">このままだと読みにくいので、次のFILTERXML関数で必要な部分だけを抜き出します。</p>



<h3 class="wp-block-heading"><span id="toc12">セル参照でURLを指定する</span></h3>



<p class="wp-block-paragraph">URLを直接書かずに、セル参照で渡すこともできますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>内容</th></tr></thead><tbody><tr><td>A1</td><td><code>https://example.com/api/data.xml</code></td></tr><tr><td>B1</td><td><code>=WEBSERVICE(A1)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">B1セルに <code>=WEBSERVICE(A1)</code> と入力すると、A1セルのURLにアクセスした結果が返ります。</p>



<p class="wp-block-paragraph">URLを変更するだけで結果を切り替えられるので、<strong>複数のAPIを使い分ける用途</strong>に便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">動的なURLを作る</span></h3>



<p class="wp-block-paragraph">URLの一部を変数として組み立てたいケースもあります。<code>&</code> で文字列を連結すれば、セル値を組み込んだURLが作れますよ。</p>



<pre class="wp-block-code"><code>=WEBSERVICE(&quot;https://api.example.com/weather?city=&quot; &amp; A1)</code></pre>



<p class="wp-block-paragraph">A1セルに「tokyo」と入れれば <code>?city=tokyo</code>、「osaka」と入れれば <code>?city=osaka</code> のURLにアクセスできます。</p>



<p class="wp-block-paragraph">ただし日本語を含む場合は、後述のENCODEURL関数でエンコードする必要があります。半角英数字だけなら、このシンプルな連結で問題ありませんよ。</p>



<h2 class="wp-block-heading"><span id="toc14">ExcelのWEBSERVICE関数の実践的な使い方・応用例</span></h2>



<p class="wp-block-paragraph">基本がわかったところで、実務で使う応用例を3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc15">FILTERXML関数と組み合わせてXMLから値を抜き出す</span></h3>



<p class="wp-block-paragraph">WEBSERVICE関数の一番メジャーな使い方が、FILTERXML関数との組み合わせです。取得したXMLから、XPathで指定した要素だけを抜き出せます。</p>



<pre class="wp-block-code"><code>=FILTERXML(WEBSERVICE(&quot;URL&quot;), &quot;XPath&quot;)</code></pre>



<p class="wp-block-paragraph">たとえばRSSフィードの最新記事タイトルを1件取得するなら、次のように書きます。</p>



<pre class="wp-block-code"><code>=FILTERXML(WEBSERVICE(&quot;https://news.yahoo.co.jp/rss/topics/top-picks.xml&quot;), &quot;//item/title&quot;)</code></pre>



<p class="wp-block-paragraph">Microsoft 365やExcel 2021以降ならスピル機能で複数行に展開されますよ。Excel 2013〜2019では配列数式として入力してください。</p>



<p class="wp-block-paragraph">XPathの書き方は、<a href="https://mashukabu.com/excel-function-howto-use-filterxml/">ExcelのFILTERXML関数の使い方</a> で詳しく解説しています。</p>



<h3 class="wp-block-heading"><span id="toc16">ENCODEURL関数で日本語URLをエンコードする</span></h3>



<p class="wp-block-paragraph">URLに日本語や記号を含める場合は、ENCODEURL関数でエンコードしてから渡します。</p>



<pre class="wp-block-code"><code>=WEBSERVICE(&quot;https://api.example.com/search?q=&quot; &amp; ENCODEURL(A1))</code></pre>



<p class="wp-block-paragraph">A1に「経理処理」と入れた場合、ENCODEURL関数が「%E7%B5%8C%E7%90%86%E5%87%A6%E7%90%86」に変換してくれます。これでサーバー側でも正しく受け取れますよ。</p>



<p class="wp-block-paragraph">日本語を含むURLを直接 WEBSERVICE に渡すと、サーバーによっては<strong>文字化けや400エラー</strong>になることがあります。<strong>日本語が絡むときは必ず ENCODEURL を通す</strong>のがセオリーです。</p>



<p class="wp-block-paragraph">詳しくは <a href="https://mashukabu.com/excel-function-howto-use-encodeurl/">ExcelのENCODEURL関数の使い方</a> を参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc17">為替レート取得の定番パターン</span></h3>



<p class="wp-block-paragraph">Excelで為替レートを自動取得するパターンもよく使われます。無料の為替APIを使った例です。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>内容</th></tr></thead><tbody><tr><td>A1</td><td><code>USD</code></td></tr><tr><td>A2</td><td><code>JPY</code></td></tr><tr><td>B1</td><td><code>=FILTERXML(WEBSERVICE("https://www.floatrates.com/daily/" & LOWER(A1) & ".xml"), "//item[targetCurrency='" & A2 & "']/exchangeRate")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">これで「1USD＝何JPY」の為替レートが取れますよ。</p>



<p class="wp-block-paragraph">セルの値を変えれば他の通貨ペアにも対応できるので、<strong>為替計算シートのテンプレート</strong>として使いやすいですね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>WEBSERVICE関数は、シートを開くたびや再計算のたびにAPIへアクセスします。リクエスト頻度に制限のあるAPIでは、意図せず制限に引っかかる可能性があるので注意してくださいね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">WEBSERVICE関数が廃止扱いになった背景と現状</span></h2>



<p class="wp-block-paragraph">2019年12月以降のMicrosoft 365では、WEBSERVICE関数が廃止扱い（deprecated）になっています。ここは実務で必ず知っておきたいポイントですよ。</p>



<h3 class="wp-block-heading"><span id="toc19">廃止扱いの具体的な挙動</span></h3>



<p class="wp-block-paragraph">「廃止扱い」と聞くと「もう使えないの？」と思うかもしれませんが、実際の挙動はもう少し複雑です。</p>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>挙動</th></tr></thead><tbody><tr><td>既存ファイルに書かれたWEBSERVICE関数</td><td>そのまま動作する（計算される）</td></tr><tr><td>新規ファイルで入力</td><td>関数名が認識されず <code>#NAME?</code> エラーになる場合がある</td></tr><tr><td>組織ポリシーでブロック</td><td>管理者が無効化している場合は使えない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つまり、<strong>過去に作ったファイルは動くが、新規に作るファイルでは使えない</strong>というのが基本的な状況です。</p>



<p class="wp-block-paragraph">Excel 2013〜2021（パッケージ版）やMac版では今でも普通に使えるので、Microsoft 365限定の話ですよ。</p>



<h3 class="wp-block-heading"><span id="toc20">廃止された理由</span></h3>



<p class="wp-block-paragraph">Microsoftが WEBSERVICE 関数を廃止扱いにした理由は、大きく2つあります。</p>



<ol class="wp-block-list"><li><strong>セキュリティ上の懸念</strong>: 悪意のあるURLをセルに埋め込む攻撃ベクトルになりうる</li><li><strong>代替手段の成熟</strong>: Power Query が標準搭載され、より安全で高機能なデータ取得が可能になった</li></ol>



<p class="wp-block-paragraph">要するに、「セキュリティリスクが高く、もっと良い代替手段があるから引退させる」という判断ですね。</p>



<h3 class="wp-block-heading"><span id="toc21">実務での推奨方針</span></h3>



<p class="wp-block-paragraph">これから新しく作る業務ファイルでは、<strong>WEBSERVICE関数よりもPower Queryを使うのがおすすめ</strong>です。</p>



<p class="wp-block-paragraph">ただし、次のようなケースでは引き続きWEBSERVICE関数が有効ですよ。</p>



<ul class="wp-block-list"><li>過去に作った既存ファイルのメンテナンス</li><li>Excel 2016/2019/2021のパッケージ版を使っている環境</li><li>シンプルなRSS取得など軽い用途</li><li>学習目的やプロトタイピング</li></ul>



<p class="wp-block-paragraph">仕事で長期運用するシートなら、次のセクションで紹介するPower Queryへの移行を検討してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc22">WEBSERVICE関数の代替手段</span></h2>



<p class="wp-block-paragraph">WEBSERVICE関数の代わりとして、Excelには複数の選択肢があります。用途に応じて使い分けましょう。</p>



<h3 class="wp-block-heading"><span id="toc23">Power Queryを使う方法</span></h3>



<p class="wp-block-paragraph">一番おすすめなのが <strong>Power Query</strong>（データ > データの取得）です。Microsoft 365・Excel 2016以降に標準搭載されています。</p>



<p class="wp-block-paragraph">Power Queryには、次のようなメリットがありますよ。</p>



<ul class="wp-block-list"><li>JSON・XML・CSV・HTMLなど多様な形式に対応</li><li>認証付きAPIに対応（OAuth・Basic認証など）</li><li>32,767文字制限なし</li><li>データ整形（列追加・フィルタ・結合）まで一貫して処理できる</li><li>定期更新のスケジュール設定が可能</li></ul>



<p class="wp-block-paragraph">手順は「データ」タブ →「データの取得」→「Webから」→ URLを入力、という流れです。GUIで操作できるので、関数を書くより直感的ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">データ型「株価・地理」機能を使う</span></h3>



<p class="wp-block-paragraph">Microsoft 365には「株価」「地理」という<strong>データ型機能</strong>があります。リンクされたデータ型とも呼ばれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>データ型</th><th>取得できる情報</th></tr></thead><tbody><tr><td>株価</td><td>株価、時価総額、為替レート、変化率など</td></tr><tr><td>地理</td><td>人口、首都、GDP、通貨、タイムゾーンなど</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い方は簡単で、セルに「USD/JPY」と入れて「データ > 株価」を選ぶだけ。Excelが自動でデータを引き込んできますよ。</p>



<p class="wp-block-paragraph">株価や為替レートだけなら、WEBSERVICE関数よりもこちらの方が手軽で安全です。</p>



<h3 class="wp-block-heading"><span id="toc25">VBAのXMLHTTPを使う方法</span></h3>



<p class="wp-block-paragraph">より高度な制御が必要なら、VBAの <code>MSXML2.XMLHTTP</code> を使う方法もあります。Excelのマクロから直接HTTPリクエストを投げられますよ。</p>



<pre class="wp-block-code"><code>Sub getApiData()
    '--- 変数宣言 ---
    Dim http As Object
    Dim url As String

    '--- 取得先URL ---
    url = &quot;https://api.example.com/data.xml&quot;

    '--- HTTPリクエスト送信 ---
    Set http = CreateObject(&quot;MSXML2.XMLHTTP&quot;)
    http.Open &quot;GET&quot;, url, False
    http.send

    '--- 結果をセルに書き込み ---
    Range(&quot;A1&quot;).Value = http.responseText
End Sub</code></pre>



<p class="wp-block-paragraph">認証ヘッダーの追加や、POSTリクエストの送信、長大なレスポンスの処理など、WEBSERVICE関数ではできない処理が可能ですよ。</p>



<p class="wp-block-paragraph">ただしVBAはマクロ有効ブック（.xlsm）が必要で、組織によってはマクロブロックがかかっています。<strong>Power Queryが使えるならPower Queryを優先</strong>するのが無難ですね。</p>



<h2 class="wp-block-heading"><span id="toc26">WEBSERVICE関数でよくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">実際にWEBSERVICE関数を使うと、エラーに遭遇することがあります。原因と対処法を表でまとめておきますね。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー/症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>URLがHTTP/HTTPS以外、または不正な形式</td><td>httpsで始まる正しいURLを指定する</td></tr><tr><td>#VALUE!</td><td>サーバーが200以外のHTTPステータスを返した</td><td>URLをブラウザで開いて動作確認する</td></tr><tr><td>#VALUE!</td><td>タイムアウト（30秒以上応答なし）</td><td>APIの応答速度を確認する、キャッシュを検討</td></tr><tr><td>#N/A</td><td>Excel for the web・Mobileで実行している</td><td>デスクトップ版Excelで開く</td></tr><tr><td>#NAME?</td><td>Microsoft 365で新規ファイル利用（廃止扱い）</td><td>Power Queryなど代替手段を使う</td></tr><tr><td>文字化け</td><td>日本語URLを直接指定している</td><td>ENCODEURL関数でエンコードする</td></tr><tr><td>結果が切れる</td><td>32,767文字の上限を超えている</td><td>Power QueryかVBAで取得する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc27">#VALUE!エラーの原因と対処</span></h3>



<p class="wp-block-paragraph">一番多いのが #VALUE! エラーです。主な原因は3つあります。</p>



<p class="wp-block-paragraph"><strong>パターン1: URLの形式が不正</strong></p>



<pre class="wp-block-code"><code>=WEBSERVICE(&quot;example.com/data.xml&quot;)</code></pre>



<p class="wp-block-paragraph"><code>https://</code> のようなスキームが抜けていると #VALUE! になります。必ず <code>https://</code> や <code>http://</code> から始まるフルURLを指定してくださいね。</p>



<p class="wp-block-paragraph"><strong>パターン2: サーバーが4xx・5xx応答を返した</strong></p>



<p class="wp-block-paragraph">URL自体は正しくても、サーバー側で認証エラー（401）やNotFound（404）を返すと #VALUE! が返ります。</p>



<p class="wp-block-paragraph">まずはブラウザで同じURLを開き、<strong>画面が正しく表示されるか</strong>を確認しましょう。ブラウザで見られないURLはWEBSERVICE関数でも取得できません。</p>



<p class="wp-block-paragraph"><strong>パターン3: タイムアウト</strong></p>



<p class="wp-block-paragraph">WEBSERVICE関数には30秒程度のタイムアウトがあります。応答の遅いサーバーではタイムアウトでエラーになりますよ。</p>



<h3 class="wp-block-heading"><span id="toc28">#NAME?エラーの原因と対処</span></h3>



<p class="wp-block-paragraph">Microsoft 365で新規ファイルに入力したときに #NAME? エラーになったら、これが <strong>廃止扱い</strong>の影響です。</p>



<pre class="wp-block-code"><code>=WEBSERVICE(&quot;https://example.com&quot;)</code></pre>



<p class="wp-block-paragraph">Excelが「この関数は知らない」と判断してエラーを返してきます。この場合は <strong>Power Queryを使うしかありません</strong>。</p>



<p class="wp-block-paragraph">古いExcelファイル（.xls形式、2019年より前に作ったファイル）で開き直せば動く場合もありますが、基本は代替手段に移行するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc29">文字化けや日本語URLの対処</span></h3>



<p class="wp-block-paragraph">URLに日本語や記号が含まれるとき、ENCODEURL関数を通さないと文字化けしますよ。</p>



<pre class="wp-block-code"><code># 誤った書き方
=WEBSERVICE(&quot;https://api.example.com/search?q=経理処理&quot;)

# 正しい書き方
=WEBSERVICE(&quot;https://api.example.com/search?q=&quot; &amp; ENCODEURL(&quot;経理処理&quot;))</code></pre>



<p class="wp-block-paragraph">ENCODEURL関数は日本語・記号・スペースなどを「%XX」形式に変換してくれます。<strong>URLに変動する値を埋め込むときは必ずENCODEURLを通す</strong>と覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc30">WEBSERVICE・FILTERXML・ENCODEURLの3点セット連携</span></h2>



<p class="wp-block-paragraph">最後に、Web関数3点セットの定番パターンをまとめておきますね。この形をテンプレとして覚えると、応用範囲がグッと広がりますよ。</p>



<h3 class="wp-block-heading"><span id="toc31">基本テンプレート</span></h3>



<pre class="wp-block-code"><code>=FILTERXML(WEBSERVICE(ENCODEURL(URL)), &quot;XPath&quot;)</code></pre>



<p class="wp-block-paragraph">処理の流れはこうです。</p>



<ol class="wp-block-list"><li>ENCODEURLでURLを安全な形式にエンコード</li><li>WEBSERVICEでエンコード済みURLにアクセスしてXMLを取得</li><li>FILTERXMLでXPathを使って必要な要素を抜き出す</li></ol>



<p class="wp-block-paragraph">それぞれの関数の役割を分担することで、<strong>どんなWebデータでも扱える万能パターン</strong>になります。</p>



<h3 class="wp-block-heading"><span id="toc32">実務での使い分け早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数</th></tr></thead><tbody><tr><td>URLでWebデータを丸ごと取得したい</td><td>WEBSERVICE のみ</td></tr><tr><td>取得したXMLから一部だけ抜き出したい</td><td>WEBSERVICE + FILTERXML</td></tr><tr><td>URLに日本語・記号を含める必要がある</td><td>ENCODEURL を追加</td></tr><tr><td>JSON形式のAPIを使いたい</td><td>Power Query（WEBSERVICEはJSON非対応）</td></tr><tr><td>認証付きAPIを使いたい</td><td>Power Query または VBA</td></tr><tr><td>32,767文字を超える大量データ</td><td>Power Query または VBA</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WEBSERVICE関数が得意なのは「<strong>公開されているシンプルなXML/RSSデータの取得</strong>」です。JSONや認証付きAPI、大量データはPower Queryに任せるのが賢い使い分けですよ。</p>



<h2 class="wp-block-heading"><span id="toc33">まとめ｜ExcelのWEBSERVICE関数は用途を見極めて使おう</span></h2>



<p class="wp-block-paragraph">ExcelのWEBSERVICE関数の使い方を、基本から応用まで一通り紹介してきました。要点をおさらいしておきますね。</p>



<ul class="wp-block-list"><li>WEBSERVICE関数は <strong>URLを指定してWebからデータを取得する</strong> Web関数</li><li>構文は <code>=WEBSERVICE(URL)</code>。引数はURL1つだけとシンプル</li><li>戻り値は<strong>生の文字列データ</strong>。最大32,767文字まで</li><li>HTTP/HTTPSのみ対応。FTP・認証付きAPIは不可</li><li>Excel 2013以降のデスクトップ版で利用可能。Webブラウザ版・Mobile版は非対応</li><li><strong>Microsoft 365では2019年12月以降、新規ファイルでの利用が廃止扱い</strong></li><li>FILTERXML・ENCODEURLとセットで使うのが定番パターン</li><li>新規の業務ファイルでは <strong>Power Query や データ型機能</strong> の利用が推奨</li></ul>



<p class="wp-block-paragraph">「URLでデータを取れる時代は終わりつつある」と捉えて、<strong>既存ファイルのメンテナンスではWEBSERVICE、新規ではPower Query</strong>と使い分けるのが実務的な判断ですよ。</p>



<p class="wp-block-paragraph">Web関数を使いこなせると、Excelの活用シーンがグッと広がります。下の関連記事もあわせて読んで、Excelのデータ連携スキルを高めてみてくださいね。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-filterxml/">ExcelのFILTERXML関数の使い方</a> — 取得したXMLの解析に必須</li><li><a href="https://mashukabu.com/excel-function-howto-use-encodeurl/">ExcelのENCODEURL関数の使い方</a> — 日本語URLのエンコードに必須</li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">Excel関数一覧（アルファベット順）</a> — 関数全体を俯瞰したいとき</li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別リファレンス</a> — 目的から関数を探したいとき</li></ul>



<p class="wp-block-paragraph">Webデータを自在に扱えるビジネスパーソンを目指していきましょうね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-webservice/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
