■4-4UserFormへWebBrowser設定でWebページの処理が容易にできる
 この WebBrowser コントロールを使うことで、ExcelVBAで容易にHTMLコンテンツを表示し、利用するこ
とが出来ます。
なお、WebBrowser コントロール(Shdocvw.dll)は Internet Explorer の一部なので、Internet Explorer 
がインストールされているシステムでのみで使用することができます。




(1)ユーザーフォームへWebBrowserを設定する方法
通常コントロ−ルツ−ルボックスにには、WebBrowserが表示されていませんが、VBEのメニュ−から
[ツ−ル][その他のコントロ−ル] を選択し[Microsoft Web Browser]にマ−クを付ければ表示されます
(画面28参照)。ユーザーフォームにWebBrowser コントロールを設定して実行します(画面29参照)

画面28 WebBrowserアイコン設置例


画面29ユーザーフォームへWebBrowserを設定例


(2)WebBrowser コントロールへWebページを表示
Navigateプロパティ&URLでWebページを表示できます(実行例は画面30参照)


画面30 Webページを表示例

Sub webBr2()
With UserForm1
    .Show 0
    .web1.Navigate "http://www2s.biglobe.ne.jp/~iryo/"
End With
End Sub



(3)Webページの読み込み終了の確認方法
(3)-1 終了をメッセッセジボックスで表示例下記のDocumentCompleteは読み込み終了でイベント発生
であり終了を判断できます。
また、引数URLで読み込んだURLを取得できるので、変数urlaへ保存することにより、別のURLに変
わった等の判定にも使用できます(画面31参照)。

画面31終了をメッセッセジボックスで表示例


ユーザーフォーム コードウインドウ
Private Sub web1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
     urla = URL
    MsgBox urla & "の読み込み終了"
End Sub


webBr3プロシージャの実行は前述のwebBr2と同じですが、こちらは取り込み設定後に時間を測定し、指定した
時間内に読み込みが終了しなかった場合はメッセージを表示します。

ユーザーフォーム コードウインドウ
Private Sub web1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    enchk = 1
End Sub


Public enchk As Integer
 
Sub webBr3()
With UserForm1
    .Show 0
    .web1.Navigate "http://www.yahoo.co.jp/"
End With
    Call 読込終了確認
End Sub
-------------------------------------------------------
Sub 読込終了確認()
timck = Timer + 4
Do
If enchk = 1 Then: Exit Do
    If Timer > timck Then: Exit Do
    DoEvents
Loop
 
If enchk = 0 Then
    MsgBox "Webページの取り込みに失敗しました。"
End If
End Sub




(4)Webページのテキストボックスへ文字を入力する方法
これは、前述の4-2 (1)項のWebBrowser版です
内容としては、下記例のように「objIE.」が「UserForm1.web1」に変わるだけです。(実行例は画面32参照)

With objIE.Document
With UserForm1.web1.Document  
 

画面32 テキストボックスへ文字入力例


Sub webBr4()
Dim fff As String
fff = ThisWorkbook.Path & "\form01.html"
 
Webページ表示
UserForm1.Show 0
    enchk = 0
UserForm1.web1.Navigate fff
    Call 読込終了確認
 
With UserForm1.web1.Document
    .all("txt1").Value = "text(1)へ記入 12345"
    .all.txt2.Value = "text(2)へ記入 abcde"
    .Myfm.txt3.Value = "text(3)へ記入 ABCDE"
 
    .forms(1)("txt4").Value = "text(4)へ記入 あいうえお"
    .forms(1).elements(1).Value = "text(5)へ記入 67890"
End With
End Sub




(5)Webページのドロップダウンリストの項目を選択する方法
これは、前述の4-2 (5)項のWebBrowser版です

Sub webBr5()
Dim fff As String
fff = ThisWorkbook.Path & "\form05.html"
 
UserForm1.Show 0
    enchk = 0
UserForm1.web1.Navigate fff
    Call 読込終了確認
UserForm1.web1.Document.Myfm1.Myop.selectedIndex = 2
End Sub



(6)Body.innerTextタグでHTMLファイルの全テキストデータを取得
これは、前述の4-3 (2)項のWebBrowser版です

Sub webBr6()
Dim fff As String
fff = ThisWorkbook.Path & "\data01.html"
 
UserForm1.Show 0
    enchk = 0
UserForm1.web1.Navigate fff
    Call 読込終了確認
 
    Myhtml = UserForm1.web1.Document.Body.innerText
    MsgBox Myhtml
End Sub




(7)HTMLファイルのハイパーリンクを制御する方法
これは、前述の4-3 (4)項のWebBrowser版です

Sub webBr7()
Dim fff As String
fff = ThisWorkbook.Path & "\data03.html"
 
UserForm1.Show 0
    enchk = 0
UserForm1.web1.Navigate fff
    Call 読込終了確認
 UserForm1.web1.Document.Links(3).Click
End Sub




(8)株売買の自動発注ロボットをWebBrowserで作成したマクロ例
ここで紹介のサンプルは、前(5)項と同じ著者がデモ用に作成したHTMLファイルを対象にした制御例です。


マクロ内容も(5)項と殆んど同じですが、こちらはWebBrowserコントロールを使用した例であり、
Excelシート上で実行する場合はこの方法の方が制御が容易です。

 本マクロを参考にして実使用のマクロ自作は自由ですが、著者は情報の提供のみです。自作マクロの
運用は自身の責任と判断で行ってください。(自作マクロの使用に関して、弊社および著者はいっさいの
責任も負いません)

[1]KIの発注ロボット」マクロの操作説明
本例では画面51に示すような5個のデモファイルを対象に実行します。
なお、このファイルのフォルダは「KIの発注ロボット.xls」と同じフォルダに保管して下さい。

実行方法は「(5)注文発注まで」ボタンクリックで最終ファイルまで自動的に実行されます。

画面53は初期のトップ画面ですが、(1)ログインまで実行〜(4) 注文確認 までのボタンクリックで実行を途中で
止めて見ることもできます。

画面53 KIの発注ロボット実行例


[2]「KIの発注ロボット」マクロ説明
ここではポイント部分を説明します。詳細はソースを見てください。

With UserForm3
    .Caption = "KI発注ロボット " & vaa
    .web1.Navigate urle
End With
 
enchk = 0
Call 読み込み終了確認
 
If zno = 0 Then Exit Sub
 
On Error GoTo errmsg1
 enchk = 0
ユーザネーム
   UserForm3.web1.document.myfm1("userid").Value = USER
パスワード
   UserForm3.web1.document.myfm1("Pass").Value = PASSW
 
Call デモ目視用  '実際のマクロでは本行は不要
 
ログインボタンクリック
   UserForm3.web1.document.myfm1("login").Click
Call 読み込み終了確認
 
買い注文をクリック
enchk = 0
    kchk = UserForm3.web1.Document.Links(0).innerHTML
 
If kchk <> "買い注文" Then
    MsgBox "ハイパーリンク「買い注文」の選択に失敗しました。"
    Exit Sub
End If
    UserForm3.web1.Document.Links(0).Click
Call 読み込み終了確認
 
銘柄コードを入力
    enchk = 0
    UserForm3.web1.document.all("meigara").Value = cod
Call デモ目視用  '実際のマクロでは本行は不要
 
検索ボタンクリック
    UserForm3.web1.document.all("kensaku").Click
 Call 読み込み終了確認
 
買い条件入力
    enchk = 0
With UserForm3.web1.document
株数
    .all.kabusu.Value = kabusu
ラジオボタン(指値)
    .myfm4.radio1(0).Checked = True
株価
    .all.kakaku.Value = kabuka
選択ボタン(本日中)
    .all.sel01.SelectedIndex = 0
選択ボタン(特定預り)
    .all.sel02.SelectedIndex = 0
パスワード
   .all("pass2").Value = PASSW
注文実行
    .forms(0).elements(9).Click
End With
     Call 読み込み終了確認
 
Exit Sub
errmsg1:
Application.StatusBar = "××× 正常な画面でなく失敗しました ×××"
On Error GoTo 0
 
End Sub

Public enchk As Integer '読み込み終了チェック
Sub 読み込み終了確認()
 
timck = Timer + 4
Do
    If enchk = 1 Then: Exit Do
    If Timer > timck Then: Exit Do
        DoEvents
Loop
 
If enchk = 0 Then
    MsgBox "Webページの取り込みに失敗しました。"
End If
 
End Sub

ユーザーフォーム コードウインドウ
Private Sub web1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  vurl = URL
  enchk = 1
End Sub




(9)株売買の自動発注ロボットをExcelVBAで作成したマクロ
インターネットを使って株売買を行う場合、専用のプログラムを作成すれば自宅にあるPCから無人で取引
を行うことができます。

ExcelVBAで株売買ロボットマクロ作成は可能であり、ここでそのマクロを紹介します。なお、紹介の
マクロは実際の証券会社のサイトに接続した実行例ではなく、著者がデモ用に作成したHTMLファイルを
対象にした制御例です。マクロの詳細説明は省略しますが、ソースを見て研究してください。

また、本マクロを参考にして実使用のマクロ自作は自由ですが、著者は情報の提供のみです。自作マクロ
の運用は自身の責任と判断で行ってください。(自作マクロの使用に関して、著者責任も負いません)

[1]デモファイルが自分のPC上で動くようにIEを設定
自分のPCでデモファイルを対象に実行した場合、IEが標準設定になっている方は画面49のような、
Internet Explorerで制限されています。とのメッセージが出てストップします。これはIEの[セキュリティ]
タブをいじってもファイルはローカルなので、効きません。
解決策としては、IEメニューの「ツール」→「インターネットオプション」→ダイアログの「詳細設定」を選択し
て、[マイコンピュータ内のファイルでのアクティブコンテンツの実行を許可する*]をチェックします
(画面50参照)(*が付いているので再起動で有効ですが、実際は再起動しなくとも 有効になりました)

画面49 メッセージが出て自動がストップの例


画面50 詳細設定にチェックを追加する例


[2]「Iの無人発注」マクロの操作説明
本例では画面51に示すようなデモファイル1〜デモファイル5の5個のファイルを対象に実行します。なお、
このファイルのフォルダは「KIの無人発注.xls」と同じフォルダに保管して下さい。
M2セルのデモファイル場所を空白にして「デモアドレス」ボタンをクリックすればデモアドレスを自動設定し
ます。(なおKIの無人発注.xlsと同じフォルダに無い場合、M2セルへURLをマニュアルで入力してください)

画面51 自動化対象のデモ5ファイル例


実行方法は「(5)注文発注まで」ボタンクリックで最終ファイルまで自動的に実行されます。

画面52は初期のトップ画面ですが、(1)ログインまで実行〜(4) 注文確認 までのボタンクリックで実行を途中
で止めて見ることもできます。

画面52 KIの無人発注実行例


[3]「KIの無人発注」マクロ説明
ここではポイント部分を説明します。詳細はソースを見てください。

On Error GoTo errmsg1
   objIE.document.myfm1("userid").Value = USER
   objIE.document.myfm1("Pass").Value = PASSW
 
   objIE.document.myfm1("login").Click
    Call 画面待ち
 
If zno = 1 Then Exit Sub
 
    objIE.document.Links(0).Click
    Call 画面待ち
 
    objIE.document.all("meigara").Value = cod
    objIE.document.all("kensaku").Click
    Call 画面待ち
With objIE.document
    .all.kabusu.Value = kabusu
    .myfm4.radio1(0).Checked = True
    .all.kakaku.Value = kabuka
    .all.sel01.SelectedIndex = 0
    .all.sel02.SelectedIndex = 0
    .all("pass2").Value = PASSW
    .forms(0).elements(9).Click
End With
     Call 画面待ち
 
Exit 
Sub
errmsg1:
Application.StatusBar = "××× 正常な画面でなく失敗しました ×××"
On Error GoTo 0
Set objIE = Nothing
 
End Sub


Sub 画面待ち()
    Do While objIE.Busy = True
        DoEvents
    Loop
    Do Until objIE.document.readyState = "complete"
        DoEvents
    Loop
End Sub



【戻る】    【Top画面】   【HPへ】