• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:勤務実績表入力にオブジェクトを含む実績入力自動化)

勤務実績表入力の自動化方法とは?

このQ&Aのポイント
  • 勤務実績表の入力作業を効率化するための方法を探しています。
  • 実際に勤務した時間を示すオブジェクトを利用して、勤務実績表を自動的に作成する方法はありますか?
  • 勤務実績表に日付と時間の見出しを付け、3つの勤務パターンから選ぶことで、作業を簡略化したいです。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! アップされている画像が小さくて詳細が判らないので、やり方だけ・・・ >例えば、ひな型の3勤務パターンをそれぞれAパターン、Bパターン、Cパターンとして ひな形のパターンをAY1~CT3セルの範囲に作成しているという前提でのVBAでの一例です。 尚AX列に入る3パターンはリスト表示させるなどして他のデータは入らないものとします。 仮にAX列に A・B・C のいずれかが入るとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りAX列にデータを表示させてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim myRngA As Range, myRngB As Range, myRngC As Range If Intersect(Target, Range("AX:AX")) Is Nothing Or Target.Count > 1 Then Exit Sub Set myRngA = Range("AY1:CT1") '←Aパターンの範囲 Set myRngB = Range("AY2:CT2") '←Bパターンの範囲 Set myRngC = Range("AY3:CT3") '←Cパターンの範囲 Select Case Target Case "A" myRngA.Copy Cells(Target.Row, "B") Case "B" myRngB.Copy Cells(Target.Row, "B") Case Else myRngC.Copy Cells(Target.Row, "B") End Select End Sub 'この行まで ※ AX列のデータ変更があると思いますので、本来であれば 一旦オートシェイプを削除してコピー&ペーストする操作が必要になると思います。 今回はそこまで考慮していません。m(_ _)m

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

条件付き書式を使い、A,B,Cが記入された時にそれぞれ該当する列(時刻帯)のセルに「色を塗る」ような方策で簡単に表示できそうです。 矢印図形で表示するのがキマリなんで他のやり方は聞きたくないときはスルーしてください。 たとえばAが8時から17時(前まで)だとすると、 手順: R列からAI列まで列選択する(必ず行う) 条件付き書式▼から新しいルールで数式を使用して…を開始 =$AX1="A" と記入して、書式ボタンでタイプAの色塗りを設定する B,Cに該当する各列についても同様に設定する。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

質問者さんがそのシートでやりたいことを、手順書としてまとめて、VBAのプログラムとして記述されればいいだけですよ。 がんばってExcelVBAを勉強してください。

関連するQ&A