2017年08月29日

前の記事の補足です・・・直接VBAからjavascriptを実行する

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

例えば、次のJRAのホームページで「レース結果」をクリックしたのと同じことをしたいなら次の一行をプログラムに書き足せばいいだけです。
jrahp1.jpg

objIE.document.Script.setTimeout "javascript:doAction('/JRADB/accessS.html','pw01sli00/AF')",1000

これだけです。

では。



posted by tsurutsuru at 22:25| Comment(0) | 日常茶飯事

Excel VBAから直接Javascriptを実行する方法

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

今日は一日「Excel VBAから直接Javascriptを実行する方法」を学習していました。

最近のJavascriptはよく知らないので少し時間がかかりましたが、感覚として「Excel VBAから直接Javascriptを実行する方法」を体得できました。

私が「Excel VBAでIE制御」のプログラムを書いたのはIE8に対してでした。

ところが今はIE11です。

IE8に対しては正常に動作するExcel VBAのプログラムがIE11だと正常に動作しないのです。

どうも互換性の問題があるようなのです。

で、ネットで調べていたらエンタープライズモードにしたらどうかと提言がありました。

そうすると互換性が出てくるのだそうです。

説明は省きますが、なんとかIE11をエンタープライズモードにしたらIE8との互換性が生まれてIE8対象のExcel VBAのプログラムが動作するようになりました。

細かい点ではIE8とまったく同じにはなりませんが、それらはなんとかなります。

それにしても新しいバージョンになると動作しなくなるというのはほんとに困ったもんですね。

疲れましたね。



posted by tsurutsuru at 21:09| Comment(0) | 日常茶飯事

いま頭の中で新しいプログラムの構想が渦巻いています

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

プログラミングを日常当たり前のように行っている者にとって、新しいプログラムの構想は次から次へと頭に浮かんできます。

時間の許す限りそういうプログラムを書いて行くのがソフト屋です。

だから頭の中は新しいプログラムの構想で渦巻いているのです。

posted by tsurutsuru at 11:52| Comment(0) | 日常茶飯事

Excel VBAのIE自動制御で長年の疑問が今日解決。どっと疲れが出る。ああいやだいやだ。

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

Excel VBAのIE自動制御のある処理を現在すごく面倒な方法で実現していますが、もっと簡単な方法がないものかとずっと疑問に思っていました。

そうしたら、今日見つけました。簡単な方法を。

もうどっと疲れが出ました。

これでもの凄く現在の処理が効率化できます。

でも、嬉しいというより自分の無知さに唖然とします。

こんな簡単な方法があったのか。とほほ、です。

posted by tsurutsuru at 10:54| Comment(0) | 日常茶飯事

Excel VBAによるIE自動制御を急遽学習しています

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

しばらく気付かないうちにネットに「Excel VBAによるIE自動制御」に関するサイトがたくさん増えていました。

読んでみるとなかなかいいので急遽学習することにしました。

「Excel VBAによるIE自動制御」については今井式競馬予想ツールでプログラムを書いて実行していますが、もっと効率的にできそうです。

次のプログラムはコマンドボタン1をクリックするとグーグルの検索を自動でやってくれるサンプルプログラムです。
----------------------------------------------------------
Private Sub CommandButton1_Click()

Dim objIE As Object

'IE起動
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True

'Googleに接続
objIE.navigate "http://www.google.co.jp/"

'IEを待機
Call IEWait(objIE)

'n秒停止
Application.Wait Now + TimeValue("00:00:02")

'検索窓に「百島」と入力
objIE.Document.getElementById("lst-ib").Value = "百島"

'n秒停止
Application.Wait Now + TimeValue("00:00:05")

'検索ボタンを押す
Call IEButtonClick(objIE, "Google 検索")

'n秒停止
Application.Wait Now + TimeValue("00:00:05")

'IE終了
'objIE.Quit

'Set objIE = Nothing

End Sub

'ボタンを押す関数
Public Function IEButtonClick(ByRef objIE As Object, buttonValue As String)
Dim objInput As Object

For Each objInput In objIE.Document.getElementsByTagName("INPUT")
If objInput.Value = buttonValue Then
objInput.Click
Exit For
End If
Next
End Function

'リンクをクリックする関数
Function IELinkClick(ByRef objIE As Object, ByVal anchorText As String)
Dim objLink As Object

For Each objLink In objIE.Document.getElementsByTagName("A")
If objLink.innerText = anchorText Then
objIE.navigate objLink.href
Exit For
End If
Next
End Function


'IEを待機する関数
Public Function IEWait(ByRef objIE As Object)
Do While objIE.Busy = True
DoEvents
Loop
End Function
----------------------------------------------------------

IEが自動で起動して、グーグルのページを開いてくれて、検索欄に百島が入力されて実行され、百島の検索結果がIEに表示されます。

そのうちこのブログも自動化するかもしれません。

面白いですねえ。

posted by tsurutsuru at 05:03| Comment(0) | 日常茶飯事