Excel VBAを活用したオンライン予算・経費報告フォームへの情報入力自動化の方法

この記事では、Excel VBAを使用してオンラインの予算や経費報告フォームへの情報入力を自動化する方法について解説します。オンラインフォームへの入力作業は、時間がかかりミスも生じやすいもの。VBAのプログラミングを利用することで、これらの作業を効率的かつ正確に行うことが可能になります。

目次

Excel VBAの基本

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

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

Excel VBAとは

Excel VBA(Visual Basic for Applications)は、Microsoft Excelの中に組み込まれているプログラミング言語です。この言語を使用することで、Excelの各種操作を自動化したり、独自の関数やマクロを作成することができます。

基本的な自動入力マクロの作成

まず、基本的なオンラインフォームへの自動入力マクロの作成方法を解説します。

Sub AutoInputForm()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    
    With ie
        .Visible = True
        .navigate "https://example.com/form"
        
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop
        
        .document.getElementById("budgetField").Value = Sheets("Sheet1").Range("A1").Value
        .document.getElementById("expenseField").Value = Sheets("Sheet1").Range("B1").Value
        .document.getElementById("submitButton").Click
    End With
    
    Set ie = Nothing
End Sub

コードの解説

1. `InternetExplorer.Application`を使用して、Internet Explorerを操作するオブジェクトを作成します。
2. 対象のオンラインフォームのURLを指定してページを開きます。
3. ページの読み込みが完了するまで待ちます。
4. Excelのシートから予算と経費の情報を取得し、フォームに入力します。
5. 最後に「送信」ボタンをクリックして、フォームを送信します。

応用例

次に、この基本的な自動入力マクロをベースにした応用例を3つ紹介します。

応用例1: 複数のフォームへの入力

Sub MultiFormInput()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    
    With ie
        .Visible = True
        For i = 1 To 3
            .navigate "https://example.com/form" & i
            Do While .Busy Or .readyState <> 4
                DoEvents
            Loop
            .document.getElementById("budgetField").Value = Sheets("Sheet1").Cells(i, 1).Value
            .document.getElementById("expenseField").Value = Sheets("Sheet1").Cells(i, 2).Value
            .document.getElementById("submitButton").Click
        Next i
    End With
    
    Set ie = Nothing
End Sub

この例では、3つの異なるフォームに対して情報を入力しています。Excelのシート内の行ごとに異なる情報が保存されている場合、このようなマクロを使用することで、一度の操作で複数のフォームへの入力が可能になります。

応用例2: エラーチェック機能の追加

Sub AutoInputWithCheck()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    
    With ie
        .Visible = True
        .navigate "https://example.com/form"
        
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop
        
        Dim budget As Double
        Dim expense As Double
        budget = Sheets("Sheet1").Range("A1").Value
        expense = Sheets("Sheet1").Range("B1").Value
        
        If budget < 0 Or expense < 0 Then
            MsgBox "予算または経費がマイナスの値です。確認してください。", vbCritical
            Exit Sub
        End If
        
        .document.getElementById("budgetField").Value = budget
        .document.getElementById("expenseField").Value = expense
        .document.getElementById("submitButton").Click
    End With
    
    Set ie = Nothing
End Sub

この例では、予算や経費の値がマイナスである場合にエラーメッセージを表示してマクロの実行を中止する機能を追加しています。このようなエラーチェック機能を組み込むことで、不正確なデータの入力を防ぐことができます。

応用例3: フォームの入力内容の保存

Sub SaveFormData()
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    
    With ie
        .Visible = True
        .navigate "https://example.com/form"
        
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop
        
        Dim lastRow As Long
        lastRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp
).Row + 1
        
        Sheets("Sheet2").Cells(lastRow, 1).Value = .document.getElementById("budgetField").Value
        Sheets("Sheet2").Cells(lastRow, 2).Value = .document.getElementById("expenseField").Value
    End With
    
    Set ie = Nothing
End Sub

この例では、フォームの入力内容をExcelの別のシートに保存しています。これにより、後から入力内容を確認したり、データの分析を行うことができます。

まとめ

Excel VBAを使用することで、オンラインフォームへの情報入力作業を自動化することができます。このような自動化技術を利用することで、作業の効率を向上させるとともに、入力ミスのリスクを減少させることができます。今回紹介した基本的なマクロや応用例を参考に、自身の業務に合わせたカスタマイズを行いましょう。

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

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

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

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

コメント

コメントする

目次