前提・実現したいこと
テレワークで出勤人数が大幅に減り『電話の着信未応答があったら通知する』という処理が必要になりました。
ビジネスホンの管理画面から通話履歴一覧のcvsがダウンロード出来ますので、これをVBAで取得・抽出してLINEのグループトークに投げるという処理を考えております。
ビジネスホンはNTT Netcommunity SYSTEM αNX TYPE-M です。
該当のソースコード
ごく普通に…
vba
1Option Explicit 2Sub LoginTest() 3Dim objIE As InternetExplorer 4 Set objIE = New InternetExplorer 5 6 objIE.Visible = True 7 objIE.Navigate "http://192.168.11.110" 'ビジネスホン管理画面 8 9 Do While objIE.Busy = True Or objIE.readyState <> 4 10 DoEvents 11 Loop 12 13 Dim htmlDoc As HTMLDocument 14 Set htmlDoc = objIE.Document 15 16 With htmlDoc 17 .getElementById("Account").Value = "****" 'ユーザー名 ここでエラー 18 .getElementById("Password").Value = "****" 'パスワード 19 .getElementsByClassName("Login_Button")(0).Click 20 End With 21 22End Sub 23
を実行すると
実行時エラー '91': オブジェクト変数または with ブロック変数が設定されていません
…というよく見るエラーです。
ビジネスホンのIPに変更した途端にエラーが出るので、インターネットに公開されていないから駄目なのかと、試しにルータのIPを入れるとうまく行ったりします。
vba
1'Buffalo ルータの場合はログインできます。 2'略 3objIE.Navigate "http://192.168.11.1" 'ルータ 4'略 5With htmlDoc 6 .getElementById("form_USERNAME").Value = "admin" 'ユーザー名 7 .getElementsByName("airstation_pass")(0).Value = "******" 'パスワード 8 .getElementsByClassName("button_login")(0).Click 9End With
同様に色々試したところ、
○ 音声メールユニット(NTT NXSM-VMU-<2>留守番電話のようなもの)
× 複合機 (Richo MP C2504)
○ NAS (Synology DS216J)
出来る機器と出来ない機器との違いが分からず非常に困っています。
Powershellで同様の事を実行しておられる方は見つけたのですが、Powershellについては全く不勉強でして…。
中小底辺事務員が自動化を頑張る(Powershellでスクレイピング)
追記です
ユーザー名のタグ
html
1<input type="text" name="Account" id="Account" maxlength="16" style="width:170px; height:15px;" onkeypress="{if (event.keyCode == 13) onchg();}">
に対して
vba
1.getElementById("Account").Value = "****" 2.getElementsByName("Account")(0).Value = "****"
など可能な限りのタグ属性で試しました。
お忙しいところ恐縮ですが宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー