使用環境【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】が動作するようにするにはどうすればいいのでしょうか?具体的にコードで教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/02/25 16:20:21
  • 終了:--

回答(4件)

id:figaro_the_cat No.1

figaro_the_cat回答回数10ベストアンサー獲得回数02004/02/25 17:50:34

ポイント10pt

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>

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

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

id:kahochu No.2

かほちゅう回答回数162ベストアンサー獲得回数02004/02/25 16:48:24

ポイント30pt

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

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

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

で、どうでしょうか?

id:topo

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

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

申し越し試してみます。

2004/02/25 17:07:58
id:kabao2003 No.3

kabao2003回答回数99ベストアンサー獲得回数02004/02/25 16:51:36

ポイント30pt

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

イヌでもわかるJavaScript講座

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

id:topo

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

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

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

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

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

2004/02/25 17:11:04
id:sasada No.4

sasada回答回数1482ベストアンサー獲得回数1332004/02/25 17:29:52

ポイント30pt

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

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

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

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

で、いかがでしょうか。

id:topo

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

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

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

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

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

2004/02/25 17:56:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません