[記事数:1,202] 日本を元気にするキーワード、地域活性化×中小企業× ITのTips and Quotes(秘訣と引用文)
creative  link  memo 

Excel WEBSERVICE関数を使ってWeb APIを利用する方法 Wikipedia、郵便番号、Bing、ニコ動など



Microsoft Office 2013で「WEBSERVICE」「ENCODEURL」「FILTERXML」の3つの関数が追加され、これらの関数を使うと、Webサービス、つまり公開されているWeb APIをVBAでコードを書くことなく利用できるようになります。

関数 説明 書式 引数
ENCODEURL URL 形式でエンコードされた文字列を返します。 ENCODEURL(文字列) 文字列:URL 形式でエンコードする文字列です。
WEBSERVICE インターネットかイントラネットの Web サービスからのデータを返します。 WEBSERVICE(URL) URL:必ず指定します。Web サービスの URL を指定します。
FILTERXML 指定された XPath に基づいて XML コンテンツの特定のデータを返します。 FILTERXML(XML, XPath) XML:必ず指定します。有効な XML 形式の文字列を指定します。

XPath:必ず指定します。標準 XPath 形式の文字列を指定します。

使い方としては、ENCODEURL関数でエンコードしたクエリ文字列を、WEBSERVICE関数で指定したURLに渡し、結果として得られるXMLからFILTERXML関数を使って任意の値を取得する(値はXPath式で指定)、という流れになります。

WikipediaAPIを利用してWikipediaの記事内容を取得

SimpleAPI「WikipediaAPI」を利用してWikipediaの記事内容を取得する場合

SimpleAPI WikipediaAPI 出力仕様

language : 言語名
id : Wikipedia内の管理コード
url : Wikipediaにリンクする際のURL
title : キーワードのタイトル
body : 本文のダイジェスト
length : 本文の長さ
redirect : 別キーワードへのリダイレクトがあるかどうか。あれば1、なければ0。
strict : そのキーワードと完全一致する場合には1。完全一致しない場合は0。
datetime : 更新日付

郵便番号検索API 郵便番号から住所を取得

郵便番号検索APIを利用すれば、下記のように郵便番号から住所を取得することもできます。

Bingの検索結果を取得

Bingの検索結果はRSS(XML)形式で取得することができるので、Web関数を使ってBingの検索結果を取得する例を紹介します。

使用するセルは下記の通りです。

C2 : 検索するキーワード
C3 : ENCODEURL関数でURLエンコードしたキーワード
C4 : WEBSERVICE関数で取得したデータ
C5 : FILTERXML関数で抽出した値

1. セルC2にBingで検索したいキーワードを入力します。

2. セルC3に[

]と入力します。

3. セルC4に[

]と入力します。

4. セルC5に[

]と入力します。ここで指定しているXPathは、複数ある「/rss/channel/item」要素の中から1番目の要素の子要素である「title」の値を取得する、という意味を表しています。「/rss/channel/item[2]/title」とすれば、2番目の要素の値を取得することができます。

5. 上記式は、[

]のように1つにまとめることもできます。

以上のように、Excel 2013で追加されたWeb関数を活用すれば、プログラムを組むことなく標準の関数だけでインターネット上のデータを取得することができます。

郵便番号検索API

D列のセルはC1で入力された郵便番号をAPIでもって県名を取得しています。

E列のセルもC1で入力された郵便番号をAPIでもって市名を取得しています。

F列のセルもC1で入力された郵便番号をAPIでもって市名以下を取得しています。

後はG列の住所を表示する列のセルにD,E,F列の値を繋げれば完成です。

Google日本語入力APIで郵便番号

まずK列のセルは郵便番号を入力したJ1セルの内容をGoogle日本語APIに送り変換候補を取得しますが、ここでちょっとだけポイントがあります。というのもGoogle日本語入力では全角で途中にハイフンを使用した(例:100-0001)形でないと変換候補として住所が取得できません。全角で入力するやり方でも良かったんですが、入力切替するのが嫌だったので半角で入力しつつもAPIに送る際は全角にしながら途中にハイフンを入れてやる処理が必要になります。ここではLEFT関数で左から3文字分を抽出しハイフンを足して、またLEFT関数で左から数えて4文字分から4文字抽出し後ろにつけてハイフンが入った形に整形します。全角に関してはURLの「=ja-Hira」だけでOKです。

次はL列です。郵便番号検索APIと違い、Google日本語のAPIの場合は変換元と変換候補がテキストとして返ってきます。それも2セットになっているので形を整形する必要があります。MID関数を使用して指定位置から必要な住所の先頭を抽出します。

最後はM列。L列で先頭は整形されているので後方を同じくMID関数で整形します。後方の位置には丁度「コンマ」があるのでFIND関数で探せばOK。

これで郵便番号から住所を自動で入力することが出来ます。

ニコニコ動画search APIで検索結果の情報を取得

タグ検索のURLは以下の形式になっています。

またタグ検索のオプションでページ、ソートの種類、昇降順を指定できます。URLに以下のパラメータを付ける事で指定できます。

ソートの種類
値 ソートの種類
n コメントが新しい(default)
v 再生数
m マイリスト数
r コメント数
f 投稿日時
l 再生時間

昇降順
値 昇降順
d 降順(default)
a 昇順

例えば投稿日の古い順(投稿日の昇順)に検索したときの1ページ目が見たい場合

をURLに付け足します。

最後にRSSとして取得するために&rss=2.0を付け足します。
例として「早見沙織」を投稿日の古い順にタグ検索の2ページ目のRSSは以下のURLになります。

このURLをEXCEL上でつくります。

セルA2:任意の語句

セルB2

セルC2

セルD3

これらを使えば以下の様にタイトルのリストを作ることも可能です。

XPath の例

GoogleニュースのRSS





FavoriteLoadingお気に入りAdd to favorites
Google画像検索から一括ダウンロード ImageSpider Google画像検索から指定した語句の画像を一括ダウンロードする「ImageSpider」 キーワードをGoogle画像検索と同じ要領で、いくつか指定してダウンロードボタンをクリックするだけ 指定のキーワードでGoogle画像検索を行い検索結果の画像を...
Excel 重複データチェックを条件付き書式でおこなう方法... 下の図のようなデータがあって、重複データを削除したい場合、重複データの削除のページでご紹介している方法で、簡単に削除できます。 でも、この重複データの削除は、データを削除する前に、どのデータが重複しているのかを確認することができません。 そこで、どのデータが重複データなのかを確認した...
Excel関数 住所の数字を半角数字に変換する(ASC関数)... ●概要● 複数の人が作成した住所録データなどを集めると、入力方法の違いにより全角数字と半角数字が混ざってしまうことがあります。 今回は、文字列内の全角英数カナ文字を半角英数カナ文字に変換するASC関数を使い、文字列に含まれる数字を半角に統一する方法を紹介します。 ●詳細● 変換後のデータを...
Excel ハイパーリンクのURLを別のセルに表示したい... 現在アクティブなシートのすべてのハイパーリンクのURL を 右隣のセルに書き出すマクロです。 マクロのセキュリティを中にしてエクセルを再起動する(ご利用のエクセルのバージョンに応じた方法で) ブックを開く ALT+F11でVBE画面を出す 挿入メニューから標準モジュールを挿入する 現れ...
Excel VBA Wikipediaからタイトル、本文のダイジェスト、Wikipediaへのリンク... はじめに 今回は、インターネット上の百科事典「Wikipedia」をExcelから利用してみます。ブラウザの画面では情報が多すぎますが、APIを使うことにより、要約されたテキストとして取得できるので、用語一覧などを作る際にも便利です。動作確認は、Windows 7、Excel 20...
Excel VLOOKUP関数で#N/Aエラーを表示させない&結果を0にしない方法... エクセル(Excel)で関数の値が空だったり、検索対象の範囲内に該当する検索値がなかった場合、#N/Aエラーになります。 IFERROR関数を使うと#N/Aの表示を消す(表示しない)ように指定することができます。 IFERROR関数を使って#N/Aエラーを表示しない方法 ...
マクロVBA 連続数値を入れる 連続数値を入れる|Excelマクロの記録で覚えるVBA 数式の結果を値として取得する エクセルVBAについて数式の結果を値として取得するコードはあります... - Yahoo!知恵袋 =WEBSERVICE($C$3&C14&$C$6&$C$5&...
Excel SUBSTITUTE関数で指定した文字を他の文字に置き換える方法 2 番目だけの置き換え... SUBSTITUTE関数の使い方 Excel(エクセル)のSUBSTITUTE関数は、文字列中の指定した文字を他の文字に置き換えます。 できること 他の文字に置き換える Excelの対応バージョン Excel2...
Word 段組み(1ページに2列以上の段)を設定する... Word2007では、文書の一部分だけを段組みにできる。タイトルや見出しは1段で本文は2段組み、といったレイアウトも可能だ。ここでは、カーソル以降の文章を段組みにする方法、範囲指定した文章だけを段組みにする方法の2つを紹介しよう。 カーソルから後ろの文章を段組みにする場合は、次のように操作する...
Googleドライブ スプレッドシートで行または列を見出しとして固定する方法... 行や列を固定する、固定解除する 行や列を固定すると、スクロールしても特定のデータを常に同じ場所に表示できます。 スプレッドシートで、固定する行または列の中のセルを 1 つ選択します。 次へ をクリックします。 固定する行または列の数を選択します。 固定解除するには、 または を選...




コメントを残す