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

使用環境【Windows XP】【MS-Access2002】【IE6.0】を使用してVBAでコードを書いているのですが、教えてください。1)あるWEBサイトで下記のようなセレクトボックスがあります。<select name=”test” onChange=”return test_a(1);”><option value=’1’ selected>1</option> <option value=’2’>2</option> <option value=’3’>3</option></select>そこで手動で【value=’1’】を選ぶと【onChange=”return test_a(1);”】が動作するようですが、VBAを使って、【Me![IEBrowser].Object.Document.all(i).Selected = True】(【value=’1’】を選んだとします。)としても【onChange=”return test_a(1);”】は動作しません。【onChange】が動作するようにするにはどうすればいいのでしょうか?具体的にコードで教えてください。

●質問者: topo
●カテゴリ:コンピュータ
✍キーワード:ALL IE6 MS object VBA
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● figaro_the_cat
●10ポイント

http://www.hatena.ne.jp/awindow?qid=1077693621

awindowさんのプロフィール - はてな

<html>

<head>

<script language=”javascript”><!--

function test_a(n){

alert(document.f1.s1.options[n].text);

alert(document.f1.s1.options[n].value);

}

function func(n){

document.f1.s1.selectedIndex=n;

test_a(n);

}

--></script>

</head>

<body>

<form name=”f1”>

<button onclick=”func(1);”>OK</button>

<select name=”s1” onChange=”test_a(this.selectedIndex);”>

<option value=”A” selected>1</option>

<option value=”B”>2</option>

<option value=”C”>3</option>

</select>

</form>

</body>

</html>

その関数内で、クリックイベントの関数を

呼ぶ方法ではだめですか?


2 ● かほちゅう
●30ポイント

http://www.melma.com/mag/26/m00034126/a00000189.html

このメルマガのバックナンバーは移動しました - melma!

Me![IEBrowser].Object.Document.all(i).fireEvent(”onchange”)

で、どうでしょうか?

◎質問者からの返答

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

fireEventが無いみたいでうまく動作しません。

申し越し試してみます。


3 ● kabao2003
●30ポイント

http://www.red.oit-net.jp/tatsuya/java/d_color.htm

イヌでもわかるJavaScript講座

optionタグにIDをつけて、document.all(”ID”).Selectedなどを使うのがよいのでは。質問文のコードで、Document.all(i)とありますがこれで本当に意図するoptionタグを指定できていないのが原因ではないかと思います。

◎質問者からの返答

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

optionタグはきちんと選択されています。(目視で確認しました。)

自分で作ったHTMLでは無いので、IDがあるかどうか調べてみます。

IDで指定の方が良いかもしれませんが、色々調べて見ます。

IDで指定したとして、その次にどうすればいいのか教えてください。


4 ● sasada
●30ポイント

http://www.hatena.ne.jp/list

人力検索はてな - 質問一覧

fireEventメソッドはSELECTに対して発行しないと効かないと思います。

Me![IEBrowser].Object.Document.all.test.fireEvent(”onchange”)

で、いかがでしょうか。

◎質問者からの返答

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

今までのご回答を元に下記のコードでうまく動作しました。ありがとうございます。

for i=1 to Me![IEBrowser].Object.Document.all.test.Length

Me![IEBrowser].Object.Document.all.test.selectedIndex = i

Me![IEBrowser].Object.Document.all.test.fireEvent (”onchange”)

next

問題が解決しましたので、ここで質問を終了します。

ありがとうございました。

関連質問


●質問をもっと探す●



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