質問するログイン新規登録

回答編集履歴

4

しゅうせい4

2017/09/15 09:22

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -19,7 +19,7 @@
19
19
  `objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"`
20
20
  でVBA側が行っているのは、objIEに対して「一定時間後に指定したコマンドを実行しなさい」と指示しているところまでです。
21
21
  実際に'csv'というname属性を持つエレメントを探して、その中で先頭の要素に対してクリックイベントを行うのは、IE側(のJavaScript)になると思います。
22
-
22
+ つまり""で括られた中身`document.getElementsByName('csv')(0).Click();`の部分はJavaScriptの記述ということです。
23
23
  JavaScriptでは関数名の大文字小文字なども厳密に区別されますので、`.Click()`では動作しないのだと思います。
24
24
 
25
25
  余談

3

syuusei3

2017/09/15 09:22

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -24,9 +24,10 @@
24
24
 
25
25
  余談
26
26
  ---
27
+ `~"window.setTimeout(""document.getElementsByName('csv')(0).click();"",10);"`
27
- なお
28
+ の代わりに
28
- `objIE.document.parentWindow.execScript "window.setTimeout(""alert(document.getElementsByName('csv')(0).name);"",10);"`
29
+ `"window.setTimeout(""alert(document.getElementsByName('csv')(0).name);"",10);"`
29
- のように記述すると、想定したエレメントが取得できていれば"csv"というメッセージがIE上で表示されるようになります。
30
+ のように記述すると、想定したエレメントが取得できていればIE上で"csv"というメッセージが表示されるようになります。
30
- 問題点を絞り込む使えると思いますよ。
31
+ エレメントが取得できていなければメッセージは表示されませんので、問題点を絞り込むに使えると思いますよ。
31
32
 
32
33
  参考になれば幸いです。

2

しゅうせい2

2017/09/15 09:18

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -12,12 +12,12 @@
12
12
  ---
13
13
  正常な動作が確認できている
14
14
  `objIE.document.getElementsByName("csv")(0).Click`
15
- という処理は、VBA上で'csv'というname属性を持つエレメントを探し、その中で先頭の要素に対してクリックイベントを行っています。
15
+ という処理は、objIEが持つdocument内で'csv'というname属性を持つエレメントを探し、その中で先頭の要素に対してクリックイベントを行っています。
16
16
  すべてVBA上で実行されるコードです。
17
17
 
18
18
  これに対し、
19
19
  `objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"`
20
- でVBA側が行っているのは、IEに対して「一定時間後に指定したコマンドを実行しなさい」といところまでです。
20
+ でVBA側が行っているのは、objIEに対して「一定時間後に指定したコマンドを実行しなさい」と指示してところまでです。
21
21
  実際に'csv'というname属性を持つエレメントを探して、その中で先頭の要素に対してクリックイベントを行うのは、IE側(のJavaScript)になると思います。
22
22
 
23
23
  JavaScriptでは関数名の大文字小文字なども厳密に区別されますので、`.Click()`では動作しないのだと思います。

1

syuusei

2017/09/15 09:11

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -1,4 +1,4 @@
1
- 私もweb系には強くないのに今回参考にされている回答してしまった者です。(^-^;;
1
+ 私もweb系には強くないのに今回参考にされている質問で回答してしまった者です。(^-^;;
2
2
 
3
3
  以下、推測交じりのアドバイスになってしまいますがご了承ください。
4
4
 
@@ -18,7 +18,7 @@
18
18
  これに対し、
19
19
  `objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"`
20
20
  でVBA側が行っているのは、IEに対して「一定時間後に指定したコマンドを実行しなさい」というところまでです。
21
- 実際に'csv'というname属性を持つエレメントを探して、その中で先頭の要素に対してクリックイベントを行うのは、IE側(のJavaScript)になる思います。
21
+ 実際に'csv'というname属性を持つエレメントを探して、その中で先頭の要素に対してクリックイベントを行うのは、IE側(のJavaScript)になる思います。
22
22
 
23
23
  JavaScriptでは関数名の大文字小文字なども厳密に区別されますので、`.Click()`では動作しないのだと思います。
24
24