いまさら聞けないExcelの使い方講座

【Excel】毎週同じ書式のシフト表を作る作業を効率化!エクセルでシートのコピーと日付の入力を一瞬で終わらせるテク

使い回している書類をコピーしてデータをクリアする操作が面倒!

 業務報告書や勤怠管理表など、毎回同じフォーマットを使い、月や週ごとにシートを分けて作成することが必要な書類ってありますよね。

 Excelを使ってシフト表を作成している職場があるとします。この職場では、毎週のシフト表に同じフォーマットを使い、週ごとにシートを分けて作成しています。ここでは、1月第2週のシフト表がすでに完成しているとします。このような場合、たいてい翌週のシフトを作成する時期になったらその週のシートをコピーして、日付と担当者名の欄(①)のデータをクリアして新たにシフト表を作成するということが多いのではないでしょうか。

 週に一度の作業とはいえ、シートのコピー→データのクリア→シート名の修正→シフト表の入力……という一連の作業が億劫に感じることもありますよね。シフトを考えて入力するだけでも労力を使いますから、入力以外の操作はなるべく簡略化したいものです。

 こんな時に便利なのがExcelの「マクロ」です。Excelを使ったことがある方なら一度は聞いたことがあると思います。でも、便利であるにも関わらず、「難しそう!」というイメージから敬遠されてしまうことも多い機能です。2020年は、マクロにチャレンジして、Excelでのスキルをさらにステップアップさせてみませんか?今回は、シートをコピーしてデータをクリアし、日付をオートフィルで入力する操作をマクロで効率化する方法を解説します。なお、今回の記事では、リボンに[開発]タブを表示した状態で操作を進めます。[開発]タブは既定では表示されていません。お手元のパソコンに[開発]タブが表示されていない場合は、過去の記事を参考にして表示させることができます。

準備:「マクロ」って何?

 そもそも、「マクロ」とは何でしょうか。マクロは、ある一連の操作を記録し、いつでも呼び出して使えるようにしたものです。Excelの場合、マクロはVBAという言語で書かれたプログラムですが、プログラミングの知識が全くなくても、簡単な操作でマクロを作ることができます。

 VBAという言語に触れることなくマクロを作成したい時には、「マクロの記録」という操作を行います。自分がいつも行っている業務を同僚に教える時、実際に操作を見せながら説明して覚えてもらうということはよくありますよね。マクロを作るのも同じようなことです。Excelに「こうやってやるんだよ」と実際に自分が操作して教えると、Excelにその操作が記録され、その操作をExcelが一瞬でやってくれるようになるのです。とても便利な機能だと思いませんか?

 実際にマクロの記録を始める前に、どのような内容のマクロを作るかを考えておきます。「毎回必ず行う操作」をマクロに記録するのが、業務を効率化するコツになります。先ほどの「1月第2週シフト表」の例だと、翌週のシフト表を作る時に行う操作は、具体的には次の5つです。

①シートをコピーする
②日付と担当者の欄を空欄にする(クリアする)
③シート名や表のタイトルを修正する
④日付をオートフィルで入力する
⑤担当者名を入力する

 ここで、毎週必ず行う操作は①と②、また④に含まれるオートフィルの操作です(入力する日付は毎週変わりますが、オートフィルそのものは必ず行いますよね)。今回の例では、これらの操作をマクロとして記録するのが良さそうです。シート名や、表に入力される内容は毎週違うので、マクロに記録してもあまり意味がありません。

 まとめると、毎回繰り返す一定の操作をExcelに記録することで、その操作を自動化できるのが「マクロ」というものです。

毎回必ず行う操作だけをマクロに記録するのがコツ

 それでは、実際にマクロの記録を始めます。[開発]タブ(①)→[マクロの記録](②)をクリックします。

 [マクロの記録]ダイアログボックスが表示されます。[マクロ名]欄に、マクロに付ける名前(③)を入力します。[マクロの保存先]欄ではこれから作成するマクロをどこに保存するかを選択しますが、ここでは現在作業しているブックに保存すればよいので、[作業中のブック](④)を選択します。[説明]欄には、マクロに関する説明(⑤)を入力します(省略しても構いません)。

 すべて入力できたら、[OK](⑥)をクリックすると、ダイアログボックスが閉じてマクロの記録が始まります。

 なお、このダイアログボックスにある[ショートカットキー]欄でショートカットキーを指定すると、マクロを保存したブックを使っている時にそのショートカットキーでマクロを起動できるようになります。ただし、すでに割り当てられているショートカットキー(例えば、[Ctrl]+[C]キーでコピーしたり、[Ctrl]+[Z]キーで戻るなど)と同じものを指定すると、もともと割り当てられているショートカットキーの機能が使えなくなるので注意してください。

 この後は、マクロに記録したい操作を実際に行っていきます。行った操作はすべてマクロに記録されるので、余計な操作を行わないように気を付けてくださいね。まずは、シートをコピーして表の中のデータをクリアする操作を行いましょう。[Ctrl]キーを押しながらコピー元のシート見出しをドラッグしてシートをコピー(⑦)し、クリアするデータが入力された部分をドラッグして選択(⑧)します。

 [Delete]キーを押して、選択したセル範囲のデータをクリア(⑨)したら、マクロの記録を終了します。この後にも、マクロに記録したい「日付のオートフィル」の操作がありますが、この操作は別のマクロに記録します。[開発]タブの[記録終了](⑩)をクリックすると、マクロの記録が終了します。

 続いて、「日付のオートフィル」を先ほどとは別のマクロとして記録します。ここではセルD2に入力した日付をセルI2までオートフィルでコピーすることで、連続した1週間分の日付を入力します。ここでポイントになるのは、「セルD2に日付を入力する操作はマクロに記録しない」ことです。セルD2に入力される日付は毎週変わるので、マクロに記録するのはあくまでも「オートフィルで連続した日付を入力する」という操作だけにします。先にセルD2に日付(⑪)を入力し、[開発]タブの[マクロの記録](⑫)をクリックします。

 [マクロの記録]ダイアログボックスが表示されるので、先ほどの「シートのコピー」マクロの時と同様にマクロ名などの情報(⑬)を入力し、[OK](⑭)をクリックします。

 セルD2からセルI2までオートフィルを行い、連続した日付を入力します(⑮)。ただ、この操作をすると、もともと土曜日の日付の欄に設定されていた水色の背景色が消えてしまいます。

 オートフィルを行うともともとあった書式が消えてしまうというのは、どんな日付を入力した時にも発生する現象ですから、土曜日の欄の書式を正しい状態にする操作までをマクロに記録することにしましょう。セルI2の右下に表示されているオートフィルオプション(⑯)をクリックし、表示されるメニューから[書式なしコピー(フィル)](⑰)を選択します。

 セルI2に、もともと設定していた水色の背景色が再び表示されたことを確認し、[開発]タブの[記録終了](⑱)をクリックします。

 これで、毎週必ず行う操作をマクロに記録できました。

記録したマクロを実行するには

 それでは、前項で記録したマクロを実行し、実際にシートをコピーして翌週のシフト表に作り替えてみましょう。[開発]タブ(①)→[マクロ](②)をクリックします。

 [マクロ]ダイアログボックスが表示されます。[マクロ名]欄の下には前項で記録した2つのマクロが表示されているので、最初に[シートのコピー](③)を選択し、[実行](④)をクリックします。

 ダイアログボックスが閉じるとともに、シートがコピーされ(⑤)、日付と担当者の欄が空欄になった状態の表(⑥)が表示されます。「シートのコピー」マクロが正しく実行できることが確認できましたね。

 続いて、「日付の入力」マクロの動作も確認してみましょう。セルD2に月曜日の日付(⑦)を入力し、[開発]タブ→[マクロ](⑧)をクリックします。

 [マクロ]ダイアログボックスが表示されるので、[マクロ名]欄で[日付の入力](⑨)を選択し、[実行](⑩)をクリックします。

 すると、1週間分の連続した日付が自動で入力されます(⑪)。セルの書式も正しく設定されていますね。「日付の入力」マクロも正しく実行できることが確認できました。

 表がここまでできてしまえば、あとは表のタイトルやシート名を修正したり、担当者名を入力して、シフト表を完成(⑫)させればOKです。

 シートのコピーやデータのクリア、日付の書式なしコピーなどは、毎回やらなければいけないけれど正直少し面倒くさい操作ですよね。今回の例のようにその面倒な操作をマクロに記録すれば自動化することができ、シフトを考える作業など、最も注力したい作業に使う時間を増やすことができます。

 なお、このシフト表のようにマクロを含むブックは通常のExcelブックと同じ形式(拡張子が.xksx)では保存できず、マクロ有効ブック(拡張子が.xlsm)として保存する必要があります。本記事の操作を行ってマクロを作成した後でこのシフト表のブックを上書き保存しようとすると、次のようなメッセージが表示されます。マクロ有効ブックとして保存するためには、[いいえ](⑬)をクリックします。

 ブックを保存する時に、[名前を付けて保存]ダイアログボックスの[ファイルの種類]欄で[Excelマクロ有効ブック(*.xlsm)](⑭)を選択しましょう。

 これで、マクロが有効なブックとして保存できます。

マクロは業務効率化の強い味方!

 今回は、シフト表のシートをコピーし、日付を入力する操作をマクロで自動化する方法を解説しました。これまでマクロを敬遠していた方も、今回の記事を読んで、少しマクロを身近に感じていただけたでしょうか。

 ファイルを定期的に使い回すことがある方は、マクロで効率化できる操作がきっとあるはずですよ。今回の記事を参考にして、2020年はぜひマクロを活用して業務を大幅に効率化してみてくださいね!