「マイナビエージェントおすすめの求人一覧」の詳細一覧を作成するマクロ作りました。

##0.まえがき
マイナビエージェントのおすすめ求人一覧のデフォルト項目が少なくて不便なので、各企業のリンク先を開いて一覧にするマクロを作りました。
実行手順は以下です。

##1.マイナビエージェントのおすすめ求人一覧をIEで開く
<img src="https://qiita-image-store.s3.amazonaws.com/0/333403/6397f2ce-7270-069e-e10f-46804a8efcbf.png" width=70%>

##2.Excelに下記コードを貼り付けて参照設定する
参照設定
Microsoft Office 14.0 Object Lobrary
Microsoft Internet Controls



```:
Option Explicit
'参照設定
'Microsoft Office 14.0 Object Lobrary
'Microsoft Internet Controls

Sub マイナビエージェント求人一覧作成()

'Webページを取得
Dim PageName As String
Dim WebObject As Object
PageName = "おすすめ求人 |"
On Error GoTo myError
Set WebObject = GetWeb(PageName)

'Excelシートを初期化する
ThisWorkbook.ActiveSheet.Cells.Clear

'リンク先を開いて一覧表示する関数
Call CreateList(WebObject)

myError:
Exit Sub

End Sub

'開いている対象ページを取得する関数
Function GetWeb(PageName)

    Dim colSh As Object
    Dim win As Object
    Dim strTemp As String
    Dim objIE As Object
    Set colSh = CreateObject("Shell.Application")
   
    For Each win In colSh.Windows
        strTemp = ""
        
        On Error Resume Next
        strTemp = win.document.Title
        Debug.Print strTemp
        On Error GoTo 0
        If InStr(strTemp, PageName) > 0 Then
            Set GetWeb = win
        End If
    Next

End Function

'リンク先のURL取得関数
Function CreateList(ByVal objIE As Object)

    Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備
    Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット
    
    Dim el As IHTMLElement 'IHTMLエレメントオブジェクトを準備
    Dim objIE2 As Object
    
    Dim cnt As Long
    cnt = 1
    
    For Each el In htmlDoc.Links 'htmlDocのリンクコレクションの要素全てについて繰り返す
        If InStr(el.href, "detail") > 0 Then
        
            'URLを開く関数
            Set objIE2 = OpenURL(el.href)
            
            '会社名をExcelに記入する
            cnt = cnt + 1
            ThisWorkbook.ActiveSheet.Cells(cnt, 1) = el.innerText
            
            'テーブルをすべて書き出す関数
            Call GetTable(objIE2, cnt)
            
            'サイトを閉じる
            objIE2.Quit
            
        End If
    Next el
    
End Function

'URLを開く関数
Function OpenURL(ByVal URL As String)

    Dim objIE As InternetExplorer 'IEオブジェクトを準備
    Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット
    
    objIE.Visible = True 'IEを表示
    objIE.Navigate URL 'IEでURLを開く
    
    Do While objIE.Busy = True Or objIE.ReadyState < READYSTATE_COMPLETE '読み込み待ち
    
        DoEvents
    
    Loop
    Set OpenURL = objIE

End Function

'テーブルをすべて書き出す関数
Function GetTable(ByVal objIE As Object, ByVal cnt As Long)

    Dim Doc As HTMLDocument
    Dim r As Long
    Dim c As Long
    Dim i As Long
    
    Set Doc = objIE.document
    With ThisWorkbook.ActiveSheet

        c = 2
        
        For i = 0 To Doc.all.Length - 1
        
            If cnt = 2 Then
            
               If Doc.all(i).tagName = "TH" Then
                    r = 1
                    .Cells(r, c) = Doc.all(i).innerText
            
                ElseIf Doc.all(i).tagName = "TD" Then
                    r = cnt
                    .Cells(r, c) = Doc.all(i).innerText
                    c = c + 1
    
                End If
            
            Else

                If Doc.all(i).tagName = "TD" Then
                    r = cnt
                    .Cells(r, c) = Doc.all(i).innerText
                    c = c + 1
    
                End If
                
            End If
            
            
        Next i
        
    End With

End Function

```
##3.マクロ実行をして詳細一覧を作成する
アクティブシートに各企業ごとに下記項目の一覧が作成されます

	代表者	概要	事業所	資本金	株式公開	資本系列	HP	事業内容	企業の特色	社風・環境	業績							仕事内容	経験・スキル	学歴	語学	勤務地	採用人数	募集背景備考	雇用形態	雇用期間	更新時期	給与	給与備考	手当	給与形態	各種保険	福利厚生	制度面の備考	就業時間	休日休暇	休日休暇補足	転勤	選考方法