• 締切済み

勤務表の○がついている人をグレーアウトするには

勤務管理を休みの日は○が入っている以下のファイルがあります。        8月1日  8月2日   8月3日 田中 ひろし   ○ 井藤 尚子          ○ 後藤 克彦                 ○ 別のファイルには1日から31日まで別でシートがあり、上記メンバの名字だけが記載されており、休んだ人のみグレーにしたいです。 なにか良い方法はありますでしょうか? よろしくお願いいたします。

みんなの回答

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

前提条件として、最初の「○」を付けているファイルを「Master.xlsx」(こちらの名前は使用していませんが)とし、31個のシートのある、お名前が羅列されているファイルを「Name.xlsx」とします。 また、「Master.xlsx」と「Name.xlsx」のお名前の順番は完全に一致しているものとし、「Master.xlsx」の方は、2行目から、「Name.xlsx」の方は1行目から始まっているものとします。 最後に、「Master.xlsx」の1行目は、日付の項目行とし、2行目以降にお名前が入っています。 ちなみに、お名前の羅列の途中に、空白があってはいけません(最終行が正確に取得できません)。 以上の条件下で、「Master.xlsx」を開いて、「Alt+F11」(「Alt」(“オルト”と読みます)を押しながら「F11」を押す)。 新しく現れた画面のメニューから「挿入」→「標準モジュール」。 右側に白い大きな画面が現れたと思いますので、そこに以下のマクロをコピー&ペーストし、「F5」で実行すると、結果が出ています。 なお、「Name.xlsx」や「Name.xlsx」の存在する場所などは、質問者の状況に合わせて書き直してください。 Option Explicit Sub Test() Dim w As Workbook Dim s As Worksheet Dim i, j As Integer Set w = Workbooks.Open("D:\Programming\Name.xlsx") For i = 2 To ThisWorkbook.Worksheets(1).Range("B1").End(xlToRight).Column Set s = w.Worksheets(i - 1) For j = 2 To ThisWorkbook.Worksheets(1).Range("A2").End(xlDown).Row If ThisWorkbook.Worksheets(1).Cells(j, i).Value = "○" Then s.Cells(j - 1, 1).Interior.ColorIndex = 48 End If Next j Set s = Nothing Next i w.Save w.Close Set w = Nothing End Sub

peace5577
質問者

お礼

解決できました。 丁寧な説明ありがとうございました。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは それぞれのファイル名と、関連性? 例えば、○がついているファイル名は、年月.xlsx になっているとか。 1日から31日までのシートが有るファイル名は、年月日.xlsx になっているとか。 シート名は数字だけか?、「日」まで入っているのかとか。 苗字だけの名前は 、○がついているファイルと同様に姓名に出来ないのか、とか。 同姓、同姓同名の事は考えなくて良いのか、とか。 それぞれのファイルは同時に開いておけるのか、とか。 各シートのデータのセルへの配置がどうなっているのか、とか。 不明な点や、問題が有り過ぎますね。

関連するQ&A

  • YouTubeで、赤いものと、グレーの丸が、おかしい場合の考え方。教えて下さい。

    YouTubeで、赤いものと、グレーの丸が、左から右に移動しますよね。 これが、グレーの丸は、再生の位置の意味で、赤は、パソコン内に溜まった量という意味だと思うのですが。 一時停止すると、赤は、決してグレーを追い抜きません。 再生も、通しでまともにできないとか、 最後まで終わると、二度と再生しないとか(更新すれば初めに戻りますが)。 というか、これは、新しいバージョンなのでしょうか?(追加日は2006年05月13日ですが) 通常の他のものと、何がどう違うのでしょうか? また、これ以外に、この感じの赤いものとグレーの丸の感じな画像作品は、YouTube内に存在しますか?(「別の例」という意味です) どこかを設定しなおせば、直るものでしょうか? あと、もう一つ。 上の質問とは全く違う話(質問)ですが、 YouTubeで通常のタイプの赤いものとグレーの丸の作品で、 4分位の画像で、ものの1~2分で赤がいっぱいになるものもあれば、 4分なのに、赤がいっぱいになるのに25分もかかるもの(場合)もあります。 これは、何がどう混雑しているのでしょうか? YouTube内でブレーキをかけているような気もしますが、そうでしょうか?

  • 管理表への転記

    五百台置ける駐車場があります。日々の領収金額をSheet2の日報に箇条書きにしていくと、駐車番号と契約月の座標をSheet1管理表で探し、領収日を入力するようにしたい。記帳済によって入力され、領収日を空白にすることで、訂正も可能にしたい。 Sheet1管理表(日付は、Sheet2の処理結果) 駐車番号  氏名  1月分  2月分  3月分 1A-01 山田高志 1A-02 大木邦芳 2006/3/14 1A-03  小川香代子 1A-04 鈴木誠一  2006/3/11 1A-05 田中克彦  2006/3/9 Sheet2日報 シリアル 契約番号 氏名 契約月 領収日  記帳  0001 1A-05 田中克彦 3月分 2006/3/9 記帳済 0002 1A-02 大木邦芳 1月分 2006/3/14 記帳済 0003 1A-04 鈴木誠一 3月分 2006/3/11 記帳済 0004       出来れば、契約月の欄に3月~5月分など何ヶ月分も一度に入力できれば更に便利です。 1A-05なども変換無しに打てれば便利です。 Sheet2に金額なども加え売り上げの計上にも使いたいです。他に使用範囲の拡充のアイデアもあれば是非お願いします。 

  • 勤務表で簡単なものを(エクセルで)

    A列の上から下に日付(たとえば 11月21日~12月20日) B列に名メンバーの名前を記載 パターン表は別に作るのだと思いますが Aさんは 毎週 月 木・  Bさんは 火・土 という週のパターンを組み込めば 月間のお休みが 瞬間にして 色付けされて 表示されるものはありませんか? 月間に どのくらい働いたという数値面は必要はないのですが・・

  • Excelとマクロを使った勤務表

    今エクセルで勤務表を作成しています。年と月を変更することで、項目欄に日付が入力されて、例えば31日ある月は31項目埋められ、30日ある月は30日まで項目が埋まり、土日はグレーに塗たいです。Sheet2にカレンダーを置いてそこから参照するような形で、毎月2009年2月1日などと入れるとその月の勤務表の日付と曜日が表示されるものを作りたいのですがどなたかご指南いただけませんでしょうか? 宜しくお願いいたします。

  • エクセルの勤務表(マクロ)についての質問です。

    エクセルの勤務表から、日付別に出勤者とその出勤者の勤務を抜き出すマクロを作りたいのですが、途中で分からなくなってしまい困っています。 初めまして。私はマクロを初めてまだ、2ヶ月の初心者でございます。 質問内容に、不手際がありましたら、ご容赦ください。 勤務表マスタには勤務表があり、それ以外にsheet1 からsheet30まで、30枚のシートを用意しておき、日付別にsheet1に4月1日の勤務者とその出勤者の勤務を(早番はB3から下に表示し、遅番はB8下に表示するようにします。)抜き出し、同じようにしてsheet2には、4月2日の勤務者とその出勤者の勤務を、同じように、それぞれB3とB8に抜き出し…というように、30日分抜きだしたいのです。休みの人は表示しません(画像写真を参照願います。見にくい写真で恐縮でございます。) <勤務表マスタ> 名前 4月1日 4月2日 4月3日 4月4日… 坂本 遅番 早番 遅番 休み… 井端 早番 休み 早番 遅番… 長野 遅番 早番 早番 早番… 阿部 遅番 遅番 遅番 早番… 村田 休み 早番 遅番 遅番… 高橋 早番 遅番 休み 遅番… <sheet1=4月1日> (B3、C3から下に) 井端 早番 高橋 早番 (B8、C8から下に) 坂本 遅番 長野 遅番 まずは、勤務表から4月1日だけをとりあえず抜き出そうと、マクロを作って、勤務表マスタから、sheet1である、4月1日には、転記できたのですが、同じように、sheet2(4月2日)、 sheet3(4月3日)…と勤務表マスタから、各シートに転記するには、どうすれば良いのか?分からなくなってしまいました。 力技で、このマクロの「Sheet1」の部分を「Sheet2」にするようにしてといった感じで、あと30個書けば、できるような気もしますが、膨大な行数になりますし、何か他の方法をと考えたのですが、まだまだ、初心者で、どうすれば良いのか全く思いつきません。ここまで、インターネットで調べたりして、何とか作ったもので、全く幼稚なマクロかと思いますが、なにとぞ、ご鞭撻のほど、よろしくお願い致します。 Public Sub test() Dim strSerch1 As String Dim strSerch2 As String Dim LastRow As Long Dim i As Long, j As Long, k As Long '検索する文字を以下の二つの変数に代入 strSerch1 = "早番" strSerch2 = "遅番" 'Sheet1に「早番」の人をリスト化するための変数を設定 '最初に入れるのが3行目なのでjに3を代入 j = 3 With Worksheets("勤務表マスタ") '.Cells(.Rows.Count, 1).End(xlUp).Rowで最後の行がどこなのか調べて 'LastRow変数に代入する。 LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「早番」の人がいたら、Sheet1の3行目から、リスト化する。 If .Cells(i, 2).Value = strSerch1 Then Worksheets("Sheet1").Cells(j, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(j, 3).Value = .Cells(i, 2).Value j = j + 1 End If Next i End With 'Sheet1に「遅番」の人をリスト化するための変数を設定 '最初に入れるのが8行目なのでkに8を代入 k = 8 With Worksheets("勤務表マスタ") LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「遅番」の人がいたら、Sheet1の8行目から、リスト化する。 If .Cells(i, 2).Value = strSerch2 Then Worksheets("Sheet1").Cells(k, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(k, 3).Value = .Cells(i, 2).Value k = k + 1 End If Next i End With End Sub

  • エクセル勤務表作成中なのですが・・・

    初めて質問します。よろしくお願いします。 エクセル2003にて勤務表を作成しているのですが、こんな事ができるものなのでしょうか?     A    B   C   1 H18年  8月  2  21   月   出勤  3  22   火   出勤  4  23   水   休み   ・   ・   ・ 32  20   日   休み シート1にこの様な表を作り、シート2の1つののセルに休みの日付を自動的に抽出したいのですがこの様なことは可能でしょうか? ちなみにA1,B1には数字のみの入力で表示形式で年月を表しています。A2には=DATE(A$1+1988,B1,21)という関数で日にちを表示、A3以降は=A2+1というようにして表示しています。曜日は=IF(A2="","",WEEKDAY(A2))という関数で表示しています。 私エクセル関数に関してはあまり詳しくありません。この表もフリーソフトで入手したものを使用しています。 よろしくお願い致します。

  • 【エクセル】分を集計して日に変換したいのですが・・・【ピボットテーブル】 

    申し訳ありません。教えてください。 ピボットテーブルで集計シートを作成しています。 通常は分で作業時間を管理しているのですが、 集計シートでピボットテーブルを使って、 日単位(端数がある場合は、時間と分)に置き換えたいのです。 どなたかご教示ください。 よろしくお願いします。 <例> 集計元シート   A   B 1 氏名 作業分数 2 佐藤 120 3 佐藤 100 4 田中 480 5 後藤 240 6 田中 150 7 後藤 240    ↓ ピボットテーブル集計表   A   B 1 氏名 作業日数等 2 佐藤 0日3:40 3 田中 1日2:30 4 後藤 1日 ※集計元シートからいきなりピボットテーブルの集計表のようにはできないと思っています。 ※現状は集計元シートのC列を時間に置き換え集計しています。  (例)C2=B2/1440とし、表示形式を[h]:mmとしています。

  • エクセルで不規則勤務職場の勤務表を作りたい

    どうやったらエクセルで作れるのか、 どなたか教えていただけないでしょうか? 勤務条件は下記のとおりです。 また、不足事項がありましたら、ご指摘いただきたいと思います。  4週8休(4週間の間に8日休日があります)で、  その期間に1~6の条件を満たすこと。 1.国民の祝日が土日に当たる月は、週休日を別に割り振ります。 2.職員は土、日、祝の出勤が割り振られた場合、前か後ろに休みがずれる。 3.職員は三人ずつ、グループを作り土、日、祝の勤務を行う。 4.土日勤務のグループとは別に、二人一組の遅番の勤務を割り振ります。 5.3と4の勤務は、平均に当たるようにする。 6.会社が休むのは、12月29日~1月3日の期間だけです。

  • エクセルの別ファイルから1シートだけ、まるごとコピーしたのにページ設定

    エクセルの別ファイルから1シートだけ、まるごとコピーしたのにページ設定が保持できません。どうしたらようでしょう?

  • EXCELでの月別 日別の勤務表同時作成について

    現在、EXCEL2007にて、シート1には月別のシフト表を年と月を変えると自動でその月の日にち、曜日も変わるように作成しております。縦軸には氏名、横軸には日にち、曜日を並べており、縦に各人の出勤、退社を記入させるように作成しております。このシート1をもとに、別シートで日にちを選ぶと、その日に入っている氏名と勤務時間をガントチャート形式(時間帯別)で、自動的に表示作成できるようにしたいのですが、関数がわからず、現在、苦戦しております。 どなたか、月別勤務表から、その月のある日にひ分だけを抽出し、その日に入っている者のシフト時間を表示できるようにするための方法を教えていただけないでしょうか? シート1のサンプル  ××××年××月          1日 2日 3日 4日・・・・          月  火  水  木・・・・・    A君 出勤  9:00     退社 12:00 B君 出勤  10:00     退社  19:00 上記のような表で、たとえば、1日(月)にシフトに入っている者だけを抽出し、別シートで 日別のガントチャートを作成したいです

専門家に質問してみよう