NDL 書 誌 データ 検 索 シート のカスタマイズマニュアル 国 立 国 会 図 書 館 サーチリンク 集 で 紹 介 しています NDL 書 誌 データ 取 得 検 索 シート ( 同 志 社 大 学 原 田 隆 史 氏 )の 中 から NDL 書 誌 データ 検 索 シート のカスタマイズ 方 法 について 説 明 します NDL 書 誌 データ 取 得 検 索 シート( 同 志 社 大 学 原 田 隆 史 氏 ) http://www.slis.doshisha.ac.jp/~ushi/toolndl/ < 目 次 > 1. カスタマイズの 前 に p 1 2. 表 示 させるデータ 項 目 の 追 加 p 2 (ア) 表 示 箇 所 の 確 認 p 2 (イ) 出 力 したいメタデータ 項 目 の XPath の 追 加 p 2 (ウ) 検 索 結 果 の 削 除 範 囲 の 変 更 p 4 (エ) 補 足 表 示 させるデータ 項 目 を 変 更 する 場 合 p 6 3. 検 索 項 目 の 変 更 p 7 4. 参 考 (ア) 開 発 タブの 表 示 p 9 (イ) DC-NDL と XPath p 12 (ウ) SRU で 検 索 できる 項 目 p 14 1. カスタマイズの 前 に NDL 書 誌 データ 検 索 シート は Excel のマクロ 機 能 を 使 用 しています この Excel のマクロの 記 述 を 修 正 することで シートのカスタマイズができます 本 マニュアルでは データ 項 目 の 追 加 と 検 索 項 目 の 変 更 を 例 に マクロを 編 集 してカスタマイズを 行 う 方 法 を 説 明 します (なお 本 マニュアルの 画 面 と 手 順 は Excel 2013 を 使 用 したものです お 使 いの Excel のバージョンによって 画 面 や 手 順 が 異 なる 場 合 があります ) また シートのカスタマイズにあたっては マクロの 編 集 画 面 を 開 く 必 要 があります マクロの 編 集 画 面 の 表 示 には いくつかの 方 法 がありますが ここでは 開 発 タブからマクロの 編 集 画 面 を 操 作 する 方 法 を 記 載 しています お 使 いの Excel で 開 発 タブの 表 示 方 法 が 不 明 な 場 合 は 4. 参 考 (ア) 開 発 タブの 表 示 をご 覧 ください 1 / 14
2. 表 示 させるデータ 項 目 の 追 加 (ア) 表 示 箇 所 の 確 認 NDL 書 誌 データ 検 索 シート では 2015 年 12 月 現 在 タイトル 著 者 著 者 標 目 出 版 者 出 版 年 件 名 分 類 JP 番 号 ( 全 国 書 誌 番 号 ) 資 料 種 別 の 9 種 類 のデータ 項 目 が 取 得 できます これらの 項 目 に 加 えて 内 容 細 目 を 右 端 のセルに 追 加 して 表 示 させたい 場 合 を 例 として 説 明 します ここに 内 容 細 目 も 表 示 させたい (イ) 出 力 したいメタデータ 項 目 の XPath の 追 加 内 容 細 目 を 追 加 するためには XPath を 追 加 します 手 順 は 以 下 のとおりです (1) 開 発 タブを 選 択 し Visual Basic をクリックして マクロの 編 集 画 面 を 表 示 します (2) Module1 を 選 択 します Module1 の 内 容 が 表 示 されます 2 / 14
(3) Module1 のプロシージャ Sub search 内 の ' 出 力 したいメタデータ 項 目 の XPath を 書 く 以 下 の 個 所 を 修 正 します シングルクォーテーション( ) 以 降 の 赤 字 の 部 分 はコメントです コメントとは マクロの 内 容 について 補 足 説 明 などを 記 入 したものです コメントの 部 分 はマクロの 動 作 には 影 響 しません なお 下 記 では 赤 字 で 表 現 していますが 使 用 している Excel の 設 定 によっては 緑 字 など 別 の 色 で 表 示 される 場 合 があります < 修 正 前 > ' 出 力 したいメタデータ 項 目 のXPathを 書 く 'XPathの 書 き 方 については http://ja.wikipedia.org/wiki/xml_path_language を 参 照 Dim xpaths(8) As String ' 項 目 を 増 やした 場 合 は clearresult 関 数 の 中 も 修 正 すること xpaths(0) = "dcterms:title" 'タイトル xpaths(1) = "dc:creator" ' 著 者 xpaths(2) = "dcterms:creator//foaf:name" ' 著 者 標 目 xpaths(3) = "dcterms:publisher/foaf:agent/foaf:name" ' 出 版 者 xpaths(4) = "dcterms:issued dcterms:date" ' 出 版 年 月 日 xpaths(5) = "dcterms:subject//rdf:value" ' 件 名 xpaths(6) = "dcterms:subject/@rdf:resource dc:subject" ' 分 類 (NDLC, NDC(9 版 ), DDC) 'xpaths(7) = "dc:subject" ' 分 類 (リテラル) xpaths(7) = "dcterms:identifier[@rdf:datatype=""http://ndl.go.jp/dcndl/terms/jpno""]" 'JP 番 号 xpaths(8) = "dcndl:materialtype/@rdfs:label" ' 資 料 種 別 < 修 正 後 > 追 加 変 更 箇 所 を 網 掛 け ' 出 力 したいメタデータ 項 目 のXPathを 書 く 'XPathの 書 き 方 については http://ja.wikipedia.org/wiki/xml_path_language を 参 照 Dim xpaths(9) As String ' 項 目 を 増 やした 場 合 は clearresult 関 数 の 中 も 修 正 すること xpaths(0) = "dcterms:title" 'タイトル 8 を 9 に 変 更 します xpaths(1) = "dc:creator" ' 著 者 ( 最 後 の xpaths の 括 弧 内 の 数 字 に 合 わせます) xpaths(2) = "dcterms:creator//foaf:name" ' 著 者 標 目 xpaths(3) = "dcterms:publisher/foaf:agent/foaf:name" ' 出 版 者 xpaths(4) = "dcterms:issued dcterms:date" ' 出 版 年 月 日 xpaths(5) = "dcterms:subject//rdf:value" ' 件 名 xpaths(6) = "dcterms:subject/@rdf:resource dc:subject" ' 分 類 (NDLC, NDC(9 版 ), DDC) 'xpaths(7) = "dc:subject" ' 分 類 (リテラル) xpaths(7) = "dcterms:identifier[@rdf:datatype=""http://ndl.go.jp/dcndl/terms/jpno""]" 'JP 番 号 xpaths(8) = "dcndl:materialtype/@rdfs:label" ' 資 料 種 別 xpaths(9) = "dcndl:partinformation//dcterms:title" ' 内 容 細 目 xpaths (9)の 行 を 追 加 します イコール(=)の 右 側 の 記 載 方 法 は 4. 参 考 (イ)DC-NDL と Xpath をご 確 認 ください 3 / 14
(4) マクロを 保 存 して 編 集 画 面 を 閉 じます (5) シートに 表 示 項 目 の 見 出 しを 追 加 します (ウ) 検 索 結 果 の 削 除 範 囲 の 変 更 検 索 結 果 を 削 除 する 際 に 検 索 結 果 のクリア ボタンを 使 います 表 示 させる 項 目 が 増 えた 場 合 には このクリア ボタンでクリアする 範 囲 も 変 更 する 必 要 があります 以 下 手 順 を 記 載 します 4 / 14
(1) Module1 の Sub cleareresult() 内 の 以 下 の 個 所 を 修 正 します < 修 正 前 > Sub cleareresult() Dim i As Integer Dim j As Integer For i = result_start + 1 To result_start + num_item + 1 For j = 2 To 2 +9 ' 出 力 項 目 を 増 やした 場 合 はここの 値 も 修 正 すること Cells(i, j).clearcontents Cells(i, j).interior.colorindex = 0 Next Next End Sub < 修 正 後 > 修 正 箇 所 を 網 掛 け Sub cleareresult() Dim i As Integer Dim j As Integer For i = result_start + 1 To result_start + num_item + 1 For j = 2 To 2 +10 ' 出 力 項 目 を 増 やした 場 合 はここの 値 も 修 正 すること Cells(i, j).clearcontents Cells(i, j).interior.colorindex = 0 Next Next End Sub 9 10 に 修 正 します ( 最 後 の xpaths の 括 弧 内 の 数 字 よりも 大 きな 任 意 の 数 字 してください) (2) マクロを 保 存 して 編 集 画 面 を 閉 じます 5 / 14
(エ) 補 足 表 示 させるデータ 項 目 を 変 更 する 場 合 データ 項 目 の 追 加 ではなく 表 示 する 項 目 を 変 更 する 場 合 は 以 下 のように 簡 単 な 修 正 で 済 みます JP 番 号 を 内 容 細 目 に 変 更 する 方 法 は 以 下 のとおりです < 修 正 前 > ' 出 力 したいメタデータ 項 目 のXPathを 書 く 'XPathの 書 き 方 については http://ja.wikipedia.org/wiki/xml_path_language を 参 照 Dim xpaths(8) As String ' 項 目 を 増 やした 場 合 は clearresult 関 数 の 中 も 修 正 すること xpaths(0) = "dcterms:title" 'タイトル xpaths(1) = "dc:creator" ' 著 者 xpaths(2) = "dcterms:creator//foaf:name" ' 著 者 標 目 xpaths(3) = "dcterms:publisher/foaf:agent/foaf:name" ' 出 版 者 xpaths(4) = "dcterms:issued dcterms:date" ' 出 版 年 月 日 xpaths(5) = "dcterms:subject//rdf:value" ' 件 名 xpaths(6) = "dcterms:subject/@rdf:resource dc:subject" ' 分 類 (NDLC, NDC(9 版 ), DDC) 'xpaths(7) = "dc:subject" ' 分 類 (リテラル) xpaths(7) = "dcterms:identifier[@rdf:datatype=""http://ndl.go.jp/dcndl/terms/jpno""]" 'JP 番 号 xpaths(8) = "dcndl:materialtype/@rdfs:label" ' 資 料 種 別 < 修 正 後 > 修 正 箇 所 を 網 掛 け ' 出 力 したいメタデータ 項 目 のXPathを 書 く 'XPathの 書 き 方 については http://ja.wikipedia.org/wiki/xml_path_language を 参 照 Dim xpaths(8) As String ' 項 目 を 増 やした 場 合 は clearresult 関 数 の 中 も 修 正 すること xpaths(0) = "dcterms:title" 'タイトル xpaths(1) = "dc:creator" ' 著 者 xpaths(2) = "dcterms:creator//foaf:name" ' 著 者 標 目 xpaths(3) = "dcterms:publisher/foaf:agent/foaf:name" ' 出 版 者 xpaths(4) = "dcterms:issued dcterms:date" ' 出 版 年 月 日 xpaths(5) = "dcterms:subject//rdf:value" ' 件 名 xpaths(6) = "dcterms:subject/@rdf:resource dc:subject" ' 分 類 (NDLC, NDC(9 版 ), DDC) 'xpaths(7) = "dc:subject" ' 分 類 (リテラル) xpaths(7) = "dcndl:partinformation//dcterms:title" ' 内 容 細 目 xpaths(8) = "dcndl:materialtype/@rdfs:label" ' 資 料 種 別 xpaths (7)を 修 正 します イコール(=)の 右 側 の 記 載 方 法 は 4. 参 考 (イ)DC-NDL と Xpath をご 確 認 ください マクロの 記 載 内 容 で 他 に 修 正 する 箇 所 はありませんが 画 面 の 見 出 しも 忘 れずに 修 正 しましょう!! 6 / 14
3. 検 索 項 目 の 変 更 NDL 書 誌 データ 検 索 シート は 通 常 はキーワードによる 検 索 ですが Excel のマクロを 修 正 することで 検 索 項 目 を 変 更 することが 可 能 です 今 回 は 検 索 項 目 の キーワード を 作 成 者 ( 著 者 ) に 変 更 する 方 法 を 例 に 説 明 します ここを 著 者 による 検 索 にしたい (1) マクロ 編 集 画 面 を 開 いて Module1 を 選 択 するまでの 方 法 は 2 と 同 じです (2 (イ) 出 力 したいメタデータ 項 目 のXpath の 追 加 (1)~(2) 参 照 ) (2) Module1 の Sub Search 内 の ' CQL クエリ 作 るよっ 以 下 の 個 所 を 修 正 します < 修 正 前 > 変 更 する 箇 所 を 網 掛 け Sub Search(num_item As Integer, offset As Long, keyword As String, NDC As String, NDLC As String, SortBy() As String, row As Integer) Dim Url As String Dim Query As String Dim qc As Integer ' 検 索 するなら 消 しましょう cleareresult 'Url = "http://iss.ndl.go.jp/api/sru?operation=searchretrieve&version=1.2&recordschema=dcndl&onlybib=true&r ecordpacking=xml" Url = "http://iss.ndl.go.jp/api/sru?operation=searchretrieve&version=1.2&recordschema=dcndl&onlybib=true&r ecordpacking=xml" Url = Url & "&maximumrecords=" & num_item ' 検 索 結 果 の 最 大 数 Url = Url & "&startrecord=" & offset ' CQLクエリ 作 るよっ Query = "&query=" qc = 0 If keyword <> "" Then keyword = urlencode(keyword) Query = Query & "anywhere%3d%22" & keyword & "%22" qc = qc + 1 End If anywhere は キーワード を 表 します < 修 正 後 > 変 更 した 箇 所 を 網 掛 け Url = Url & "&startrecord=" & offset ' CQLクエリ 作 るよっ Query = "&query=" qc = 0 If keyword <> "" Then keyword = urlencode(keyword) Query = Query & "creator%3d%22" & keyword & "%22" qc = qc + 1 End If creator ( 作 成 者 )に 修 正 します 他 に 検 索 できる 項 目 は 4. 参 考 (ウ)SRU で 検 索 できる 項 目 をご 確 認 ください 7 / 14
(3) マクロの 保 存 をして 編 集 画 面 を 閉 じます (4) シートの 検 索 項 目 の 見 出 しを 変 更 します このマニュアルでは 検 索 項 目 を 変 更 するカスタマイズを 説 明 しました 新 規 に 検 索 項 目 を 追 加 したい という 要 望 もあるかと 思 いますが 検 索 項 目 の 変 更 に 比 べて 簡 単 にご 紹 介 できる 内 容 ではありませんので 変 更 までにしておきたいと 思 います 今 後 要 望 が 多 いようであれば 別 途 マニュアルの 作 成 を 検 討 します 8 / 14
4. 参 考 (ア) 開 発 タブの 表 示 マクロ 編 集 画 面 を 表 示 するための 開 発 タブの 表 示 方 法 を 説 明 します なお 本 手 順 は 初 回 のみ 行 えばよく 一 度 開 発 タブを 表 示 させれば 次 回 以 降 は 不 要 です (1) NDL 書 誌 データ 検 索 シート (ndls_search.xlsm)を 開 きます 開 発 のタブが 表 示 されている 場 合 は 以 下 (2)からの 対 応 は 必 要 ありません (2) ファイル を 選 択 します 9 / 14
(3) < 情 報 > 画 面 が 開 き オプション を 選 択 すると <Excel のオプション> 画 面 が 表 示 されるので リボンのユーザ ー 設 定 を 選 択 します 10 / 14
(4) リボンをカスタマイズします という 案 内 が 出 るので リボンのユーザー 設 定 の 開 発 にチェックを 入 れ OK ボタン を 押 します (5) 開 発 のタブが 表 示 されていれば 完 了 です 11 / 14
(イ)DC-NDL と XPath 表 示 するデータ 項 目 を 追 加 変 更 する 場 合 には データ 項 目 の XPath を 記 載 する 必 要 があります 国 立 国 会 図 書 館 サーチが 提 供 するデータ 項 目 は DC-NDL(RDF)フォーマット 仕 様 をご 覧 ください 表 示 できる 主 なデータ 項 目 は 国 立 国 会 図 書 館 サーチの 書 誌 情 報 画 面 に 表 示 される 内 容 と 同 じです 書 誌 情 報 画 面 の 右 下 にある 書 誌 情 報 を DC-NDL(RDF)で 出 力 をクリックすると RDF 形 式 でデータ 項 目 を 確 認 することができます 国 立 国 会 図 書 館 サーチの 書 誌 情 報 画 面 表 示 できる データ 項 目 書 誌 情 報 を DC-NDL(RDF)で 出 力 をクリックします 書 誌 情 報 を DC-NDL(RDF)で 表 示 した 内 容 dcndl:bibresource から 後 に 表 示 したいデータ 項 目 が 存 在 しています 内 容 細 目 ( 部 分 タイトル)に 関 連 する 部 分 上 記 の 図 で 分 かるように 表 示 したいデータ 項 目 を 見 つけ 出 し その 場 所 ( 住 所 )を XPath として 記 載 します お 使 い のパソコンで 例 えると ファイルの 階 層 を 示 したディレクトリ 構 造 に 似 ているので それをイメージしていただくと 良 いかと 思 います 12 / 14
たとえば 内 容 細 目 ( 部 分 タイトル)の 場 所 は 以 下 のように 表 現 します 表 示 させる 各 データ 項 目 で 共 通 の 部 分 /searchretrieveresponse/records/record/recorddata/rdf:rdf/dcndl:bibresource/dcndl:partinformation/rdf:descri ption/dcterms:title 上 記 の 表 現 ではとても 長 くて 記 載 するのが 面 倒 なので マクロの 中 では 表 示 させる 各 データ 項 目 で 共 通 の 部 分 を 以 下 のように 表 現 しています Const NodePath = "/searchretrieveresponse/records/record/recorddata/rdf:rdf/dcndl:bibresource" この 表 現 によって XPath に 記 載 するのは 以 下 の 部 分 だけでよくなります dcndl:partinformation/rdf:description/dcterms:title ちなみに rdf:description 部 分 は 省 略 できますので 最 終 的 には 以 下 のように XPath が 記 載 できます dcndl:partinformation//dcterms:title 13 / 14
(ウ)SRU で 検 索 できる 項 目 NDL 書 誌 データ 検 索 シート は 国 立 国 会 図 書 館 サーチの 検 索 用 API の 一 つである SRU の 機 能 を 用 いて 検 索 して います 以 下 に SRU で 検 索 できる 主 な 項 目 をご 紹 介 します マクロに 記 載 する 際 は 参 照 名 を 用 います 検 索 項 目 を 含 めた SRU の 詳 細 な 仕 様 については 国 立 国 会 図 書 館 サーチ 外 部 インタフェース 仕 様 書 をご 覧 くださ い SRU で 検 索 できる 主 な 項 目 検 索 できる 項 目 参 照 名 備 考 タイトル 作 成 者 出 版 者 分 類 (NDC NDLC LCC DCC UDC) 分 類 (NDLC) 内 容 記 述 主 題 title creator publisher ndc ndlc description subject ISBN isbn 10 桁 13 桁 のどちらの 形 式 でも 検 索 可 能 ISSN 全 国 書 誌 番 号 開 始 出 版 年 月 日 (YYYY-MM-DD) 終 了 出 版 年 月 日 (YYYY-MM-DD) issn jpno from until キーワード anywhere 国 立 国 会 図 書 館 サーチの 簡 易 検 索 と 同 一 資 料 種 別 mediatype 国 立 国 会 図 書 館 サーチの 詳 細 検 索 の 資 料 種 別 に 対 応 1 : 本 2 : 記 事 論 文 3 : 新 聞 4 : 児 童 書 5 :レファレンス 情 報 6 :デジタル 資 料 7 :その 他 8 : 障 害 者 向 け 資 料 ( 障 害 者 向 け 資 料 検 索 対 象 資 料 ) 9 : 立 法 情 報 14 / 14