連載第13回目の目的

連載第13回では、前回の続きとしてExcel VBAにおける楽天ウェブサービスの活用について紹介します。前回で、APIの概要を紹介し、アプリケーションIDの取得やAPI呼び出しをテストしました。今回はワークシートを準備してスクリプトを作成し、サンプルを完成させます(図1)。

  • 図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回などを参考にしてください。

  • 図2:ワークシートが準備された状態

コントロールを配置する

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を準備してください。

スクリプトを書いていく

この記事は
Members+会員の方のみ御覧いただけます

ログイン/会員登録(無料)

会員サービスの詳細はこちら