Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
VBAでのクラウド自動ログイン、自動CSV取り込みをしたい
投稿日時: 20/09/03 13:01:14
投稿者: Purutario

お世話になります。
業務効率化のため、使用している採用管理システムへエクセルVBAから自動ログイン&自動CSVダウンロードをしたいと思い、素人ながらコードを打ち込んでいるのですが、うまくいきません。
下記、入力したコードなのですが、間違いの指摘をお願いできれば幸いです。
いったん、ページへのログインまでを書いています。
拙い内容でお恥ずかしいですが、何卒ご助力のほどよろしくお願いいたします。
=====
Sub Hirehubへの自動ログイン()
Dim objIE As Object
Dim obj As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "https://hire-hub.io/ats_users/sign_in"
Do While objIE.readyState <> 4
Do While objIE.Busy = True
Loop
Loop
 
For Each obj In objIE.Document.getElementsByTagName("input")
If obj.ID = "ats_user_email" Then
obj.Value = "" '←自分のID
End If
If obj.ID = "ats-login__field" Then
obj.Value = "" '←自分のパス
End If
Next
'ログインボタンをクリック
For Each obj In objIE.Document.getElementsByTagName("button")
If obj.ID = "ログイン" Then
obj.Click
End If
Next
Set objIE = Nothing
End Sub

回答
投稿日時: 20/09/03 15:02:15
投稿者: Suzu

質問の際には、何が希望と違うのか 明確にする事をお勧めします。
 
ざっと見た感じですと、
・パスワードが入力されない
・ボタンが押せない
 
の様ですね。
 
なぜか? IDが違うから。
 
ユーザー名は、「ats_user_email」で良いですが
パスワードは、「ats_user_password」です。
 
ボタンは、1個だけで、かつIDがありません。
なので、Item(,0).Click の様にすれば良さそうです。
 
 

Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "https://hire-hub.io/ats_users/sign_in"

Do While objIE.ReadyState <> 4 Or objIE.Busy = True
    DoEvents
Loop
 
objIE.Document.getElementsByTagName("input").Item("ats_user_email").Value = "" '←自分のID
objIE.Document.getElementsByTagName("input").Item("ats_user_password").Value = "" '←自分のパス

objIE.Document.getElementsByTagName("button").Item(, 0).Click   'ログインボタンをクリック

Set objIE = Nothing

 
 
HTMLの要素は、 ブラウザ上で、「F12」を押せば開発ツールが出ますので、そこで確認できます。
或いは、For Each で各エレメントをループしているのですから、そこで確認する事も可能です。
 
これで意味が判らないのであれば ご自身の力だけでは VBAでの自動化は難しいかと。
ログイン以降の画面については、IDを持たない回答者でHTMLの構造が判りませんので
IDを持っている回答者や、新規にIDを取得される回答者 以外では 回答できかねます。
 
「WEB 自動化」でWEB検索しただけで参考になるページを見つける事ができます。
【Webアプリケーションを自動で操作してみよう】
https://qiita.com/mima_ita/items/4149a4cdb9a33084258b
 
【働き方改革 |2020年注目の業務自動化ツール30選】
https://www.octoparse.jp/blog/top-30-process-automation-tools-for-2018/
 
 
自動化も良し悪しです。
【Webアプリケーションを自動で操作してみよう】引用
 
引用:
Webアプリケーションを自動化する際は必ず規約を確認してから行うようにしましょう。
 
また、そういった規約が明記されておらず、不正に当たらないと考えられる場合であっても自動操作はWebアプリケーション側に想定外の負荷を与えることがあります。たとえば、2010年には情報取得目的に図書館の蔵書検索システムに高頻度(1秒に1アクセス程度)のリクエストを送信して偽計業務妨害容疑で逮捕された岡崎市立中央図書館事件があったことは心に留めておくべきでしょう。

 
どのくらいの頻度の操作か判りませんが、開発に掛かる時間と、効率化できる時間
コスト比較は必要でしょうね。
 
 
RAPツールの活用も視野に入れてはいかがでしょうか。

投稿日時: 20/09/03 19:33:22
投稿者: Purutario

>Suzuさん
 
ご回答頂き誠にありがとうございます!
まず構造理解も碌にできていない点、反省しております。
基礎の勉強を進めながら作成して行こうと思います。
 
加えて、規約違反などのルール面でのご指摘もありがとうございます。恥ずかしながら視野に入っておりませんでした。
開発時間、不安定なツールでの運用等での危険性も浮かんできましたので、システム導入も検討してみます。
重ねて、ご回答頂きありがとうございました。