人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAについて質問です。

現在 getElementsByName を使用しIEからデータの出力を行っています。
<input type="text">形式のものはなんとか出力が出来るようになったのですが、

ラジオボックス、セレクトフォーム、チェックボックス形式のものがうまく出力が出来ず困っております。

お手数をおかけしますが、ラジオボックス、セレクトフォーム、チェックボックスの出力の仕方をわかるかたおりましたら
教えていただければと思います。

お手数おかけしますがよろしくお願いいたします。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:IE VBA セレクト チェックボックス データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●100ポイント ベストアンサー

(1)テストに使った a.html ファイル・・・かなり手抜き

<html>
<head>
</head>
<body>
</body>
 <input type="radio" name="iconCode" value="1">美品
 <input type="radio" name="iconCode" value="2">限定
 <input type="radio" name="iconCode" value="3">非買
 <input type="radio" name="iconCode" value="4">新製
 <input type="radio" name="iconCode" value="5">全巻
 
 <br />

 <input type="radio" name="usedFlag" value="0">新品
 <input type="radio" name="usedFlag" value="1" checked="checked">中古

 <br />
 
 <select name="prefectures"><option value="1">北海道</option>
 <option value="2">青森県</option>
 <option value="3">岩手県</option>
 <option value="4">宮城県</option>
 <option value="13">東京</option>
 <option value="27">大阪</option>
 </select>

 <br />

 <table border="0" cellspacing="0" cellpadding="0" style="margin-bottom:2px;">
 <tr>
 <td valign="top"><font size="-1">
 <input type="checkbox" name="companyAndService[16]" value="9000/999">
 </font></td>
 <td valign="middle"><font size="-1">
 送料無料&nbsp;
 (出品者負担)<input type="hidden" name="sizeAndWeight[16]" value="999/999">
 </font></td>
 </tr>
 </table>
</html>

(2)VBAコード

Sub Macro2()
 Const READYSTATE_COMPLETE = 4
 Dim objIE As Object
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Visible = True
 
 objIE.Navigate2 "z:\a.html":' テストファイルを書いてます。
 While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True
 'Sleep (200)
 Wend
 
 Dim Doc As Object
 Set Doc = objIE.Document

 ' iconCodeラジオボタン 0美品 / 1限定 / 2非買 / 3新製 / 4全巻
 objIE.Document.getElementsByName("iconCode")(2).Checked = True: 'この例では2なので「非買」

 ' usedFlagラジオボタン 0新品 / 1中古
 objIE.Document.getElementsByName("usedFlag")(0).Checked = True: 'この例では0なので「新品」

 ' prefecturesセレクトボックス 1北海道 / 2青森 以下続く。
 objIE.Document.getElementsByName("prefectures")(0).selectedIndex = 5: 'この例では5を選択

 ' companyAndServiチェックボックス true もしくは false
 objIE.Document.getElementsByName("companyAndService[16]")(0).Checked = True: 'この例では「送料無料」
End Sub

※注意して欲しいのはセレクトボックス。

この例では値として 5 を与えているが、これはvalueの値ではなく、並び順を差している。

この2つのファイルでテストできるようにしてあるので、

数値をいろいろ変えてみてテスト結果を見て欲しい。

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ