top of page

​タグ一覧

配列処理(76)

シート・セル操作(37)

ファイル操作(33)

階層化フォーム(33)

開発事例(31)

図形操作(29)

設計思想(15)

ユーザーフォーム(12)

シフト表(12)

講座実施報告(12)

数学(11)

イベントプロシージャ(10)

開発効率化(10)

コード自動生成(10)

GAS(10)

技術解説(9)

ココナラ(9)

文字列操作(8)

Webアプリ(8)

Googleスプレッドシート(6)

その他(5)

アニメーション(5)

副業(5)

介護・福祉(5)

OneDrive(4)

条件付き書式(4)

イミディエイトウィンドウ(4)

クリップボード(4)

小説(3)

日報(3)

JavaScript(3)

PDF(3)

HTML(3)

公開ツール(3)

クラスモジュール(2)

コード解説(2)

パズル(2)

小ネタ(2)

フリーランス(2)

Antigravity(2)

カレンダー(2)

Enum(2)

医療(2)

LookerStudio(2)

リスキリング(2)

Discord(2)

Outlook(2)

デスクトップアプリ(2)

スクレイピング(1)

WebAPI(1)

PowerShell(1)

文書作成(1)

スプレッドシート(1)

経理(1)

超勉強会(1)

溶接ロボット(1)

楽天市場(1)

VBA不使用(1)

実行予約(1)

CAD(1)

給与計算(1)

QRコード(1)

python(1)

学校(1)

発注書(1)

【Excel VBA】複数店舗のシフトをシートでつなぐ|掛け持ちスタッフの二重登録を防ぐ作り方

8 時間前
読了時間: 3分

まずは動画で、考え方をご覧ください(動画の図はイメージです)。

同じ動画は、YouTubeでも2026年12月1日 12:00に公開します。

複数の店舗を掛け持ちするスタッフがいると、シフトは店ごとに組むだけでは済まなくなります。

この記事では、飲食店向けに納品したシフト作成ツール(Excel VBA)で使った、店舗ごとのシートをつないで二重登録を防ぐ作り方を紹介します。手で入力したときと、自動で割り当てるときの、両方に対応する形です。

コードは、考え方が伝わるように短く書き直したものです。納品したコードそのものではありません。

 

ほかの店の出勤が見えないと、二重に入れてしまう

店舗ごとに別のシートでシフトを組むと、ほかの店の出勤は、そのシートからは見えません。同じ人を同じ日に、2つの店へ入れてしまうことが起きます。

シフトを組む人が店ごとに違うと、確認のやり取りだけでも手間がかかります。

同じ日に2店舗で出勤になる例。ほかの店のシートは別の担当が組んでいる

 

出勤を入れたら、ほかの店のシートへ店番号を書き込む

対策の1つ目は、シートどうしをつなぐことです。店舗ごとのシートは同じ形にして、人の行と日付の列の位置をそろえています。

ある店のシートでマスを変更すると、シートの変更イベント(Worksheet_Change)で、ほかの店のシートの同じ位置に書き込みます。出勤にしたときは「①」のような店番号、休みにしたときは「休」です。

A店で出勤にすると、B店の同じマスに店番号が入る

ポイントは、書き込む間だけイベントを止めていることです。止めないと、ほかの店のシートへの書き込みでまたイベントが動いて、処理が連鎖してしまいます。

もう1つのポイントは、シートの形をそろえていることです。位置が同じなので、「開始位置から何行何列目か」だけで、ほかの店の同じマスを指定できます。

 

店番号が入ったマスは「確定」として扱う

手で入力する場合はこれで防げますが、自動の割り当てにも同じことを教える必要があります。

そこで、自動割り当てを始める前に、ほかの店の出勤を確定シフトへ合体させています。店番号が入ったマスは、「その人はほかの店で勤務している」という確定済みのシフトとして扱います。

コードの中では、店番号に10を足した値を入れて、通常のシフトの種類と番号がぶつからないようにしています。

割り当ての処理は、確定しているマスには何も入れません。そのため、割り当ての本体には手を加えずに、「先に決めた店を避けて次の店を組む」動きになります。

A店の割り当て後、B店では店番号のマスを確定として扱い、残りのマスだけ割り当てる

候補を持って割り当てる本体の仕組みは、「シフト作成の「考える部分」を自動化する工夫4選」で解説しています。

 

全店の出勤は、色分けした1枚の表で確かめる

店ごとのシートだけを見ていると、全体の状況はつかみにくくなります。そこで、全店の出勤を1枚の表に出力し、店舗ごとに色分けするようにしました。

誰がどの日にどの店へ出ているかが、1枚でひと目で分かります。

全店の出勤を店舗ごとに色分けした1枚の表(イメージ図)

 

応用:拠点をまたいで同じものを使う業務

シートをつないで二重登録を防ぐ考え方は、拠点をまたいで同じものを割り当てる業務にも使えると考えています。

  • 複数拠点の車両:同じ車を2つの拠点で予約しないようにする

  • 会議室や設備:別のシートの予約を確定として扱う

  • 応援の人員:別の現場の予定を見ながら組む

応用のヒント。複数拠点の車両、会議室や設備、応援の人員

 

動画で見る

 

まとめ

  • 店舗ごとのシートは同じ形にしておくと、同じ位置を指定するだけでつなげられる

  • Worksheet_Changeでほかの店へ店番号を書き込む。書き込む間はイベントを止めて連鎖を防ぐ

  • 自動割り当てでは、店番号のマスを確定シフトとして扱う。割り当ての本体は変えなくて済む

  • 全店の状況は、店舗ごとに色分けした1枚の表で確かめる

別々に見えるシートでも、形をそろえて「ほかのシートの予定は確定」と扱うだけで、まとめて管理できる場合があります。私の経験上、複数拠点の業務をExcelで扱うときに役立つ考え方の一つです。

その作業、自動化できるかもしれません

毎月くり返している集計・転記・帳票づくりに何日もかかっていませんか。
Excelはそのままで、面倒な部分だけを自動化できます。ご相談は無料です。

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2026 softex-celware。Wix.com で作成されました。

bottom of page