日常点検記録表をExcelVBAの繰り返し処理で自動作成する その1
初心者でもできるExcelVBA
運送業界は他業種に比べてIT化が遅れていると言われますが、Excelを仕事で使っていない人はいないでしょう。
でも、中小運送会社のほとんどの人はExcelを表計算ソフトや文書作成ソフトとしてしか使えていないのではないでしょうか。
運送業界の人手不足が深刻な問題になっているいま、トラック運転者の確保だけでも大変なのに総務や売上管理などの事務処理をこなす中小運送会社の事務方は日々大変な思いで業務に取り組まれているのではないでしょうか。
でも、ほんの少しExcelに手を加えるだけで、毎日行っている仕事の時間を短縮することがでるのです。
それではさっそく運送会社で必ず作成しなければいけない日常点検記録表を自動作成してみましょう。
日常点検記録表は車両ごとに作成しなければいけませんから1か月ごとに作成するとしても、車両が10台であれば毎月10枚、50台なら50枚と作成する必要がありますよね。
あなたの会社では、どのようにこれを作成していますか?
表1枚ごとに車両番号や担当者名など入力して、1枚ずつ印刷していませんか?
一般的な日常点検記録表は、1日単位又は1か月単位で作成しますが、通常1日単位で作成することはよほど車両台数が少ない場合でない限りはせず、1か月単位で作成する下記のような表が多いと思います。
Wordの差し込み印刷を使っても可能ですが、今回は省略します。
1.まず、ExcelファイルのSheetを2つ作成します。
シート名は、「点検記録表」と「車両台帳」にします。
2.点検記録表シートには、先ほどの日常点検記録表を作成し、車両台帳シートには車両番号などが入ったテーブルを作成します。
3.次に点検記録表の年月、車両番号、車種、担当乗務員の各欄のセルに数式を入力します。
- 年月セルには、=YEAR(TODAY()+10)&"年"&MONTH(TODAY()+5)&"月分"
- 登録番号セルには、=INDEX(車両台帳!$H:$H,MATCH($A$1,車両台帳!A:A,0)) ← H:H は登録番号
- 車種セルには、=INDEX(車両台帳!$D:$D,MATCH($A$1,車両台帳!A:A,0))&"t" ← D:D は車種
- 担当乗務員セルには、=INDEX(車両台帳!$I:$I,MATCH($A$1,車両台帳!A:A,0)) ← I:I は乗務員名
各数式の説明ですが、年月セルの Year(Today()+10) と Month(Today()+5) は、翌月分の点検表を前月末に作成するため、作成する日(月末)に一定の日数を加えて翌月の年月になるようにしています。
登録番号、車種、担当乗務員各セルは、車両台帳シートからINDEX関数で各値を点検記録表の A1セル の値を検索値として参照する設定です。
良くあるのですが、この点検記録表シートは、A1セル以外セルの書式設定からロックをかけて、シートの保護をしておいた方が良いと思います。
このExcelファイルを他の人も使用していて、セルに入れている数式を消された経験があります。
なお、ファイル形式は、マクロ有効Excelファイルとして保存します。
4.そして、開発タブからVisual Basic Editorを開いて、挿入タブから標準モジュールを選択します。
このような標準モジュールフォルダの中に Module1 という標準モジュールができ、これにマクロコードを記述することができます。
コードはこのようになります。
ここではVBAの詳しいことについてはあまり考えずに、この通りにコードを記述してみてください。
Call の一行部分は記述しなくて結構です。
簡単に説明しますと、まずインプットボックスに印刷したい開始番号と終了番号を入力し、その番号分だけ反復処理をして、点検記録表のA1セルに番号を順番に代入して、その値によって前述の各セルに入っているINDEX数式を処理するというコードになります。
※ コードは、コピペするよりもあなた自身で記述したほう が、理解しやすいと思います。
5.コードの記述ができたら、Visual Basic Editor を閉じて、点検記録表シートに戻り、開発タブのマクロをクリックします。
6.マクロのダイヤログが出ますので、先ほどコードを記述したマクロ名を選んで、実行ボタンをクリックするとインプットボックスが出て、開始番号と終了番号をそれぞれ入力して、ボタンを押すと印刷が始まります。
点検記録表シートに下のような図形ボタンを作成して、そのボタンにマクロを登録すれば、マクロのダイアログを開かなくても、ボタンをクリックするだけで、処理を実行することもできます。
これで毎月、何十枚もの点検記録表を出力する作業がほんの数分で終わりますよ。
公務員時代は情報管理の仕事で物品管理システムや業務の自動化などに約30年携わってきました。今は会社勤めをしながらフリーランスでWordPressを使ったWebサイトの制作、運用代行、サイト構築のアドバイスやVBA・Pythonでの業務自動化など行っています。兵庫県三田市在住