アプリ版:「スタンプのみでお礼する」機能のリリースについて

月単位の勤務実績表を作成しています。
一列目に日付、一行目に時間の見出しをつけていますので、

【B列が0時~0時30分、AW列が23時30分~0時(一列=30分)
2行目が一日32行目が31日】

という表があります。

勤務パターンが3種類ありますので
同じシートの別欄に実際に勤務した時間をオブジェクトの矢印にて示した
3パターンのひな型を作り、実績に応じて3つのうちのひとつをコピーして
勤務実績表にペーストする方法で作成しているのですが、この作業を
自動化する方法はあるでしょうか?

例えば、ひな型の3勤務パターンをそれぞれAパターン、Bパターン、Cパターンとして
勤務実績表のそれぞれの日の末尾(AX列)にAと入力すれば、勤務実績表の
該当日に矢印オブジェクトを含む内容が自動で反映されるようなマクロ、関数など
ありましたら、ご教授ください。よろしくおねがいします。

「勤務実績表入力にオブジェクトを含む実績入」の質問画像

A 回答 (3件)

こんにちは!


アップされている画像が小さくて詳細が判らないので、やり方だけ・・・

>例えば、ひな型の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
    • good
    • 0

条件付き書式を使い、A,B,Cが記入された時にそれぞれ該当する列(時刻帯)のセルに「色を塗る」ような方策で簡単に表示できそうです。


矢印図形で表示するのがキマリなんで他のやり方は聞きたくないときはスルーしてください。


たとえばAが8時から17時(前まで)だとすると、

手順:
R列からAI列まで列選択する(必ず行う)
条件付き書式▼から新しいルールで数式を使用して…を開始
=$AX1="A"
と記入して、書式ボタンでタイプAの色塗りを設定する

B,Cに該当する各列についても同様に設定する。
    • good
    • 0

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


がんばってExcelVBAを勉強してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!