質問編集履歴

4

一部削除

2019/01/17 06:55

投稿

hidelovers
hidelovers

スコア8

test CHANGED
File without changes
test CHANGED
@@ -86,11 +86,11 @@
86
86
 
87
87
  iraishamei = Cells(c, 4).Value
88
88
 
89
- basho = "高岡設備保全室"
89
+ basho = ""
90
-
91
-
92
-
90
+
91
+
92
+
93
- 'Sub 特定調達ウインドウを取得する()
93
+ 'Sub ウインドウを取得する()
94
94
 
95
95
  Dim colSh As Object
96
96
 

3

追記

2019/01/17 06:55

投稿

hidelovers
hidelovers

スコア8

test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,16 @@
26
26
 
27
27
 
28
28
 
29
+ 環境
30
+
31
+ VBA 7.1
32
+
33
+ エクセル 2016です
34
+
35
+ IE11
36
+
37
+
38
+
29
39
  背景
30
40
 
31
41
  会社の自部署経費管理のエクセル帳票のデータを、

2

文言修正

2019/01/17 05:38

投稿

hidelovers
hidelovers

スコア8

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,9 @@
8
8
 
9
9
 
10
10
 
11
+ IE側は会社システムで編集できないので、VBA側で何とか解決したいのですが、
12
+
11
- 何から勉強すればよいかヒントを教えて頂ければと思ます
13
+ 何から調べればよい、キーワードを教えて貰えなでしょうか
12
14
 
13
15
 
14
16
 
@@ -20,7 +22,7 @@
20
22
 
21
23
  objDOC.parentWindow.execScript ="popupUser('reqUserCd','reqUserName')"
22
24
 
23
- 試してみましたが、検索ウィンドウが新規に開くだけでした。
25
+ 試してみましたが、検索ウィンドウが新規に開く別目的のjavascriptでした。
24
26
 
25
27
 
26
28
 
@@ -34,184 +36,178 @@
34
36
 
35
37
  よろしくお願いします。
36
38
 
39
+
40
+
37
- ```ここに言語を入力
41
+ ```
38
42
 
39
43
  コード
40
44
 
45
+ ~~
46
+
47
+ VBA
48
+
49
+
50
+
51
+ Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
52
+
53
+
54
+
55
+ Private Sub CommandButton1_Click()
56
+
57
+
58
+
59
+ Dim kenmei As String
60
+
61
+ Dim iraisha As String
62
+
63
+ Dim iraishamei As String
64
+
65
+ Dim basho As String
66
+
67
+
68
+
69
+ c = Selection.Row
70
+
71
+ d = 20
72
+
73
+ kenmei = Cells(c, 2).Value
74
+
75
+ iraisha = Cells(c, 3).Value
76
+
77
+ iraishamei = Cells(c, 4).Value
78
+
79
+ basho = "高岡設備保全室"
80
+
81
+
82
+
83
+ 'Sub 特定調達ウインドウを取得する()
84
+
85
+ Dim colSh As Object
86
+
87
+ Dim win As Object
88
+
89
+ Dim objIE As InternetExplorer
90
+
91
+ Set colSh = CreateObject("Shell.Application")
92
+
93
+ For Each win In colSh.Windows
94
+
95
+ '開いているすべてのウインドウに対して処理する
96
+
97
+ If TypeName(win.document) = "HTMLDocument" Then
98
+
99
+ '開いているファイルの種類がHTMLなら処理を実行する
100
+
101
+
102
+
103
+ If InStr(win.document.Title, "ユーザの") > 0 Then
104
+
105
+
106
+
107
+ '開いているファイルの「タイトル」にユーザのが含まれているなら
108
+
109
+ Set objIE = win
110
+
111
+ 'このウインドウをobjIEとして指定する
112
+
113
+ Exit For
114
+
115
+ '処理を中断してFor~Nextを終了する
116
+
117
+ End If
118
+
119
+ End If
120
+
121
+ Next
122
+
123
+ If objIE Is Nothing Then 'ウインドウが見つからなければ
124
+
125
+ MsgBox "入力するページが見つかりません" 'メッセージを表示して
126
+
127
+ Exit Sub '処理を終了する
128
+
129
+ End If
130
+
131
+
132
+
133
+ objIE.Visible = True 'IEを表示
134
+
135
+ AppActivate objIE
136
+
137
+ Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち
138
+
139
+ DoEvents
140
+
141
+ Loop
142
+
143
+
144
+
145
+ ' フレーム取得
146
+
147
+ Dim objFRAME As FramesCollection
148
+
149
+ Set objFRAME = objIE.document.frames 'フレームの代入
150
+
151
+ Dim objDOC As HTMLDocument 'HTMLドキュメント
152
+
153
+ Set objDOC = objFRAME(3).document 'フレームのドキュメント3をセット 動く
154
+
155
+
156
+
157
+ '件名入力
158
+
159
+ Dim elPlaceholder1 As IHTMLElement
160
+
161
+ Set elPlaceholder1 = objDOC.getElementById("subjectName") '書込場所指定
162
+
163
+ elPlaceholder1.Value = kenmei '値貼り付け
164
+
165
+
166
+
167
+ '従業員番号
168
+
169
+ Dim elPlaceholder2 As IHTMLElement 'IHTMLElementオブジェクトを準備
170
+
171
+ Set elPlaceholder2 = objDOC.getElementById("reqUserCd") '書込場所指定
172
+
173
+ elPlaceholder2.Value = iraisha '値貼り付け
174
+
175
+ objDOC.parentWindow.execScript "javascript:void(0);" 'javascript動作
176
+
177
+ Sleep (500)
178
+
179
+
180
+
181
+ '納入場所
182
+
183
+ Dim elPlaceholder4 As IHTMLElement 'IHTMLElementオブジェクトを準備
184
+
185
+ Set elPlaceholder4 = objDOC.getElementById("deliveryPlace") '書込場所指定
186
+
187
+ elPlaceholder4.Value = basho '値貼り付け
188
+
189
+
190
+
191
+ End Sub
192
+
193
+
194
+
195
+ ~~
196
+
197
+ html抜粋
198
+
199
+ <td class="list_title_bg_left required">依頼者</td>
200
+
201
+ <td class="list_data_bg_left">
202
+
203
+
204
+
205
+ <INPUT type="text" id="reqUserCd" name="reqUserCd" value="" size="6" maxlength="7" style="ime-mode: disabled;" class="default"><SCRIPT type="text/javascript" language="JavaScript">tokai.taglib.userPickupAndPopup.regist('reqUserCd', 'reqUserName', '/imart/conf.common-pickup.service', 'user','onKeyUpUserCd');</SCRIPT><A href="javascript:void(0);" onClick="popupUser('reqUserCd','reqUserName');return false;"><IMG border="0" src="/imart/images/standard/search.gif" align="absmiddle">&nbsp;</A>
206
+
207
+
208
+
209
+ <INPUT id="reqUserName" type="text" name="reqUserName" size="20" tabindex="-1" value="" class="info" readonly>
210
+
211
+ </td>
212
+
41
213
  ```
42
-
43
-
44
-
45
- ```
46
-
47
- コード
48
-
49
- ~~
50
-
51
- VBA
52
-
53
-
54
-
55
- Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
56
-
57
-
58
-
59
- Private Sub CommandButton1_Click()
60
-
61
-
62
-
63
- Dim kenmei As String
64
-
65
- Dim iraisha As String
66
-
67
- Dim iraishamei As String
68
-
69
- Dim basho As String
70
-
71
-
72
-
73
- c = Selection.Row
74
-
75
- d = 20
76
-
77
- kenmei = Cells(c, 2).Value
78
-
79
- iraisha = Cells(c, 3).Value
80
-
81
- iraishamei = Cells(c, 4).Value
82
-
83
- basho = "高岡設備保全室"
84
-
85
-
86
-
87
- 'Sub 特定調達ウインドウを取得する()
88
-
89
- Dim colSh As Object
90
-
91
- Dim win As Object
92
-
93
- Dim objIE As InternetExplorer
94
-
95
- Set colSh = CreateObject("Shell.Application")
96
-
97
- For Each win In colSh.Windows
98
-
99
- '開いているすべてのウインドウに対して処理する
100
-
101
- If TypeName(win.document) = "HTMLDocument" Then
102
-
103
- '開いているファイルの種類がHTMLなら処理を実行する
104
-
105
-
106
-
107
- If InStr(win.document.Title, "ユーザの") > 0 Then
108
-
109
-
110
-
111
- '開いているファイルの「タイトル」にユーザのが含まれているなら
112
-
113
- Set objIE = win
114
-
115
- 'このウインドウをobjIEとして指定する
116
-
117
- Exit For
118
-
119
- '処理を中断してFor~Nextを終了する
120
-
121
- End If
122
-
123
- End If
124
-
125
- Next
126
-
127
- If objIE Is Nothing Then 'ウインドウが見つからなければ
128
-
129
- MsgBox "入力するページが見つかりません" 'メッセージを表示して
130
-
131
- Exit Sub '処理を終了する
132
-
133
- End If
134
-
135
-
136
-
137
- objIE.Visible = True 'IEを表示
138
-
139
- AppActivate objIE
140
-
141
- Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち
142
-
143
- DoEvents
144
-
145
- Loop
146
-
147
-
148
-
149
- ' フレーム取得
150
-
151
- Dim objFRAME As FramesCollection
152
-
153
- Set objFRAME = objIE.document.frames 'フレームの代入
154
-
155
- Dim objDOC As HTMLDocument 'HTMLドキュメント
156
-
157
- Set objDOC = objFRAME(3).document 'フレームのドキュメント3をセット 動く
158
-
159
-
160
-
161
- '件名入力
162
-
163
- Dim elPlaceholder1 As IHTMLElement
164
-
165
- Set elPlaceholder1 = objDOC.getElementById("subjectName") '書込場所指定
166
-
167
- elPlaceholder1.Value = kenmei '値貼り付け
168
-
169
-
170
-
171
- '従業員番号
172
-
173
- Dim elPlaceholder2 As IHTMLElement 'IHTMLElementオブジェクトを準備
174
-
175
- Set elPlaceholder2 = objDOC.getElementById("reqUserCd") '書込場所指定
176
-
177
- elPlaceholder2.Value = iraisha '値貼り付け
178
-
179
- objDOC.parentWindow.execScript "javascript:void(0);" 'javascript動作
180
-
181
- Sleep (500)
182
-
183
-
184
-
185
- '納入場所
186
-
187
- Dim elPlaceholder4 As IHTMLElement 'IHTMLElementオブジェクトを準備
188
-
189
- Set elPlaceholder4 = objDOC.getElementById("deliveryPlace") '書込場所指定
190
-
191
- elPlaceholder4.Value = basho '値貼り付け
192
-
193
-
194
-
195
- End Sub
196
-
197
-
198
-
199
- ~~
200
-
201
- html抜粋
202
-
203
- <td class="list_title_bg_left required">依頼者</td>
204
-
205
- <td class="list_data_bg_left">
206
-
207
-
208
-
209
- <INPUT type="text" id="reqUserCd" name="reqUserCd" value="" size="6" maxlength="7" style="ime-mode: disabled;" class="default"><SCRIPT type="text/javascript" language="JavaScript">tokai.taglib.userPickupAndPopup.regist('reqUserCd', 'reqUserName', '/imart/conf.common-pickup.service', 'user','onKeyUpUserCd');</SCRIPT><A href="javascript:void(0);" onClick="popupUser('reqUserCd','reqUserName');return false;"><IMG border="0" src="/imart/images/standard/search.gif" align="absmiddle">&nbsp;</A>
210
-
211
-
212
-
213
- <INPUT id="reqUserName" type="text" name="reqUserName" size="20" tabindex="-1" value="" class="info" readonly>
214
-
215
- </td>
216
-
217
- ```

1

本文なしで投稿してしまった為修正しました

2019/01/17 05:23

投稿

hidelovers
hidelovers

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,51 @@
1
+ 会社システムのIEフォームで、従業員番号を下記htmlのname="reqUserCd"入力すると、
2
+
3
+ name="reqUserName"に従業員番号対応した名前 山田太郎等が自動で入るのですが、
4
+
5
+ 下記VBAのvalue= で従業員番号を入力しても、名前が反映されません。
6
+
7
+ 名前が自動で反映されるようにしたいです。
8
+
9
+
10
+
11
+ 何から勉強すればよいかヒントを教えて頂ければと思います。
12
+
13
+
14
+
15
+ javascript,htmlは素人です。
16
+
17
+
18
+
19
+ 試したこと
20
+
21
+ objDOC.parentWindow.execScript ="popupUser('reqUserCd','reqUserName')"
22
+
23
+ 試してみましたが、検索ウィンドウが新規に開くだけでした。
24
+
25
+
26
+
27
+ 背景
28
+
29
+ 会社の自部署経費管理のエクセル帳票のデータを、
30
+
31
+ IEで入力する会社の入力システムに書込もうとしています。
32
+
33
+
34
+
35
+ よろしくお願いします。
36
+
37
+ ```ここに言語を入力
38
+
39
+ コード
40
+
41
+ ```
42
+
43
+
44
+
45
+ ```
46
+
47
+ コード
48
+
1
49
  ~~
2
50
 
3
51
  VBA
@@ -150,7 +198,7 @@
150
198
 
151
199
  ~~
152
200
 
153
- html
201
+ html抜粋
154
202
 
155
203
  <td class="list_title_bg_left required">依頼者</td>
156
204
 
@@ -165,3 +213,5 @@
165
213
  <INPUT id="reqUserName" type="text" name="reqUserName" size="20" tabindex="-1" value="" class="info" readonly>
166
214
 
167
215
  </td>
216
+
217
+ ```