Excelでの工程表作成方法とマクロ・関数の活用

このQ&Aのポイント
  • Excelでの工程表の作り方を教えてください。Excelは簡単な関数しか使えない者です。
  • 検索しても思うような工程表の例が見つからず、関数・マクロに詳しい方にご教授いただきたいです。利用環境はExcel2003です。
  • B列のセルを「処理済」にした段階で、同じ行のC列に担当地区をコピーし、同時にD列に「処理済」に変更した年月日時間を入力したいです。
回答を見る
  • ベストアンサー

EXCELでの工程表の作り方を教えてください

EXCELは簡単な関数しか使えない者です。 この度下記のような工程表を作成することになり、 検索しましたがなかなか思うような例がありません。 関数・マクロに詳しい方、どなたかご教授願えませんでしょうか。 (利用環境はExcel2003です) (1)A1のセルに「入力規則→リスト」で担当地区を選択するようになっている (2)A4~A200のセルに、細分化した作業工程の明細が段階毎に入力されています。 (3)B4~B200のセルは「入力規則→リスト」で”未処理”と”処理済”を選択するようにしています。 今回の要望はB列のセルを”処理済”にした段階で、 同じ行のC列に、A1で選択している担当地区をコピーし、 同時にD列に”処理済”に変更した年月日時間を入力したいのです。 色々調べてIF関数で挑戦してはみたものの、 A1セルを変更した段階で今までの作業工程も 全て更新されてしまいます。 マクロ・関数で実現可能であればご教授いただきたいです。 宜しくお願いいたします。

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

  • ベストアンサー
回答No.1

VBA(マクロ)にて記述しましたのでコピーして使ってみてください。 当該のワークシートのコード記述部分に下記のコードを貼り付けて実際にセルB4:B200を変更してみてください。 また、必要かどうか分かりませんが一応すでに処理済と入力済み(誤入力などで)の場合に未処理を入力したり、入力文字を削除した場合に担当地区と日時を自動的に消すように処理しています。 この処理が不要であればIf文のElse以下3行を消してください。 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Row >= 4 And .Row <= 200 And .Column = 2 Then If .Value = "処理済" Then Cells(.Row, .Column + 1) = Cells(1, 1) Cells(.Row, .Column + 2) = Date Else Cells(.Row, .Column + 1) = "" Cells(.Row, .Column + 2) = "" End If End If End With End Sub

aa58hk49
質問者

お礼

完璧です! 要望どおりの動きで感動すら覚えました。 お忙しいところありがとうございました。

関連するQ&A

  • Excel 2003 プルダウンでセル色変え

    Excel2003で、8種類の条件により列の色変え処理をしたいのです。 A列は、入力規則のドロップダウン リストにより入力します。 A列に入力されたことにより、B列からF列まで別シートからVLOOKUP関数によりデータが入ります。 B列は、1~8の数値データです。 B列の1~8の数値データにより、A列~F列まてのセルを色変えしたいと考えてます。 マクロとしては、どのように記述したら良いでしょか? ご教授ください。

  • Excelの使い方

    Excelの使い方についての質問です。 セルを統合してリストを作成した後に 該当するセルに隣接するセルは全て表示するようにしたいのですが どうすればよろしいでしょうか。 わかりにくいかもしれませんが、以下のようなステップで作業を した結果、上手く表示できませんでしたので、ご人力をお貸し下さい。 ●工程01 A列の1~5行目までを東京と入力 A列の6~10行目までを大阪と入力 A列の11~15行目までを名古屋と入力 B列の1~5行目までを以下のようにと入力 B-1:とうきょう01 B-2:とうきょう02 B-3:とうきょう03 B-4:とうきょう04 B-5:とうきょう05 B列の6~10行目までを以下のように入力 B-6:おおさか01 B-7:おおさか02 B-8:おおさか03 B-9:おおさか04 B-10:おおさか05 B列の11~15行目までを以下のように入力 B-11:なごや01 B-12:なごや02 B-13:なごや03 B-14:なごや04 B-15:なごや05 ●工程02 A列の以下の各行間は「東京」「大阪」「名古屋」で統一されているので以下の処理を行った。 A列の1~5行目までをセルを統一 A列の6~10行目までをセルを統一 A列の11~15行目までをセルを統一 以上の処理を行うことでA列の1行目、6行目、11行目のみに 「東京」「大阪」「名古屋」と表示されます。 ●工程03 A列、B列ともに一番上の列にリストを作成してプルダウンで 「東京」「大阪」「名古屋」を選択した場合にB列に該当するエリアの リストだけ表示させたい。 工程03のプルダウンで「東京」を選択した場合、 一番上の「とうきょう1」のみ表示されます。 「大阪」の場合は「おおさか1」のみ。 要望としては「とうきょう1~5」、「おおさか1~5」のすべてが 表示されるようにしたいのです。 セルを統合しても、統合されたセルに隣接する全てのセルが表示されるように 設定するにはどうすればよろしいでしょうか。 セルの統合は外せませんのでよろしくお願い致します。

  • 入力規則に関するエクセル表の質問です

    エクセルの表においてB列の各セルが入力規則で4項目をプルダウンで選択表示できるようになっています。それを例えばA,B,C,Dとします。その各項目には小項目として10個づつあります。 この小項目を隣のC列へ入力規則のプルダウンにより選択表示する場合、40個のなかから選ぶこととなり検索に手間がかかります。そこで、例えばB5セルでAと選択した場合、C5セルではAに該当する10項目のみをプルダウン表示することができないかと考え、入力規則の「元の値」の窓にVLOOKUP関数を入れて試したのですが反応がありませんでした。よい方法がありましたらご教授下さい。

  • エクセルで工程表・作業表を作っています 塗りつぶしの自動化についてお教えください

    エクセルで工程表・作業表をつくることになりました。 A1セルに項目名「年月日」A2セルに項目名「曜日」 以下A3 A4・・・と作業氏名が入っています B1から右方向に2005/01/01の形式で連続して 年月日が入っています B2はB1を参照してWeekday関数を入れて 曜日を表示しています。 ここからなのですがA3から下方向に作業者名が入力されていますが 曜日に関係なく ばらばらに「休」と文字を入れて この作業者がその日は休みであることをあらわしています。 ある人のセルに数字を2種類入力して 作業日数分塗りつぶして その作業の種類を色で塗り分けたいのですが 2005/11/24 ある作業者の欄に数字を3(三日間という意味) を入れると 24日25日26日が自動的に塗りつぶすようなことは 可能でしょうか? そして たとえば25日の欄に「休」を入っている場合には 24日は塗りつぶして 25日は「休」のままで塗りつぶさなくて 26日と27日をまた塗りつぶすという判別の方法があればと 思っています。 関数で可能なのか もしくはセルをクリックなどして ユーザーフォームを立ち上げて入力を促すマクロなどでないと 難しいのか いかがでしょう? 文章がわかりにくかったら申し訳ありませんが 補足の解説をさせていただきますので よろしくお願いいたします

  • 一つの列に2つの入力規則を使いたい。

    B列にはプルダウンで選択するために入力規則で、リストで名前定義を使っているのですが、 また 「そのB列に隣接するA列のセルに何か入力されてないと、 B列に入力できない」 「=入力規則のユーザー設定、COUNTA(A1)=1」 とういう2つのことをしたいです。 でも、入力規則は1つしか出来ないですよね? こうゆう場合はどうすればいいのでしょうか? マクロでしょうか? よろしくお願い致します。

  • Excel 作業工程表を作りたいのですが、ネスト制限で作れません。

    Excelで下記のような作業工程管理表を作成しようと思っています。 1つの作業を1行で管理するものとし、 A列には作業の名前を入力し、 B列には作業のステータスを表示、 それより右の列はC列を「工程1」として右方向の 各列に「工程30」まで各々割り振ります。 表の使用方法としては「工程1」が終わればその日の 日付を入力し、工程が進んでいくごとに各列に日付 を入力していきます。 質問の内容は、 B列の作業のステータスを、各工程の進み具合によって 自動的に表示する方法を知りたいのです。 (ステータスの種類は工程の数と同じく30近くあります) 最初はIF関数を使い 「=IF(C1="","ステータス1",IF(D1="","ステータス2",IF(E1="","ステータス3",IF(F1="","ステータス4"……..)」という風に、各セルに数値が入っているか いないかを判断してステータスを表示 していたのですが、ネストの制限があるため 30の工程をカバーしきれませんでした。 どうか、よいヒントをいただければうれしいです。 質問がわかりづらかったら申し訳ないです。 以上よろしくお願いいたします。

  • Excelの入力規則に2列のリスト

    添付画像のようなA列に都道府県コード、B列に都道府県名が入力されていて、D2セルに入力規則でプルダウンリストを使用したいです。 プルダウンリストにはAとB列を結合(添付はスペース区切りにしていますがなんでもいいです)させたものを表示し、選択後はB列の名称のみを反映させたいのですが、このような制御は可能でしょうか? できればマクロやVBAは使用しない方が望ましいです。 よろしくお願いします。

  • セルに自動で文字を入力するには(オフィス2000)

    セルへの文字入力について質問があります。 セルに、入力規則のリストで入力を行っています。 リストが参照しているセルは、IF関数を使用して、○か空欄の表示判定を行っています。(セルは隠している) 入力項目が大量にあるため、ドロップダウンリストでは効率が あまりよろしくありません。   A   B  C 1 アイス    ○ 2 かき 3 なし     ○ ↓ 100         B列はあくまでチェックを行いたいので、手動で選択しなければ なりません。(○がある場合は空欄のときは入力不可を示しています。) マクロでの、ダブルクリックで文字が入力できる項目などもみたのですが、マクロのイメージに合うような物が見つけられませんでした。 (マクロも記録をつなげるぐらいなのですが・・・) このような処理をしている場合は、やはりドロップダウンリストを 使用するしかないのでしょうか? よろしくお願いいたします。

  • 工程能力指数のエクセルでの求め方を教えてください。

    工程能力指数のエクセルでの求め方を教えてください。 A2セル以下An(nは3以上の変数)まで入力されたデータに関して 工程能力指数をA1セルに導入する関数(あるいはマクロ)を教えていただきたいです。 STDEVP関数、平均、3σを使用し (1)工程能力指数1=(規格上限-規格下限)/(6×標準偏差(σ))   →規格上限、下限が設定されているパターン (2)工程能力指数2=(規格上限-データ平均値)/(3σ)     →規格下限なしのパターン (3)工程能力指数3=(データ平均値-規格下限)/(3σ)     →規格上限なしのパターン この3パターンの関数(あるいはマクロ)を教えてください。 データ数をみて、関数を組み込み、計算はできるのですが、 データの数が変数の場合の処理がわかりません。 詳しく教えていただけると非常に助かります。 よろしくお願いします。

  • エクセルで工程表

    エクセルで工程表を作りたいです。 C1に第1工程の開始時間1220(12:20という意味) C2に第1工程の終了時間1240(12:40) C3に第2工程の開始時間1300(13:00) C4に第2工程の終了時間1325(13:25)        : という感じで約10工程まであります。 シート2は各セルを細かくしてあって、A5を12:00とし横軸に時間をとっています(5分刻み) 第1工程の12:20から12:40まで、つまりE5からI5までを黒くしたいです。 同じように第2工程13:00から13:25までのセルを黒く・・・ 関数では難しいと思うので、VBAでもかまいません。 何かいい方法がありましたら、教えてください。 よろしくお願いいたします。

専門家に質問してみよう