• 締切済み

エクセルで工程管理(初心者です)

エクセルで工程管理(初心者です) エクセルで作業の工程管理ができるものを作りたいのです。 個人的に把握できればよいので複雑なものにするつもりはありません(できません) が一日に処理する伝票件数が多く工程が短期間にいくつもあるので入力の手間をへらしたいです。 教えていただきたいのは (1)A1のセル(伝票番号)を入力するとB1のセル(受付け日)に当日の日付が入るようにする。 (2)C1のセル(チェック1)から横にいくつか工程があり、セル自体を透明なボタンか何かにしておいて  セルをクリックしたらセルごとに当日の日付が入るようにする。 (3)上記の処理をセルが空白の時(処理前)はセルの背景に色をつけ、処理が済んで日付が入力され  たら塗りつぶしなしの白い背景になる。 というようにする方法はないでしょうか。 (3)のみ条件付き書式でルールを設定するのはできましたが他との関連付けができません。 参考サイトなどがあればそれも教えていただきたいです。 よろしくお願いいたします。

みんなの回答

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

ではあくまで「将来的に」,マクロも使えるようになったときに「こんなこともできます」という簡単なサンプルの作り方についてご紹介しておきます。現時点で内容について追求していただく必要はありません。サンプル提示なので,修正依頼はご容赦方。 ご利用のエクセルのバージョンについてご説明がありませんでしたので,2003でご紹介します。 手順: ツールメニューのマクロのセキュリティを中にしてエクセルを再起動する ブックを開く シートを開く シート名タブを右クリックして「コードの表示」を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range)  dim h as range  on error resume next  application.enableevents = false  for each h in application.intersect(target, range("A2:A65536"))   if h = "" then    h.entirerow.clearcontents   else    h.offset(0, 1) = date   end if  next  application.enableevents = true end sub private sub worksheet_beforedoubleclick(byval Target as excel.range, cancel as boolean)  if application.intersect(target, range("C2:IV65536")) is nothing then exit sub  target = date  cancel = true end sub ファイルメニューから終了してエクセルに戻る。 ブックを保存する。 ブックを再度開いた際にマクロの有効のダイアログが現れたら,有効にして開く。 使い方。 A列に伝票番号を記入するとB列に今日の日付の値が記入される。 A列の伝票番号を消去すると,行のデータを抹消する。 C列以降の任意のセルを「Wクリック」すると,今日の日付の値が記入される。 いずれも生データなので,不要になったら消したり書き換えても構わない。 表示形式や書式等は事前に設定しておくこと。 同じフォーマットの別のシートで同じ事をしたくなったら,シートを複製しデータを消して使い回した方が簡単だが,同じように「コードの表示」とマクロをコピー貼り付けてもできます。 以上です。

pompom4162
質問者

お礼

サンプルを作ってくださってありがとうございます! まさにやりたかったイメージ通りです。 本来なら自分で考えなければいけないところですが ここまでたどり着くのは容易ではなさそうなので Keithin様のサンプルを使用させていただいてよろしいでしょうか。 バージョンは2007ですが動作に問題はなさそうです。 日ごと、作業内容ごとに数量や処理件数を別シートで 集計してみましたがそちらにもちゃんと反映されました。 エクセルは今まで勉強したことがなかったのですがこれを機に マクロを学んでみようと思います。 プログラムやアルゴリズムなどを覚えるのはできる方なので なんとかがんばってみようと思います。 ありがとうございました。

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

こんばんは! 直接の解決方法とはいかないと思いますが・・・ (2)に関してはVBAなどを利用しないと無理だと思いますので 一つの案です。 当方使用のExcel2003の場合ですが、 ↓の画像で説明させていただきます。 (1)に関して B3セルは =IF(A3="","",TODAY()) としておきます。これでA2セルに何か入力すれば今日の日付が表示されます。 (2)に関して C3セルに =IF(C2="","",TODAY()) という数式を入れ、列方向にオートフィルでコピーします。 また、C3~F3まであらかじめセルに色をつけておきます。 そして、C3~F3までを範囲指定し、条件付書式で 「数式が」を選択し、数式欄に =C2<>"" として、書式 → パターンから「色なし」を選択します。 これでC2~F2のいずれかにリストから空白以外を選択すると、C3~F3セルのセルの色が表示されなくなると思います。 C2~F2セルを範囲指定し、メニュー → データ → 入力規則 → リストを選択し 「元の値」でH1~H3セルを範囲指定します。 これでC2~F2セルにドロップダウンリスト表示できますので、 質問にある、クリックの代わりにC2~F2セルでドロップダウンリストのどれかを選ぶようにします。 これで何とか希望に近い動きにならないでしょうか? 以上、無理矢理って感じの方法ですが 的外れなら読み流してくださいね。m(__)m

pompom4162
質問者

お礼

回答ありがとうございます。 初心者の私にもわかるような案を考えてくださって感謝します。 画像までつけてくださって大変わかりやすかったです。 No.3の方が作ってくださったサンプルがそのままイメージどおりだったので 使用させていただこうかと思いますが tom04様が教えてくださった方法はとてもわかりやすく理解できましたので 応用してさらに使いやすい生産管理の表を作成することができそうです。 ドロップダウンリストの使い方や条件の設定の仕方などとても 勉強になりました。 ほんとうにありがとうございました。

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

1も2も,その通りのことをやりたければ「マクロ」を使い,マクロでセルに値を「入れさせる」事になります。 ごく限られた場合を除き,それ以外「何も入っていない空のセルに,あなたの記入する以外で何か(日付)が入る」方法はありません。 また既に試したと思いますが,「TODAY関数」を使ってもご相談でやりたい事はできません。 (参考サイト:この画面にある過去ログの検索で「TODAY 反復計算」というキーワードで検索すると,幾つか過去に回答したのがヒットします) 総合的に >複雑なものにするつもりはありません(できません) という予防線でしたら,(ボタンを押したりする代わりに)それぞれのセルにCtrl+;のショートカットキーで今日の日付を記入させてご利用ください。

pompom4162
質問者

お礼

早速の解答ありがとうございます。 いろいろ検索しても見つからないと思っていたのは 方法がないからなのですね。 毎日、日に100件ほど受付けてその後の工程は上から順番ではなく 個々にばらばらに進んでいくのでひとつひとつカーソルを合わせながら ショートカットキーを押して行く操作は手間だな と思ってしまいました。 でもないのではしょうがないですね。 初心者の稚拙な文章に丁寧な回答ありがとうございました。

関連するQ&A

専門家に質問してみよう