次の方法で共有

VBAでマッチング処理を行いたい

Anonymous
2013-08-18T11:36:59+00:00

VBAでマッチングを行いたいのですが、可能でしょうか。

やりたいことは”前日勤務表”と”当日勤務表”を比較して、追加入力された勤務時間はOKとし、調整されマイナス入力あるいは他の業務依頼書NOに読みかえられた勤務時間をNGとしてセルの色付けを行い明確化したいです。

※勤務表は毎月作成され、毎日退社時に勤務時間を入力します。但し、勤務時間調整のために、過去の勤務時間をマイナスしたり別の業務依頼書NOに読みかえたりすることが不定期で行われます。

■インプット

ファイル1:前日勤務表

ファイル2:当日勤務表

■ファイルレイアウト

(ファイル1、ファイル2 共通)

1)社員コード<数字> 2)社員名 3)業務依頼書NO<数字> 4)業務依頼書標題 5)業務CD<数字> 6)業務名 7)作業CD<数字> 8)工程 9)1日勤務時間<数字> 10)2日勤務時間<数字> ~ 39)31日勤務時間<数字> 40)備考 41)勤務時間合計<数字>

■処理

①ソート

ファイル1、ファイル2 をそれぞれ

1)社員コード + 3)業務依頼書NO + 7)作業CD の優先順で昇順にソート

②マッチング

 ②-1 当日勤務表ONLY

  前日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD > 当日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD

  ⇒OK(何もしない)

 ②-2 前日勤務表ONLY

  前日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD < 当日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD

  ⇒NG(当日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD のセルに色付けする)

 ②-3 マッチ

  前日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD = 当日勤務表: 1)社員コード + 3)業務依頼書NO + 7)作業CD

    if  前日勤務表:9)1日勤務時間 ≦ 当日勤務表:9)1日勤務時間

     ⇒OK(何もしない)

    else

     ⇒NG(当日勤務表:9)1日勤務時間 のセルに色付けする)

    if  前日勤務表:10)2日勤務時間 ≦ 当日勤務表:10)2日勤務時間

     ⇒OK(何もしない)

    else

     ⇒NG(当日勤務表:10)2日勤務時間 のセルに色付けする)

   《繰り返し》 ※39)31日勤務時間 まですべてチェック

 以上、このような処理を行いたいのですがVBAでマッチング処理はできるのでしょうか。ややこしくて申し訳ありませんがご教示いただけますと幸いです。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-08-21T09:42:28+00:00

    y sakuda さん、いつもアドバイスありがとうございます。

    さわわ さん、こんにちは。

    マイクロソフト コミュニティをご利用いただきありがとうございます。

    y sakuda さんがコメントされているように、作成されている VBA コードがあれば全文を書いてみることで、このスレッドを見られた方からアドバイスが得られるかもしれません。

    また、 VBA を使った専門的な質問については VBA フォーラムにも質問を投稿して情報を集めてみるのも良いと思います。

    Visual Basic for Application (VBA)

    もし質問を投稿される場合、 作成されている VBA コードがあれば全文を書いて投稿してみるとアドバイスも集まりやすくなると思います。

    よろしければ活用してみてくださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2013-08-18T12:28:18+00:00

    マッチングとおっしゃっているのは事務処理などで行われるシークェンシャルな二つのデータ(ファイル)を比較しながら処理することをイメージされているのだと思います。

    そういうことならVBAに限らずほとんどのコンピュータ言語で可能です。

    なにが分からないのでしょうか?

    もし、記述された仕様通りのものを丸ごと教えろというなら、ここは無料コード作成サイトではありませんので、お門違いです。

    ご自分でやって上手く行かないところ、分からないところをコードを添えて質問してください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません