EC-CUBE管理画面の商品検索処理

前回の「EC-CUBE管理画面の商品登録新規ページ表示処理」では商品登録画面の自動化について解説しましたが、今回は商品検索を自動化させます。
まずは処理の流れは以下になります。

  • ①EC-CUBE管理画面にログイン
  • ②「商品マスター」をクリック
  • ③「商品ID」「商品コード」「商品名」に検索キーワード入力
  • ④「この条件で検索する」をクリック

それでは、見ていきましょう。

スポンサー リンク

EC-CUBE管理画面商品検索のサブルーチン


Sub ecCubeProductSearch(objIE As InternetExplorer, _
                        Optional revType As Boolean = False)

 'objIEチェック
 If objIE Is Nothing Then: Call btnLogin

 Call tagClick(objIE, "a", "商品マスター")

 Call formText(objIE, "search_product_id", Range("productid"))
 Call formText(objIE, "search_product_code", Range("productcode"))
 Call formText(objIE, "search_name", Range("productname"))
    
 Call tagClick(objIE, "a", "この条件で検索する")

 If revType = True Then: Call tagClick(objIE, "a", "編集")

End Sub

EC-CUBE管理画面商品検索のマクロ


Sub btnProductSea()

 Call ecCubeProductSearch(objIE)

End Sub

EC-CUBE管理画面に自動ログインのマクロ


Sub btnLogin()

 Call ecCubeLogin(objIE, Range("eccubeurl"), Range("eccubeid"), Range("eccubepass"))
 Call iePosition(objIE, Range("menuwidth"), Range("menulayout"))

End Sub

設定画面

ECCUBE商品情報操作画面

実行結果

ECCUBE商品情報件検索ページ

※Webブラウザ部分の結果

今回もEC-CUBE本家サイトのデモ管理画面を利用させてもらいます。
ログインに必要なIDとパスワードは以下となります。

  • ID:admin
  • パスワード:password

ecCubeProductSearchサブルーチン」には引数は以下の2つが設定されています。

引数名データ型内容値の事例初期値省略
objIEInternetExplorerIEオブジェクトobjIE,objIE2×
revTypeBoolean検索・編集タイプTrue,FalseFalse
ecCubeProductSearch("IEオブジェクト", "検索・編集タイプ")

「objIE」は必須項目です。
「objIE」は複数ページを表示させる場合に「objIE」「objIE2」と複数オブジェクトを生成します。
「revType」は検索・編集タイプのチェック用として利用します。
「編集」については、次回説明しますが、検索までの処理と同じ処理を辿ります。
まったく同じ処理なら、その部分だけオブジェクト化すればよいのですが、今回は「検索」「編集」だけですので、1つのサブルーチンの中で処理をする形にしています。
詳しい内容は後ほど説明していきますので、1つずつ見ていきましょう。


If objIE Is Nothing Then: Call btnLogin

こちらは、objIEが生成されているかのチェックです。
objIEが存在しない場合は、「btnLoginマクロ」を呼び出します。


Call tagClick(objIE, "a", "商品マスター")

こちらは指定したタグをクリックする「tagClickサブルーチン」を利用して、aタグ内に「商品マスター」の文字列があるaタグをクリックします。
商品マスターページのリンクで検索画面を表示させます。

検索HTMLソース


<div id="products" class="contents-main">
<form name="search_form" id="search_form" method="post" action="?">
 <input type="hidden" name="transactionid" value="9d8a7ae2f5b74d36fbf11cf1f787c01ec74c99f9"><input type="hidden" name="mode" value="search"><h2>検索条件設定</h2>
 <table>
  <tr><th>商品ID</th><td colspan="3">
  <input type="text" name="search_product_id" value="1" maxlength="9" style="" size="30" class="box30">
  </td></tr><tr><th>商品コード</th><td>
  <input type="text" name="search_product_code" value="" maxlength="50" style="" size="30" class="box30">
  </td><th>商品名</th><td>
  <input type="text" name="search_name" value="" maxlength="50" style="" size="30" class="box30">
  </td></tr>
(省略)
 </table>
 <div class="btn-area"><ul><li>
 <a class="btn-action" href="javascript:;" onclick="fnFormModeSubmit('search_form', 'search', '', ''); return false;"><span class="btn-next">この条件で検索する</span></a></li></ul></div>
 </div>
</form>

Call formText(objIE, "search_product_id", Range("productid"))
Call formText(objIE, "search_product_code", Range("productcode"))
Call formText(objIE, "search_name", Range("productname"))

こちらは検索キーワードを入力する部分になります。
テキストボックス・テキストエリアに値を入力する「formTextサブルーチン」を利用して、「商品ID」「商品コード」「商品名」のテキストボックスにそれぞれ設定している値をを自動入力します。
また、検索キーワードについても名前定義を設定しています。
今回は以下のように検索キーワードの名前定義を設定していますので、お好きな名前で設定してください。

Range("productid")=商品ID
Range("productcode")=商品コード
Range("productname")=商品名

Call tagClick(objIE, "a", "この条件で検索する")

こちらは指定したタグをクリックする「tagClickサブルーチン」を利用して、aタグ内に「この条件で検索する」の文字列があるaタグをクリックします。
この条件で検索する」ボタンをクリックする処理になります。


If revType = True Then: Call tagClick(objIE, "a", "編集")

こちらは「IF~Thenステートメント」の省略系でrevTypeがTrueの場合は、「編集」ボタンをクリック処理になりますが、今回は、初期値が「Falase」ですので、処理は行いません。
ここまでが検索の自動化になります。

次の記事: VBAのIE操作でEC-CUBE自動商品編集 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

スポンサー リンク

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

スポンサー リンク

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。