質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

受付中

IEで従業員番号を入力すると名前が出るフォームのVBA操作について

hidelovers
hidelovers

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

3回答

0リアクション

1クリップ

680閲覧

投稿2019/01/17 04:41

編集2019/01/17 06:55

会社システムのIEフォームで、従業員番号を下記htmlのname="reqUserCd"入力すると、
name="reqUserName"に従業員番号対応した名前 山田太郎等が自動で入るのですが、
下記VBAのvalue= で従業員番号を入力しても、名前が反映されません。
名前が自動で反映されるようにしたいです。

IE側は会社システムで編集できないので、VBA側で何とか解決したいのですが、
何から調べればよいのか、キーワードを教えて貰えないでしょうか。

javascript,htmlは素人です。

試したこと
objDOC.parentWindow.execScript ="popupUser('reqUserCd','reqUserName')"
試してみましたが、検索ウィンドウが新規に開く別目的のjavascriptでした。

環境
VBA 7.1
エクセル 2016です
IE11

背景
会社の自部署経費管理のエクセル帳票のデータを、
IEで入力する会社の入力システムに書込もうとしています。

よろしくお願いします。

コード ~~ VBA Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub CommandButton1_Click() Dim kenmei As String Dim iraisha As String Dim iraishamei As String Dim basho As String c = Selection.Row d = 20 kenmei = Cells(c, 2).Value iraisha = Cells(c, 3).Value iraishamei = Cells(c, 4).Value basho = "" 'Sub ウインドウを取得する() Dim colSh As Object Dim win As Object Dim objIE As InternetExplorer Set colSh = CreateObject("Shell.Application") For Each win In colSh.Windows '開いているすべてのウインドウに対して処理する If TypeName(win.document) = "HTMLDocument" Then '開いているファイルの種類がHTMLなら処理を実行する If InStr(win.document.Title, "ユーザの") > 0 Then '開いているファイルの「タイトル」にユーザのが含まれているなら Set objIE = win 'このウインドウをobjIEとして指定する Exit For '処理を中断してFor~Nextを終了する End If End If Next If objIE Is Nothing Then 'ウインドウが見つからなければ MsgBox "入力するページが見つかりません" 'メッセージを表示して Exit Sub '処理を終了する End If objIE.Visible = True 'IEを表示 AppActivate objIE Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop ' フレーム取得 Dim objFRAME As FramesCollection Set objFRAME = objIE.document.frames 'フレームの代入 Dim objDOC As HTMLDocument 'HTMLドキュメント Set objDOC = objFRAME(3).document 'フレームのドキュメント3をセット 動く '件名入力 Dim elPlaceholder1 As IHTMLElement Set elPlaceholder1 = objDOC.getElementById("subjectName") '書込場所指定 elPlaceholder1.Value = kenmei '値貼り付け '従業員番号 Dim elPlaceholder2 As IHTMLElement 'IHTMLElementオブジェクトを準備 Set elPlaceholder2 = objDOC.getElementById("reqUserCd") '書込場所指定 elPlaceholder2.Value = iraisha '値貼り付け objDOC.parentWindow.execScript "javascript:void(0);" 'javascript動作 Sleep (500) '納入場所 Dim elPlaceholder4 As IHTMLElement 'IHTMLElementオブジェクトを準備 Set elPlaceholder4 = objDOC.getElementById("deliveryPlace") '書込場所指定 elPlaceholder4.Value = basho '値貼り付け End Sub ~~ html抜粋 <td class="list_title_bg_left required">依頼者</td> <td class="list_data_bg_left"> <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> <INPUT id="reqUserName" type="text" name="reqUserName" size="20" tabindex="-1" value="" class="info" readonly> </td>

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2019/01/17 04:43依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「過去の低評価」という指摘を受けました。

azuapricot

2019/01/17 04:44

? だからどうしたって感じですが、みなさんに何を聞きたいのか書かれていません。 コードはマークダウン <code> をつかって記述してください
stdio

2019/01/17 05:03

丸投げの様にしか感じません。そのプログラムで何が分からないのかをしっかりお書きください。
stdio

2019/01/17 05:21

何から勉強すればよいかヒントを教えて頂ければと思います。 では、何の質問をしたいのか分かりません。質問をする場なので質問して下さい。貴方のは質問ではなく丸投げです。 もしやりたいなら適当に業者にでも依頼しておいてください。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。