• ベストアンサー

マクロで日ごとの出勤者を抽出する方法

エクセル2016でマクロを勉強中です。 介護施設の勤務表からシフト表を作成するために、当日の勤務予定の職員を抽出するマクロを組んでいますがうまくいきません。 画像の上側が勤務表で下側が一日のシフト表です。 シフト表のA1の作成日に入力すると、勤務表の1行目の日付から〇、●以外の職員名をシフト表のA列に全員自動で記載され、勤務時間帯を図のように塗りつぶすようなマクロは組めますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

まずは、 マクロで扱いやすいレイアウトに加工することが先と思います。 B2セル以下に勤務時間 (From、To)が埋まっていますが、 これが文字列と思います。 これでは、マクロが複雑になるだけです。 (事実上マクロでの処理はできません) つまり、From,Toはセルを分ける必要がありましょう。 かつ、文字列ではなく、日付シリアル値にします。 続いて、仕様を正確に定義する必要があります。 ・出社しないスタッフは、シフト表には表示しないで  行を上方向に詰めるのか、それとも、空白行にするのか  私だったら空白行で表示し、目障りなら行を非表示にします。 ・シフト表は、開始は8:00のようですが、  右端列は何時までにするのか  26:00ですか?、それとも、32:00までですか? ・30分刻みのようですが、  これが15分刻みとかに変わる可能性はないんですね ・昼休みを考慮していないようですが  それで、実用に耐えますか? この辺りを再考し、 >マクロを組んでいますがうまくいきません 作成したコードをポストし、 そのどこで躓いてるのかを説明してもらえれば アドバイスが可能と思います。 マクロ化には相応のエネルギー(手間)が必要です。 プロトタイプ的なアプローチもむろんアリですが、 コーディングを開始する前にしっかり仕様を詰めないと 使い物にならず、手間が無駄になります。

cpxmx729
質問者

お礼

回答ありがとうございます。 勤務時間の表記に関しましては、確かにおっしゃる通りです。 早急に改変させていただこうと思います。 ・出社しない職員に関しましては、上詰めにて表記させようと思っていました。 ・シフト表は8:00~18:00です。 ・刻み間隔の30分は今までのやり方を踏襲したものですので、変更する可能性はありますね。 ・昼休みは何らかの別の形で差し込むことを考えておりました。 やはり仕様の部分でもう少し詰めなければ無駄、もしくは難解になりすぎるということですね。 ご助言ありがとうございます。

関連するQ&A

専門家に質問してみよう