VBAのIE(InternetExplorer)制御でEC-CUBEに自動で商品検索する制御方法について解説しています。
前回の「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
※ドラッグ(スワイプ)すると全体を確認できます。
Sub btnProductSea()
Call ecCubeProductSearch(objIE)
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
Sub btnLogin()
Call ecCubeLogin(objIE, Range("eccubeurl"), Range("eccubeid"), Range("eccubepass"))
Call iePosition(objIE, Range("menuwidth"), Range("menulayout"))
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
※Webブラウザ部分の結果
今回もEC-CUBE本家サイトのデモ管理画面を利用させてもらいます。
ログインに必要なIDとパスワードは以下となります。
「ecCubeProductSearchサブルーチン」には引数は以下の2つが設定されています。
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
objIE | InternetExplorer | IEオブジェクト | objIE,objIE2 | × | |
revType | Boolean | 検索・編集タイプ | True,False | False | ● |
「objIE」は必須項目です。
「objIE」は複数ページを表示させる場合に「objIE」「objIE2」と複数オブジェクトを生成します。
「revType」は検索・編集タイプのチェック用として利用します。
「編集」については、次回説明しますが、検索までの処理と同じ処理を辿ります。
まったく同じ処理なら、その部分だけオブジェクト化すればよいのですが、今回は「検索」「編集」だけですので、1つのサブルーチンの中で処理をする形にしています。
詳しい内容は後ほど説明していきますので、1つずつ見ていきましょう。
If objIE Is Nothing Then: Call btnLogin
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、objIEが生成されているかのチェックです。
objIEが存在しない場合は、「btnLoginマクロ」を呼び出します。
Call tagClick(objIE, "a", "商品マスター")
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは指定したタグをクリックする「tagClickサブルーチン」を利用して、aタグ内に「商品マスター」の文字列があるaタグをクリックします。
商品マスターページのリンクで検索画面を表示させます。
<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', '_self', ''); 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」「商品コード」「商品名」のテキストボックスにそれぞれ設定している値をを自動入力します。
また、検索キーワードについても名前定義を設定しています。
今回は以下のように検索キーワードの名前定義を設定していますので、お好きな名前で設定してください。
Call tagClick(objIE, "a", "この条件で検索する")
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは指定したタグをクリックする「tagClickサブルーチン」を利用して、aタグ内に「この条件で検索する」の文字列があるaタグをクリックします。
「この条件で検索する」ボタンをクリックする処理になります。
If revType = True Then: Call tagClick(objIE, "a", "編集")
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは「IF~Thenステートメント」の省略系でrevTypeがTrueの場合は、「編集」ボタンをクリック処理になりますが、今回は、初期値が「Falase」ですので、処理は行いません。
ここまでが検索の自動化になります。
次の記事: VBAのIE操作でEC-CUBE自動商品編集 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。