プロが教えるわが家の防犯対策術!

1つのExcelBookに科目コードと取引額が羅列されているシート(トラン)(700行ぐらい)と、
あらかじめ、科目コードとその属性を登録してあるシート(マスタ)(150行ぐらい)があります。

VBAマクロでトランの科目コードを順次読み進めながら、マスタを検索してヒットした属性をコピーしたいのですが、どうもコーディングがよくわかりません。
どんな、コーディングになるのかご教示ください

マクロで実行したいのは
1.トランの科目コードでマスタの科目コードを検索する。
2.マスタから属性をトランにコピーする。
  マスタに存在しない場合は、トランの属性にはブランクを設定する。
3.トランの次の行の科目コードを読んで1.に戻る
4.トランの最終行の処理が終わったら処理を終了する。

以上となります。どうか、よろしくお願いたします。

質問者からの補足コメント

  • あるRPAでVLOOKUP関数が使えないため、Findメソッドを使ってマクロ化したかったというのが真相です。

    ただ、2重ループで総なめにするという力業で乗り切ることになりましたので、一旦、クローズとさせていただきます

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/03/05 17:56

A 回答 (1件)

こんにちは



ご質問の内容は、関数(VLOOKUP)を設定しておけば、そのまま実現できると思われる内容ですが、わざわざ質問までして(=質問者様の独力ではできない)マクロ化することに意味はあるのでしょうか。

マクロで処理するにしても、ご質問文の手順のように検索して行う方法もありますが、WorksheetFunctionのVlookupを利用して関数の際と同様で、エクセルに処理させる方法も考えられます。
さらに手を抜くなら、
 ・セル範囲に関数式を設定して、
 ・(エクセルの計算値を)値に固定化する
という方法もあります。

>どんな、コーディングになるのかご教示ください
最後の方法でも良いのなら、ほとんどマクロの記録のままですみますし、対象範囲(=ご質問文からでは不明ですが)さえ決まれば、あとは2行ほどで済んでしまいます。
 範囲.Formula = "関数式"
 範囲.Value = 範囲.Value
のような要領でしょうか。
この回答への補足あり
    • good
    • 0
この回答へのお礼

素早いご回答、ありがとうございました。

お礼日時:2019/03/05 17:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!