Excelで「請求書」だけを自動で別セルに入力する方法|VBAと関数の活用

Office系ソフトウェア

Excelで「請求書」という文字を含むセルを特定し、同じ行の離れたセルに自動で入力させる方法を紹介します。「見積書」「納品書」などは除外し、「請求書」のみを対象とする方法を関数とVBAを使って解説します。

関数を使った方法(シンプルな設定)

Excelの IF 関数を使えば、「請求書」のみを特定し、別のセルに自動入力することができます。例えば、A列に「請求書」「見積書」「納品書」などが入力されている場合、B列に「請求書」のみを転記するには以下の数式を使います。

=IF(A2="請求書", A2, "")

この数式をB2セルに入力し、下の行までコピーすれば、A列に「請求書」と入力された場合のみ、B列に「請求書」が表示されます。その他の文字(見積書や納品書など)は無視されます。

VBAを使った方法(動的な自動入力)

より高度な処理を行いたい場合、VBAを使って「請求書」だけを指定のセルに自動で入力することも可能です。以下のVBAコードは、A列のデータをチェックし、該当する行のC列に「請求書」を自動入力します。

Sub 請求書自動入力()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    Set ws = ActiveSheet
    lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row ' A列の最終行を取得
    
    For i = 2 To lastRow ' 2行目以降を処理(タイトル行を除く)
        If ws.Cells(i, 1).Value = "請求書" Then
            ws.Cells(i, 3).Value = "請求書" ' C列に自動入力
        Else
            ws.Cells(i, 3).ClearContents ' 他の値は削除
        End If
    Next i
End Sub

VBAを設定する手順

VBAを使用するには、以下の手順を行います。

  1. Excelを開き、「Alt + F11」を押してVBAエディタを開く
  2. 「挿入」→「標準モジュール」を選択
  3. 上記のコードをコピーし、VBAエディタに貼り付ける
  4. 「F5」を押して実行

このコードを実行すると、A列をチェックし、「請求書」と一致する行のC列に「請求書」が自動で入力されます。

VBAの自動実行(セル変更時に動作)

「請求書」を入力した際に即座にC列に反映させるには、VBAのイベント処理を使います。以下のコードを「Sheet1(または対象のシート)」のVBAエディタに記述してください。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    
    If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
        Application.EnableEvents = False
        For Each cell In Target
            If cell.Value = "請求書" Then
                cell.Offset(0, 2).Value = "請求書" ' 2列右(C列)に入力
            Else
                cell.Offset(0, 2).ClearContents
            End If
        Next cell
        Application.EnableEvents = True
    End If
End Sub

このVBAを設定すると、A列に「請求書」を入力した際、自動的にC列にも「請求書」が入力されます。

まとめ

「請求書」のみを自動で別のセルに入力する方法として、以下の手法を紹介しました。

  • 関数(IF関数)を使う方法:簡単な設定でOK
  • VBAを使う方法:より高度な自動化が可能
  • VBAのイベント処理:入力と同時に即座に反映

用途に応じて適切な方法を選び、Excelの業務効率を向上させましょう。

コメント

タイトルとURLをコピーしました