Excel VBAでジョブポータルの新しい求人情報を自動取得する方法

この記事では、Excel VBAを利用してジョブポータルから新しい求人情報を自動で取得する方法について詳しく説明します。初心者でも理解しやすいように具体的なコード例とその解説、応用例を含めています。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAを使用して求人情報を取得する基本的な考え方

VBAはExcelの内部に組み込まれているプログラミング言語です。これを使って、ジョブポータルなどのWebサイトから情報を取得するには、Webクエリや外部のライブラリを使用する必要があります。

基本コード

今回は、シンプルなジョブポータルからの新しい求人情報の取得方法を示します。


Sub GetJobInfo()
    Dim LastRow As Long
    Dim WebUrl As String
    WebUrl = "https://example-job-portal.com/new-jobs"

    With ThisWorkbook.Worksheets("Sheet1").QueryTables.Add(Connection:="URL;" & WebUrl, Destination:=Range("A1"))
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With
    LastRow = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row
End Sub

コードの解説

このコードは、指定したジョブポータルのURLから新しい求人情報を取得し、ExcelのSheet1にその情報を表示します。

– **WebUrl**: 取得したいジョブポータルのURLを指定します。
– **QueryTables.Add**: WebUrlの情報をExcelに取得するためのメソッドです。
– **.BackgroundQuery**: バックグラウンドでのクエリを許可するかどうかを設定します。今回は即時に情報を取得したいので、Trueに設定しています。
– **LastRow**: Sheet1の最後の行番号を取得します。この情報は後の処理で使用することができます。

応用例

1. 求人情報の中から特定のキーワードを持つものだけを取得する


Sub GetSpecificJobInfo()
    Dim LastRow As Long, i As Long
    Dim WebUrl As String, Keyword As String
    Keyword = "プログラマー"
    WebUrl = "https://example-job-portal.com/new-jobs"

    With ThisWorkbook.Worksheets("Sheet1").QueryTables.Add(Connection:="URL;" & WebUrl, Destination:=Range("A1"))
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With

    LastRow = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row

    For i = LastRow To 1 Step -1
        If InStr(ThisWorkbook.Worksheets("Sheet1").Cells(i, 1).Value, Keyword) = 0 Then
            ThisWorkbook.Worksheets("Sheet1").Rows(i).Delete
        End If
    Next i
End Sub

解説

このコードは、指定したキーワード「プログラマー」を含む求人情報だけを取得します。取得した後、キーワードを含まない行は削除されます。

2. 求人情報を日付順にソートする


Sub SortJobInfoByDate()
    Dim LastRow As Long
    Dim WebUrl As String
    WebUrl = "https://example-job-portal.com/new-jobs"

    With ThisWorkbook.Worksheets("Sheet1").QueryTables.Add(Connection:="URL;" & WebUrl, Destination:=Range("A1"))
        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With

    LastRow = ThisWorkbook.Worksheets("Sheet1").Cells(ThisWorkbook.Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row

    With ThisWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:B" & LastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

解説

このコードは、取得した求人情報を日付順にソートします。

3. 求人情報の取得間隔を設定する


Sub GetJobInfoWithInterval()
    Dim WebUrl As String
    WebUrl = "https://example-job-portal.com/new-jobs"
    
    Application.OnTime Now + TimeValue("01:00:00"), "GetJobInfo"
End Sub

解説

このコードは、1時間ごとに指定したジョブポータルからの新しい求人情報を自動的に取得します。

まとめ

Excel VBAを使用してジョブポータルからの新しい求人情報の自動取得は、定期的な求人チェック

やデータの解析に非常に便利です。上述の基本コードと応用例を参考に、独自のニーズに合わせてカスタマイズしてみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次