連載第13回目の目的
連載第13回では、前回の続きとしてExcel VBAにおける楽天ウェブサービスの活用について紹介します。前回で、APIの概要を紹介し、アプリケーションIDの取得やAPI呼び出しをテストしました。今回はワークシートを準備してスクリプトを作成し、サンプルを完成させます(図1)。
▼完成サンプルのExcelファイル
https://github.com/wateryinhare62/mynavi_excelvba_webservice
なお、本連載では動作確認をWindows 10 Pro(64bit)、Microsoft 365(Excel 16.0、VBA 7.1)で行っています。旧バージョンや単体のExcelで試す場合にはご注意ください。
ワークシートの準備
APIが使えることを確認できたら、ワークシートを用意し、基本的なデザインを行っていきましょう。配置および書き込むものは、以下のとおりです。
- アプリケーションのタイトルやコントロールのキャプション(説明は省略)
- 「書名」「著者名」「出版社名」テキストボックス
- 「ジャンル」「表示順」コンボボックス
- 「前のページ」「次のページ」「検索開始」ボタン
- 検索結果を収納する表
- クレジット表示
上記のテキストおよびコントロールを、図2を参考に書き込み、配置してください。具体的な手順は、第6回などを参考にしてください。
コントロールを配置する
8つのコントロール(テキストボックス×3、コンボボックス×2、ボタン×3)をワークシート上部に配置して、プロパティを設定します。これらのプロパティの内容は、表1のとおりです。
▼表1:各コントロールに設定するプロパティ
コントロール | プロパティ | 値 |
---|---|---|
「書名」テキストボックス | Name | TitleTextBox |
「著者名」テキストボックス | Name | AuthorTextBox |
「出版社名」テキストボックス | Name | PublisherTextBox |
「並び順」コンボボックス | Name | SortComboBox |
Style | fmStyleDropDownList | |
「検索する」ボタン | Name | SearchCommandButton |
「前のページ」ボタン | Name | PreviousCommandButton |
「次のページ」ボタン | Name | NextCommandButton |
検索結果を収納する表を作成する
表は、以下の構成とします。APIのデフォルトでは最大30個/ページが取得されるので、30個の検索結果が収納できるようにします。範囲の書式を「文字列」にしておくと、検索結果の書き込みで表示が乱れにくくなります。
- ISBN(ISBNコード)
- 書名(取得された書籍タイトル)
- 著者(取得された著者)
- 出版社(取得された出版社)
- 発売日(取得された発売日)
- サイズ(取得された判型、外形等)
- 税込み価格(取得された税込み価格)
- 説明(取得された商品説明)
クレジット表記を配置する
楽天グループ提供のWebサービスでは、クレジットの表記が義務付けられていますので、適当な形式で表記します。
▼楽天ウェブサービス: クレジット表示方法と注意 | ご利用ガイド
https://webservice.rakuten.co.jp/guide/credit
今回は、最もシンプルな「テキスト形式」を使用することにします。 ここで、ブックを保存しておきます。ブック名は何でもよいですが、VBAのスクリプトを実行できるようにするために、形式を「Excel マクロ有効ブック (*.xlsm)」にしてください。このあとも、適当なタイミングでブックを保存してください。
VBA-JSONを準備する
楽天ブックス系APIは、基本的に結果をJSONデータで返します。このようにVBAからJSONデータを使いますので、そのために必要なライブラリを準備します。第3回などと同様に、「VBA-JSON」を使用します。第3回の記事を参照して、「Microsoft Scripting Runtime」への参照設定を有効にすることを含めて、VBA-JSONを準備してください。