質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3636閲覧

スプレッドシートでISBNを特定の列に入力したら、別の行にその本の名前が表示されるコードを教えてください

fmy-

総合スコア6

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2019/09/09 13:38

編集2019/09/10 02:10

スプレッドシートの特定の列(例えばB列)にISBNを入力すると、自動で国立国会図書館などから検索して、その本のタイトルを別の列(例えばC列)に入力するようなスクリプトのコードを教えてください。

お願いします。

https://teratail.com/questions/210493#reply-310803に質問してあるのですが、
インターネットから拾ってきたこのコードはなぜかエラーが出てしまい、使えませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macaron_xxx

2019/09/10 00:13

前の質問はどうしたんですか?
fmy-

2019/09/10 02:08

https://teratail.com/questions/210493#reply-310803 にしてあります。ネットで拾ってきたコードだったのですが、エラーが出て使えなかったので、別の方法はないかと思い、今回質問させていただきました。
macaron_xxx

2019/09/10 02:37

いや、前の質問回答ついてるじゃないですか。 放置したまま別の質問を立てるのはナンセンスです。
guest

回答1

0

ベストアンサー

AB
9781234567890=fetchData(A1)

ってやれば取れると思う。ちょっと関数がまともに動かなくなったんで途中から検証できてないですが。

javascript

1function fetchData(isbn) { 2 const elm = parseXml(reqInfo(isbn)); 3 const NsDc = XmlService.getNamespace("dc", 'http://purl.org/dc/elements/1.1/'); 4 const NsDcNdl = XmlService.getNamespace("dcndl", 'http://ndl.go.jp/dcndl/terms/'); 5 return [getTitle(elm, NsDc) || "", getSeriesTitle(elm, NsDcNdl) || "", getCreator(elm, NsDc) || "", getPublisher(elm, NsDc) || "", getPubDate(elm) || "", getExtent(elm, NsDc) || "", getVolume(elm, NsDcNdl) || "", getEdition(elm, NsDcNdl) || "",]; 6} 7function buildUrl(isbn) { 8 return 'http://iss.ndl.go.jp/api/opensearch?isbn=' + isbn 9} 10function reqInfo(isbn) { 11 return UrlFetchApp.fetch(buildUrl(isbn)).getContentText(); 12} 13function parseXml(xmlString) { 14 return XmlService.parse(xmlString).getRootElement().getChildren("channel")[0].getChildren("item")[0]; 15} 16function getTitle(itemElement, ns) { 17 return getChildTextOfNs(itemElement, ns,"title"); 18} 19function getSeriesTitle(itemElement, ns) { 20 return getChildTextOfNs(itemElement, ns, "seriesTitle"); 21} 22function getCreator(itemElement, ns) { 23 return getChildTextOfNs(itemElement, ns,"creator"); 24} 25function getPublisher(itemElement, ns) { 26 return getChildTextOfNs(itemElement, ns,"publisher"); 27} 28function getPubDate(itemElement) { 29 return getChildTextOf(itemElement, "pubDate"); 30} 31function getExtent(itemElement, ns) { 32 return getChildTextOfNs(itemElement, ns, "extent"); 33} 34function getVolume(itemElement, ns) { 35 return getChildTextOfNs(itemElement, ns,"volume"); 36} 37function getEdition(itemElement, ns) { 38 return getChildTextOfNs(itemElement, ns,"edition"); 39} 40function getChildTextOf(elem, name) { 41 return elem ? elem.getChildText(name) : ""; 42} 43function getChildTextOfNs(elem, ns, name) { 44 return elem ? elem.getChildText(name, ns) : ""; 45}

投稿2019/09/10 13:48

編集2019/09/10 13:49
papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/09/10 13:51

後生ですから解決にしてください。 作者が頼まれて使っているわけじゃなくて、自分が勝手に見つけてきて使い熟せてない、引用元も示さずに丸パクリしたのを後出ししたものを、「インターネットから拾ってきたこのコードはなぜかエラーが出てしまい」みたいに悪し様に罵しるのはやめてください
fmy-

2019/09/11 03:17

すみません。そのようなつもりは毛頭なく、私自身が何も知らなかったので少しでもアドバイスが頂けたらと思い、質問させていただきました。 気分を害して申し訳ありませんでした。以後気をつけさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問