Excel VBAを使ったオンライン学校・大学申請フォームの自動入力方法

Excel VBAを使ったオンラインの学校や大学の入学申請フォームへの入力を自動化する方法について詳しく紹介します。この記事では、具体的なコード例を交えて、その解説や実践的な応用例をご紹介します。

目次

Excel VBAの基本

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

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

はじめに

オンラインの入学申請フォームは、数多くの学校や大学で利用されています。しかし、複数の学校や大学への申請を考えると、同じ情報の入力が繰り返されるため、作業が煩雑になることがあります。Excel VBAを使用することで、このような手間を大幅に削減することが可能です。

基本のコード

以下は、Excelのデータを取得し、Webブラウザ(IE)を操作して、学校の申請フォームにデータを入力する基本的なコードです。


Sub AutoInputForm()
    Dim IE As Object
    Dim ws As Worksheet

    Set IE = CreateObject("InternetExplorer.Application")
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With IE
        .Visible = True
        .navigate "http://example-school-application.com"

        Do Until .readyState = 4
            DoEvents
        Loop

        .document.getElementById("name").Value = ws.Range("A1").Value
        .document.getElementById("address").Value = ws.Range("A2").Value
        ' ... 以下、他の入力項目に対してのコードを続ける
    End With
End Sub

このコードは、Excelの”Sheet1″のA1セルに名前、A2セルに住所が記載されていると仮定して、それらの情報をWebブラウザを通して指定されたURLの申請フォームに自動で入力します。

コードの詳細解説

1. `Dim IE As Object` および `Dim ws As Worksheet`:必要なオブジェクトを宣言します。
2. `Set IE = CreateObject(“InternetExplorer.Application”)`:Internet Explorerを操作するオブジェクトを作成します。
3. `Set ws = ThisWorkbook.Sheets(“Sheet1”)`:操作するExcelのシートを指定します。
4. `.navigate “http://example-school-application.com”`:指定したURLにアクセスします。
5. `Do Until .readyState = 4`:ページが完全に読み込まれるまで待機します。
6. `.document.getElementById(“name”).Value = ws.Range(“A1”).Value`:Webページ上の”名前”入力欄に、ExcelのA1セルの値を入力します。このような方法で他の入力項目も入力します。

応用例

応用1: 複数の学校・大学への申請

複数の学校や大学に申請する場合、ループを利用して同じ操作を繰り返すことができます。


Sub MultiSchoolApplication()
    Dim IE As Object
    Dim ws As Worksheet
    Dim urls() As Variant
    Dim i As Integer

    urls = Array("http://school1-application.com", "http://school2-application.com", "http://university-application.com")
    
    Set IE = CreateObject("InternetExplorer.Application")
    Set ws = ThisWorkbook.Sheets("Sheet1")

    For i = LBound(urls) To UBound(urls)
        With IE
            .Visible = True
            .navigate urls(i)

            Do Until .readyState = 4
                DoEvents
            Loop

            .document.getElementById("name").Value = ws.Range("A1").Value
            .document.getElementById("address").Value = ws.Range("A2").Value
            ' ... 以下、他の入力項目に対してのコードを続ける
        End With
    Next i
End Sub

応用2: エラーハンドリングの追加

Webページの構造が変わる、ネットワークエラーなど、様々な要因でエラーが発生する可能性があります。VBAのエラーハンドリングを利用して、エラー発生時の処理を追加します。


On Error GoTo ErrorHandler

' ... 通常のコード ...

Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました。", vbExclamation, "エラー"
    IE.Quit
    Set IE = Nothing
End Sub

応用3: 自動入力の完了後にメール通知

入力作業が終わった後、自動で通知メールを送信する機能を追加します。


Sub SendNotificationMail()
    Dim OutlookApp As Object
    Dim Mail As Object

    Set OutlookApp = CreateObject("Outlook.Application")
    Set Mail = OutlookApp.CreateItem(0)

    With Mail
        .To = "your-email@example.com"
        .Subject = "申請フォームの自動入力が完了しました"
        .Body = "指定された全ての申請フォームへの入力が正常に完了しました。"
        .Send
    End With

    Set Mail = Nothing
    Set OutlookApp = Nothing
End Sub

このコードを基本のコードの終了部分に

追加することで、自動入力が完了した際に指定したメールアドレスへ通知を送ることができます。

まとめ

Excel VBAを使用することで、オンラインの学校や大学の入学申請フォームへの入力を効率化することができます。今回紹介した基本のコードや応用例を参考に、煩雑な入力作業を自動化してみてはいかがでしょうか。

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

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

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

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

コメント

コメントする

目次