フォームの入力【コード】
Sub IE操作()
Dim objIE As Object
Dim obj As Object
Dim slt As Object
Dim opt As Object
Dim s As Integer
Dim hname As String
Dim brd As String
'hnameの変数にB2のセルの値を代入
hname = Worksheets("情報").Range("B2").Value
'pasの変数にB3のセルの値を代入
brd = Worksheets("情報").Range("B3").Value
'InternetExplorerをobjIEに代入し、IEのプロセスを起動
Set objIE = CreateObject("InternetExplorer.Application")
'IEを可視化するか = はい
objIE.Visible = True
'IEのリンク先URLは情報のシートのB1のセルのURL
objIE.Navigate Worksheets("情報").Range("B1").Value
'IEの表示待ち
wait objIE
'objIEのHTMLの中からinputのタグをobjに代入しながら確認
For Each obj In objIE.Document.GetElementsByTagName("input")
'ハンドルネームの記載
'objに代入されたinputタグのIDがh_nameだった場合
If obj.ID = "h_name" Then
'objに代入されたinputタグにhnameに代入したB2のセルの値を入れる
obj.Value = hname
End If
'生年月日の入力
'objに代入されたinputタグのIDがbirthdayだった場合
If obj.ID = "birthday" Then
'objに代入されたinputタグにbrdに代入したB3のセルの値を入れる
obj.Value = brd
End If
'性別の選択
'objに代入されたinputタグのInnerTextがB4のセルと同じだった場合
If Trim(obj.Value) = Worksheets("情報").Range("B4") Then
'objに代入されたinputタグを選択する
obj.Click
End If
'使用した事のあるOSの選択
'B5のセルが空白じゃなかった場合
If Range("B5") <> "" Then
'objに代入されたinputタグのInnerTextがB5のセルと同じだった場合
If obj.Value = Worksheets("情報").Range("B5") Then
'objに代入されたinputタグにチェックを入れる
obj.Checked = True
End If
End If
'C5のセルが空白じゃなかった場合
If Range("C5") <> "" Then
'objに代入されたinputタグのInnerTextがC5のセルと同じだった場合
If obj.Value = Worksheets("情報").Range("C5") Then
'objに代入されたinputタグにチェックを入れる
obj.Checked = True
End If
End If
'D5のセルが空白じゃなかった場合
If Range("D5") <> "" Then
'objに代入されたinputタグのInnerTextがD5のセルと同じだった場合
If obj.Value = Worksheets("情報").Range("D5") Then
'objに代入されたinputタグにチェックを入れる
obj.Checked = True
End If
End If
Next
'メモ欄への記載
'objIEのHTMLの中からtextareaのタグをobjに代入しながら確認
For Each obj In objIE.Document.GetElementsByTagName("textarea")
'objに代入されたtextareaのタグのIDがnoteの場合
If obj.ID = "note" Then
'objに代入されたtextareaのタグにB7のセルの値を入れる
obj.Value = Worksheets("情報").Range("B7").Value
End If
Next
'Excelのバージョンの選択
'objIEのHTMLの中からselectのタグをsltに代入しながら確認
For Each slt In objIE.Document.GetElementsByTagName("select")
'sltに代入されたselectタグのIDがversionだった場合
If slt.ID = "version" Then
'sltのタグに含まれるoptionのタグをoptに代入しながら確認
For Each opt In slt.GetElementsByTagName("option")
'optに代入されたoptionタグのInnerTextがB6のセルと同じだった場合
If Trim(opt.InnerText) = Worksheets("情報").Range("B6").Value Then
'optに代入されたoptionタグを選択
opt.Selected = True
End If
Next
End If
Next
'送信ボタンのクリック
'objIEのHTMLにあるinputタグをobjに代入しながら確認
For Each obj In objIE.Document.GetElementsByTagName("input")
'objに代入されたinputタグのvalueの値が送信だった場合
If Trim(obj.Value) = "送信" Then
'objをクリック
obj.Click
End If
Next
'終了のメッセージボックスを表示
MsgBox "終了"
'objIEに代入したInternetExplorerを閉じる
objIE.Quit
'objIEを空にする
Set objIE = Nothing
End Sub
Sub wait(objIE As Object)
'objIEに代入されたInternetExplorerがビジー状態、もしくは読み込み待ちの間、処理を待つ
Do While objIE.Busy Or objIE.ReadyState < 4
DoEvents
Loop
End Sub