• ベストアンサー

マクロ構文作って下さい

こんばんは 大変恐縮ですが 下記のマクロを作っていただけませんか? 僕にはまったく作れませんでした… 作業工程に自動に名前を入力したいのです その際、ある人は出来ない行程がある それを踏まえて頻度が低い順に行程に自動に名前(数字)入力する A B C D E F の六個の工程 1 2 3 4 5 6 の六人 1 2はA Bしか出来ない 5 6はE Fしか出来ない この条件で 一撃で自動に判断して名前(数字)を入力したいです セル位置や シート数はお任せです。

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

  • ベストアンサー
  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.1

現状では提示条件が曖昧すぎて、まず誰も作成する気にならないかと思います。 シフト表? 工程表? 各工程は何人で作業する(全部一人でいいのか)? 2連続でシフト入っても問題ないのか? など、おそらくまだお気づきで無い希望仕様があるはずで、そこまでフォローもできないしょうし。 ともかく、ご使用のソフト名(Excel95?)とバージョンを添えて、更にどういうものか完成イメージの絵なりを添付される事をお勧めします。 なお本件、Excelマクロの内容のようですが、カテゴリーは [技術者向] コンピューター > プログラミング > Visual Basic なりが適当かと思われます。 ~~~ ・B5セル以下に、上から下に向かって工程記号が記入してある。 ・E5セル以下に、上から下に向かって作業者名が記入してある。 ・F5セル以下に、作業者が担当できる工程記号が文字列で記入してある。 この条件で、 ・マクロ実行のたび、B5セル以下の工程記号に対し、C5セル以下の工程作業者の欄に  順次作業者を割り当てて記入する ・既に作業者が記入されているセルに対しては、工程作業者を変更しない。 ・作業者が未定の工程に対して、その工程作業ができる作業者の内、  それまでの工程で最も出現率が低い作業者を割り当てるものとする。 というような感じでマクロを組みたいのでしょうかね。 このような仕様とすれば、必要に応じて工程の挿入や手動で作業者を入れ替える ということもできるでしょう。どうです、マクロの組み方もなんとなく見えてきませんか? ・作業者名を読み込む ・作業者毎の労働ポイントを設定する  (作業者名を変数にして、数字を入れればよい) ・工程別に作業可能な人をリスト化する。  (工程名の配列を作り、作業者可能な人を登録する) ・C5セル以下、工程作業者を読み込む。 ・工程作業車空欄の場合、B列の工程名を読み込み、該当工程名の配列をあたって  作業可能者をピックアップ。工程名の誤りなど作業可能者がゼロの場合、Msgboxで  その行数を返して終了する。 ・作業可能者同士で労働ポイントを比較し、最もポイントが少ない人を工程作業者と  してC列に記入する。なおポイントが同数の場合、リスト上位の人を優先する。 ・工程作業者に選択された作業者の労働ポイントを+1する。 ・次の行にうつり、工程名が空白になるまで上記を繰り返す。 マクロ内容を手順で分解するとこんな感じですかね。 もっとも、上記の例では出現率の低い作業者を優先するので、もし途中で作業者が 増えた場合、工程作業者の欄を一旦クリアするなどの処置をとる必要があるといった懸念点はあります。

windous95
質問者

お礼

ご指摘ありがとうございます 詳しく書いてまた 投稿しますので 見かけたらアドバイスお願いします。