各種の値を格納する名前を定義し、固定値と関数を設定する

まず、前回と全く同様、以下の名前を定義し、固定値を設定しておきます。

図3.共通引数などの格納場所の準備

次に、リクエストの検索のため、セルの名前定義と固定値の設定をします。表示用の日本語と、Amazon用の名前とをペアで用意することにより、VBAのロジックをシンプルにできます。また、商品種別ごとに異なる引数名、タグ名を2次元の表に配置して、ロジックの共通化を図ります。

図4.検索引数などの格納場所の準備

表3.検索引数のためのセルの名前定義と設定値

セルの名前定義 説明 設定値(ワークシート関数)
ItemGroupList 商品種別の表示名 本、DVD、ミュージック
ItemGroup 選択した商品種別 (コンボボックスで選択した値が入る)
ItemGroupIndex 製品種別のインデックス =MATCH(ItemGroup,ItemGroupList,0)
SearchIndexList 商品種別の引数名 Books、DVD、Music
SearchKeyTableJP 検索項目の表示名 (表4を参照)
SearchKeyTable 検索項目の引数名 (表5を参照)
SortTypeTableJP ソート順の表示名 売れている順、価格の安い順、発行日の新しい順
SortType 選択したソート順 (コンボボックスで選択した値が入る)
SortTypeIndex ソート順のインデックス =MATCH(SortType,SortTypeTableJP,0)
SortTypeTable ソート順の引数名 (表6を参照)

表4.検索項目の表示名の設定値

書籍列 DVD列 ミュージック列
著者 出演者 アーティスト
書名 タイトル タイトル
出版社 発行元 レーベル
キーワード キーワード キーワード

表5.検索項目の引数名の設定値

Books列 DVD列 Music列
Author Actor Artist
Title Title Title
Publisher Publisher MusicLabel
Keywords Keywords Keywords

表6.ソート順の引数名の設定値

Books列 DVD列 Music列
salesrank salesrank salesrank
pricerank pricerank pricerank
daterank -releasedate -releasedate

ItemGroup、SortTypeには、後述するコンボボックスで選択した値が入りますので、設定は不要です。

ItemGroupIndexには、ワークシート関数「=MATCH(ItemGroup,ItemGroupList,0)」を設定してください。MATCH関数は、一覧表の中で指定した値が何番目にあるかを返す関数です。第1引数に値、第2引数に一覧表のセル範囲を指定します。第3引数に0を指定した場合は、完全一致を表します。SortTypeIndexについても同様に「=MATCH(SortType,SortTypeTableJP,0)」を設定してください。

最後に、レスポンスの取得データ表示のため、表7のようにセルの名前定義と固定値の設定をしておきます。

表7.取得データ項目名のセルの名前定義と設定値

セルの名前定義 説明 設定値
ResItemTableJP 取得データ項目の表示名 (表8を参照)
ResItemTable 取得データ項目のタグ名 (表9を参照)

表8.取得データ項目の表示名の設定値

書籍行 著者 タイトル 出版社 標準価格 発行日
DVD行 出演者 タイトル 発行元 標準価格 リリース日
ミュージック行 アーティスト タイトル レーベル 標準価格 リリース日

表9.取得データ項目のタグ名の設定値

Books行 Author Title Publisher ListPrice PublicationDate
DVD行 Actor Title Publisher ListPrice ReleaseDate
Music行 Artist Title Publisher ListPrice ReleaseDate