dポイントプレゼントキャンペーン実施中!

VBA初心者です。
以下のことがしたいのですが、
コードをご教示いただきたくお願いいたします。

BOOKが5つあります。

BOOK1:抽出用(Sheet2に日々の受注データを入れています)
      
BOOK2:転記100用
BOOK3:転記200用
BOOK4:転記300_400_500用

BOOK5:工事番号用

BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。
抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、
抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、
該当のBOOK2から4にその工事番号が転記がされているか?
(されていれば登録済みのメッセージ表示)
転記がされていなければ新規に登録、
新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、
このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。
さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、
BOOK5にも抽出用の受注内容を転記。
BOOK2から4に転記された工事番号をクリックすると
その工事番号のBOOK5にジャンプするようにしたいのです。

抽出用A2とA4に「1」と入力された場合(O列は共に200)
BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地
A2のデータ
D2 → A7
K2 → A8
C2 → A9
H2 → A10
I2 → A11
F2 → D7
L2 → D8
M2 → D9
J2 → D10
C2 → I5
Q2 → J5


A4のデータ
D4 → A12
K4 → A13
C4 → A14
H4 → A15
I4 → A16
F4 → D12
L4 → D13
M4 → D14
J4 → D15
C4 → I10
Q4 → J10

BOOK2から4は1つの工事番号を5行使用して表わしています。
ですので、1つの工事番号が7から11の行、
2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように
作成してあります。

またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。
A2のデータ
D2 → A3
K2 → A4
C2 → A5
H2 → A6
I2 → A7
F2 → F3
L2 → E4
M2 → E5
J2 → E6

大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、
当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。
なんとかお力を貸していただけないでしょうか?
ご教示よろしくお願いいたします。

A 回答 (1件)

いろいろと質問事項が多くて回答するのが難しいです。


>当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら>大苦戦しております。
ですか、ここは発想を変えましょう。
私だったら
BOOK1:抽出用(Sheet2に日々の受注データを入れています)
のブックに、
転記100用、転記200用、転記300_400_500用、工事番号用のシートを準備します。
たぶん、VBAのコードもシンプルになります。意外と関数やエクセルの抽出の機能でできたりするでしょう。
その準備ができたら、必要に応じて、別ブックにシートごと張り付ける操作をVBAで考えます。
経験則からですが、そのほうが後々、変更などあった場合に楽ですよ。

この回答への補足

hallo-2007さん、こんばんは。
回答ありがとうございます。

教えていただいたような構成のものを作成してみました。

まずはA列に「1」と入力された時に
O列の種類コードを見て、
該当するシートにそのデータが転記されているか否か?
転記されていないものならば、新規登録するか?
というメッセージを表示。

ここまでをやってみたいのですが…
お時間ございましたらご教示願えますでしょうか?

よろしくお願いいたします。

補足日時:2013/06/29 22:01
    • good
    • 0

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