• ベストアンサー

EXCELでシフト表を作ってるのですが・・・

人数が多く、人数分シフト表を配りたいのです。 ただ、ほかの人の名前がわからないように各個人のシフト表を作りたいのです。なので、名前が載ったシフト一覧を全員に配るということはできません。 私が作ったシフト表から、たとえば「澤田」とあるところを抽出して、別のシートの同じフォーマットの表に○を付したいのです。 そうなると人数分、シートが必要になりそうですが、1枚の同じフォーマットの表があるシートを使い回してもよいと思います。印刷し終わったら、別の名前の人を入力すると、時間部分に○がついて、それを印刷したら、別の人の名前を入力し、前の人の履歴を消す・・・ やりたいことは具体的にわかりつつあるのですが、 なにかよい方法がありましたら教えてください。 VBAを使うのは大丈夫です。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

具体例を、補足要求したい。 こういう業務の問題は過去の経験から2つ3つある。 (1)エクセルの表形式のシートを「単票形式」(1人1枚B5とかA4ぐらいに)でに印刷したい。 元データの方はは表形式ですから縦方法に多人数のデータが載っているわけです。 (2)(1)でなく、(1)では印刷した紙の枚数(人数分になるから)が多くなり、もったいないので、短冊形の帳票を配りたい。たとえはさみで、各人分を切り分ける手数がかかろうとも。 むしろ短冊形式の帳票でも、もらった人は文句を言わない・言わせない。 (3)(1)(2)とは観点が違うが、自動化して印刷したい。 >印刷し終わったら、別の名前の人を入力すると、とあるから、質問者は印刷自動化には拘っていないのかもしれない。 ●このうち質問の重点はどれですか。 ●今作っているエクセルの一覧表の形式(1人分の行と列のデータ中身例) を書かないと、具体的に答えられませんよ。 質問者の風からして、具体的に答えてもらわないと、進まないのではないですか。 VBAなら、スキルがあれば、ほぼ自由になる。 関数でも、セミ自動化ぐらいはできそうな見当です。

その他の回答 (6)

  • subri
  • ベストアンサー率28% (16/56)
回答No.6

ものっすごく簡単な答えで申し訳ないのですが、 シフト表が、列ラベルが日付で行ラベルが名前だった場合、 全員の分○がついた表を作成し、 印刷に必要ない人を行、または列を「表示しない」にしてみてはいかがでしょうか。 シフト表自体そのような単純なものではなければ、 各名前に通し番号をふって、 印刷用の表に数字を入れることによってHLOOKUP、またはVLOOKUPで行または列を抽出してはどうでしょうか。 この、「次々に数字を入れて印刷してゆく」作業だけをVBAでやれば簡単だと思います。

  • higupapa
  • ベストアンサー率39% (48/121)
回答No.5

VBAを満足に使えませんが、似たようなこと(かな?)をやっています。 私の場合、指定された様式があり、それに200人分ほどを入力して提出するといったものですが。 定められた様式(シート1)に入れるAさんのデータは一行の予め決めた列(シート2の)に入力しておきます。 BさんやCさんも同様に。 各行に[フォーム]の[グループボックス]と[オプションボタン]を貼り付け、最下行にオプションボタンで選択された行のデータを抽出するための行を作成。 あとはシート1の該当する欄にシート2の各項目をリンク貼り付けしておけば。 VBAなしの私でもこんな感じでやってます。

  • poohron
  • ベストアンサー率59% (574/971)
回答No.4

こんなのいかがでしょう? 1. シフト表を普通に作成し、時間部分にその時間のシフトの人の名前を入れる 2. シフト表の名前の入っている部分はすべて文字色を白にする 3. 同じく名前の入った部分に条件付き書式を設定する   ※条件付き書式は「セルの値が」「次の値に等しい」「=$A$1」、書式設定色=黒 4. A1セルに「澤田」と入力すると、白文字だった「澤田」がすべて黒文字になる   (他の名前は地色と同じ白なので印刷されない) この方法だと時間部分に○ではなく「澤田」という名前になりますが。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

VBAなら、オートフィルタを使って一人ずつ抽出しても構いませんが、人数や名前が変わると面倒ですよね。 なので、別の印刷シートに行単位でコピーして自動的に印刷していけばよいのでは? それをデータがなくなるまで繰り返すだけ。

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.2

もうひとつ  VBAが大丈夫でしたら、「フィルタ」よりも自由に条件を設定できるようになると思います。

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.1

 印刷したものだけを渡すのでしたら、メニューの「表示」>「改ページプレビュー」というところをクリックすると、ページの区切り位置を自由に設定することができるようになります。このようにすれば、あなただけが全体を見渡すことができるようになりますから、まず問題がないのではないかと思います。  また、作り方をうまくすれば、「フィルタ」という機能を使って任意の条件で(たとえば、「誰と誰を一緒に」など)自由に設定することができると思います。

関連するQ&A

専門家に質問してみよう