catch-img

エクセル“マクロ機能”でシフト作成を効率化するテクニック

エクセルは、シフト作成のツールとして多くの企業が利用している汎用性の高い表計算ソフトです。

エクセルでシフト表を作成する場合、事前に作成したフォーマットを使って週や月ごとにシートを複製。適宜データを入力していくという流れが一般的でしょう。
しかし、毎回同じ作業を繰り返すことを面倒に感じている人も多いのではないでしょうか。

このようなときに役立つのが“マクロ機能”です。これまで手入力していた労力を減らして、シフト作成の作業をさらに効率化できます。

本記事では、マクロとはどのようなものか、基本知識やマクロ機能を使ったシフト作成のテクニックについて解説します。


目次[非表示]

  1. マクロとは?
  2. マクロを使ってみよう
  3. マクロには限界もある
  4. まとめ


マクロとは?

マクロとは、繰り返し行う操作を記録して、作業を自動化できる機能のことです。エクセルのすべてのバージョンに標準装備されています。

シフト作成に限らず、エクセルで作業するときには同じ操作や計算などを繰り返し実行することがあります。一度だけのことなら不便に感じることはありませんが、毎週、毎月と同じ作業を繰り返す必要があったり、処理するデータ量が膨大だったりすると作業は非常に大変です。

ルーチン化しているエクセルの操作をマクロに記録しておけば、実行ボタン一つで完結できます。時間と労力を大幅に短縮できるだけでなく、データ量が多いときでもミスなく正確に作業を実行できるというのがマクロの利点。

シフト表をはじめ、店舗の売上表や営業成績表などのあらゆる事務作業に活用できるため、業務効率化におおいに役立つ機能といえるでしょう。

マクロ機能には、おもに二通りの利用方法があります。以下で概要を解説します。

①VBAでプログラミングする

“VBA”とは、「Visual Basic for Applications」の略で、マクロ機能を実行するために使うツール、またはプログラミング言語のことを指します。Microsoftが提供するエクセルなどで利用するアプリケーション拡張機能のひとつです。

VBAを使ったマクロ作成では、基本として備えられているマクロ機能よりも、さらに複雑な処理ができるという特徴があります。

ただし、実現するためにはVBAのコーディングが必要となるため、プログラミングの知識や言語スキルが求められます。基本的な知識やノウハウがなければ、実現は難しいかもしれません。

②作業手順を記録させる

プログラミングの知識がなくても、エクセル自体に備えられている“マクロの記録”を使えば、コーディングをしなくてもマクロの作成が可能です。

実行するまでに複雑な工程はなく、基本的な操作は“セルの選択”と“クリック”のみ。ボタン一つで簡単に操作手順が記録できるため、VBAの知識がない初心者でも簡単に作業を自動化できます。


マクロを使ってみよう

ここでは簡単にできる“マクロの記録”機能を使った方法を解説します。

実行までの工程は、以下の3ステップ。

ステップ1:繰り返し行う単純作業を洗い出す
ステップ2:マクロに記録する
ステップ3:マクロを実行する

一週間単位のシフトを複製して、翌週のシフトを作る場合のケースを例として、“マクロの記録”を解説します。

ステップ1:繰り返し行う単純作業を洗い出す

まずは、今のシフト作成の作業で、毎回繰り返している操作を洗い出すことから始めます。

すでにシフト表がある状態で、シートを複製して翌週のシフトを作っている場合は、おもに以下の作業が発生します。

①シフト表のシートをコピーする
②表の内容(日付や名前)を削除して空欄にする
③日付をオートフィル機能で入力する
④シート名や表タイトルを翌週に書き換える
⑤従業員名を入力する

上記の操作のうち、同じ作業を毎週繰り返すものは①②③の操作となります。
④⑤については毎回内容が異なるため、マクロに記録する必要はありません。

①~③までの操作を記録してボタンひとつで実行できるようになれば、あとはシート名や従業員名を入力するだけでシフトが完成します。

ステップ2:マクロに記録していく

今あるシフト表をもとに、翌週のシフトを作成する手順をマクロに記録していきます。

まずは、エクセルの“表示”タブを選択し、マクロのメニューから“マクロの記録”をクリックします。
※マクロ選択が“表示”にない場合は、“開発”タブを選択してください。



“マクロの記録”を選択すると、ダイアログボックスが表示されます。マクロにつける名前と保存先を入力しましょう。
今回は現在作業中のブックに保存しています。説明については省略しても問題ありません。



ショートカットキーを入力すると、このブックを利用しているとき即座にマクロを起動できるようになります。
すでに設定されているショートカットキー(Ctrl+Cなど)と重複すると従来の機能が使えなくなるため注意が必要です。

入力後に“OK”を押すと、その後の操作がすべてマクロに記録されます。

ここで記録する操作は、以下の2つです。

①シートをコピーして複製する
②表の選択範囲を削除して空欄にする


“Ctrl”を押しながら“Sheet1”をドラッグして“Sheet2”へコピーします。
その後、D3からJ5までのセルを選択して“Delete”キーをタップ。
データを削除したら、マクロ選択メニューから“記録終了”を選択しましょう。



このような状態になったら、ひとまず1回目の記録は終了です。

次に、「③オートフィル機能使った日付入力」を、別のマクロに記録します。


ただし、日付は毎週変わるため、あくまで「オートフィルを使って連続した日付を表示する」という操作のみを記録します。

まずはD2のセルだけに日付を入力した状態にして、先ほどと同様の手順でマクロの記録をスタートしましょう。



D2からJ2までオートフィルで日付を入力したら、J2あたりに表示されるオートフィルオプションを選択し、メニューから“書式なしコピー(フィル)”をクリックします。



ここまで終わったら、再度マクロの選択メニューから“記録終了”をクリックしましょう。これで、①②③すべての操作がマクロに記録されました。

ステップ3:マクロを実行する

では実際に、ステップ2で記録したマクロを実行してみましょう。
もともと作っていたSheet1のシフト表を開き、マクロ選択メニューから“マクロの表示”を選択します。



再びマクロのダイアログボックスが表示されると、先ほど作成した2種類のマクロを選択できるようになっています。
最初は“シフト表”を選択して実行をクリックしてみましょう。



ダイアログボックスが閉じると、Sheet2に表がコピーされ、データが削除された状態の表が現れました。
1回目に記録した①②の操作が正しく実行されていることがわかります。

同様に、③のオートフィルによる日付入力も実行してみましょう。
D2のセルのみに日付を入力し、マクロ選択メニューから“マクロの表示”を選択します。



先ほどと同様に記録したマクロが表示されるため、次は“日付のオートフィル”を選択して実行します。


ダイアログボックスを閉じると、6月8日から7日間の日付が連続で表示されます。
オートフィルの日付入力についても、きちんとマクロに記録されていることが確認できました。



あとは従業員名の名前や表のタイトルを変更すればシフト作成は完了です。


マクロには限界もある

エクセルのマクロ機能を使ったシフト作成は、シートのコピーやデータの消去などの単純作業を自動化できる点については非常に便利です。    

しかし、マクロ機能だけでは記録できる操作に限界があります。
以下のような処理を実行するためには、やはりVBAを利用する必要があります。

繰り返し処理

記録したマクロを実行するときは、1回ずつ実行ボタンを押す必要があります。同時に複数回のマクロを実行するといった“繰り返し処理”はできません。

シフトを作成するとき、翌週分だけでなく翌々週や、一か月後のシフトも同時に準備しておきたいという場合もあるでしょう。この場合、1シート目、2シート目と繰り返し実行ボタンを押す必要があるため、作業に不便を感じてしまうかもしれません。

分岐処理

シフトを作るときは、従業員一人ひとりの労働時間や、その日にかかる人件費予算なども考慮しなければなりません。

勤務時間や人件費の状況を可視化するためには、「8時間以上の勤務にはセルが赤色に表示される」など、数値に応じて個別の操作を処理できる機能があると非常に便利です。

しかし、マクロの記録機能には、「もしこうだったら・・・」という分岐処理は備えられていません。
事由ごとにセルを色付けしたり、該当のセルに入力があった場合に数値を置換したりといった応用性の高い作業にはVBAが不可欠といえるでしょう。


まとめ

エクセルのマクロ機能を使ったシフト作成の方法をご紹介しました。
日々のルーチン化している単純作業を自動化できる“マクロの記録”ですが、より応用的なシフトを作るには、数値に応じて分岐処理できるVBAの知識が必要です。

VBAの活用が難しい場合には、簡単な操作のみでシフト作成できるシフト管理システムの導入を検討してみましょう。

シフオプ”は、日ごと、週ごとなどのさまざまなパターンのシフトを簡単に作成できます。ドラッグ・クリックといった基本的な操作で完結するため、難しいプログラミングや関数の知識は必要ありません。

また、シフト作成時に労務違反のリスクが高いシフトにアラートを表示し、安全なシフト作成をサポート。人件費も自動計算されるため、人件費管理の強化が可能です。シフト作成の業務負担を軽減できるだけでなく、店舗の運営・管理に役立ちます。

エクセルでのシフト作成・管理に限界を感じている人は、ぜひシフオプの導入を検討してみてください。

お問い合わせ・資料請求はこちらから