Excel VBAで所要時間を自動計算!時分別列データ対応

こんにちは!今回はExcel VBAを使い、時間と分が別々の列に分かれているデータから所要時間を自動計算する方法をご紹介します。VBAを使うことで、大量のデータ処理や他の操作と組み合わせて自動化が可能です。今回のコードでは、指定したセル範囲の開始時刻と終了時刻から所要時間を計算し、結果をセルに出力します。手動入力ミスを防ぎ、作業効率が大幅に向上するため、シフト管理や会議の所要時間集計など、多くの場面で役立つ方法です。

使用するデータリスト

まず使用するデータリストについて解説します。データリストは「データ」のワークシート上に、「№」「開始時」「開始分」「終了時」「終了分」という構成となっており、今回はデータを12行分作成しました。
「所要時間」の列は計算結果を返す列となっています。

VBAの実行結果

VBAを実行した結果下図のような結果を得る事が出来ます。

コード解説★★★(コピーはここ)★★★

 

解説

このVBAコードは、大きく分けて5つの機能で構成されています。
  1. 変数の宣言:使用する変数や配列、コレクションを宣言しています。また、このコードでは設定値の入力もここで行っています。
  2. 情報の取得と配列サイズ調整 :データリストの行数調査及び配列のサイズ変更を行っています。
  3. 所要時間の調査:開始、終了時間から所要時間を算出します。
  4. データの格納:指定したセルへ結果を出力します。

変数の宣言

1行目:マクロ名を「Sample08」と定義。
3~8行目:データの参照元や入力先のセルを指定する。
11~13行目:VBA内で使用する変数を宣言している。

情報の取得と配列サイズ調整

2行目:データの数を取得する。
5行目:データ数を利用して結果を格納する配列のサイズを調整する。

所要時間の調査

1行目:変数NNをデータ開始行の値から最終行の値になるまで処理を繰り返す。
3、4行目:開始と終了の時間と分の差をそれぞれの変数に格納する。
7行目:終了時分が翌日になっている場合、開始時間に24を加算する。
10行目:TimeSerialを使用して所要時間を算出し、配列に格納する。
11行目:変数NNを1加算して1行目から繰り返す。

データの格納

2行目:配列に格納した所要時間を事前に指定したセルへ入力する。
3行目:ここでこのコードは終了。

使用している技術

基本:FOR-NEXT、TimeSerial

まとめ

この記事では、Excel VBAを活用して、時間と分が別々の列に分かれているデータから所要時間を計算する方法を解説しました。VBAによる自動化は、手動作業のミスを減らし、効率を大幅に向上させるため、シフト管理や会議時間の集計など、多くの業務で役立ちます。今回紹介した方法は、指定したセル範囲の開始時刻と終了時刻から所要時間を算出し、その結果を自動的に出力するものでした。VBAの基本的な技術を使うことで、データ処理の自動化を手軽に実現できるので、ぜひ活用してみてください。

コメント

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