【VBA入門】第五回:実務で役立つ データ集計(日付操作、合計SUM、変数を活用、カンマ付き書式、太文字、罫線は1行コードで実行)

ExcelVBA

Last Updated on 2024年2月26日

はじめに

前回は前回の記事では、シート操作や文字設定の基本を学びました。今回は、VBAを使って実務に直結するより高度な技術に挑戦します。具体的には、「明細」シートのデータを基に合計数量と合計金額を計算し、「報告書」シートに自動で転記する方法と、受注日から報告書のタイトルを生成する方法を学びます。

完成イメージ

学べること

  • 日付データの操作方法
  • VBAでの最終行の自動判定方法
  • シート間でのデータ転記方法
  • 変数の使い方
  • セル書式の設定方法
  • With句の使い方

実践プログラム:データ集計と報告書作成

ステップ1: 明細データの準備

①シートを追加して、名前を「明細」にします。
②「明細」シートに以下のサンプルデータをコピーして貼り付けてください。

受注日商品名数量単価売上
2024/2/1商品A105005,000
2024/2/2商品B202505,000
2024/2/3商品C154006,000
2024/2/4商品D58004,000
2024/2/5商品E126007,200

ステップ2: 報告書シートの準備

①シートを追加して、名前を「報告書」にします。
②上の完成イメージ図を参考に、(処理前)のフォーマットを作成してください。
※面倒であれば、フォーマットは作成しなくても「報告書」シートさえあればプログラムは実行できます。

ステップ3: コードを作成

    VBEに新規モジュールを作成し、以下のコードをコピペしてください。F8Fn + F8)でステップ実行しながら、各行が何をしているかを確認してみましょう。
    このコードでは「変数」を使用しています。 変数が初めての方はこちらの記事を参考にしてください。

    前述のコードは、特に入門者にとっては理解しやすい構造をしていますが、実際のプログラミングでは冗長性を避け、より効率的なコードを書くことが求められます。以下に示すコードは、より実務に即した形で、同じ処理をより簡潔に実行する方法を示しています。初心者の方は、まずは基本的なコードの流れを理解し、徐々にこのような簡潔なコードが書けるように挑戦してみましょう。音声付き動画での解説も予定していますが、まずはテキストの説明とコードを通じて基本を把握してください。音声付き動画は完成次第、この記事を更新し、新たな学習リソースとしてご紹介します。

    4. DXの観点

    Excel関数で同様の操作を行う場合、データ範囲が変動すると手動で範囲を調整する必要があります。また、複数のシート間でデータをリンクさせる際には、関数をコピー&ペーストする等の手間が発生します。VBAを使用することで、これらの操作を自動化し、エラーのリスクを減らしながら効率を大幅に向上させることができます。

    まとめ

    この記事では、VBAを使って「明細」シートのデータから合計数量と合計金額を計算し、「報告書」シートに自動で転記する方法を学びました。また、受注日から動的に報告書のタイトルを生成する方法も紹介しました。これらの技術は、実務での報告書作成など、多くの場面で役立つでしょう。次回は、さらに複雑なデータ処理に挑戦していきます。