Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
複数ブック・複数シートのセルを条件にブックを作成してシートを振り分けたい
投稿日時: 18/01/29 23:43:59
投稿者: kiki-ra

VBA初心者で勉強中です。
ご教授お願いします。
複数ブックの複数シートにおいて、各シートのセル(文字)を条件にして、条件毎のブックを作成し、シートを振り分けるマクロをつくりたいと思っています。
【元データ】
Aブック
sheet1 セルF21佐藤
sheet2 セルF21山田
sheet3 セルF21木村
sheet4 セルF21後藤
sheet5 セルF21渡辺
Bブック
sheet1 セルF21木村
sheet2 セルF21佐藤
sheet3 セルF21佐藤
sheet4 セルF21渡辺
sheet5 セルF21鈴木
 
【新規作成ブック】
佐藤ブック→Aブックsheet1,Bブックsheet2,Bブックsheet3
山田ブック→Aブックsheet2
木村ブック→Aブックsheet3,Bブックsheet1
↑全員分のブックを新規で作成し、セルF21の名前に一致したシートをコピーして、振り分けたいと思っています。
 
ブック名とシート名に決まりがなく、
条件となるセルF21の名前は「名字だけ」「フルネーム」とバラバラです。
セルの名字を条件にシートを各ブックに振り分けることは可能でしょうか?
可能でしたら、マクロを教えていただけると嬉しいです。

回答
投稿日時: 18/01/30 04:47:07
投稿者: もこな2

とりあえず、このサイトの規約で、以下のルールがあります。
■禁止事項
コード制作依頼
「●●●を実行するようなマクロを作りたいのですが」「●●●をする方法を教えてください」といった、コード制作依頼ともとれるような質問はおやめください。
 
(詳しくはこちら)
http://www.moug.net/faq/kiyaku.html
 
 
ですので、ご質問のような形ですとなかなか回答がつかないのでないかと思います。
 
また、質問によってはいろんなアプローチがあり、質問者さんがどのアプローチを検討されているのかで、回答(アドバイス)も変わってくることがあります。
 
よって、マクロの記録で出来たコードを整理した程度でも構わないのでまずはご自身でベースとなるコードを作成されるなり、処理フローなりを作ってからご質問されることをおすすめします。
 
 
 
と、お小言みたいなことだけ言ってもしょうがないので、ヒントというかアイデアを。
複数のブックと仰っているので例えば
For Each WB in Workbooks
Next
とすれば開いてる全ブックに対して何らかの操作はできますよね。
 
そして同じ発想で
For Each SH in WB.Worksheets
Next
とすれば、ブック内の全シートに対しての操作も可能ですよね。
 
シートのコピーはこの辺を参照
http://officetanaka.net/excel/vba/sheet/sheet05.htm
 
これを組み合わせれば、全ブックの全シートを対象に「F21」セルの値を参照してコピーするということはできそうですよね。
 
ただ、この方法だと、全ブックの操作をするので新しく作ったブック(コピー先のブック)までひろっちゃいそうですが・・・まぁその辺はベースとなるコードをブラッシュアップしながら、皆さんに添削してもらえばよいのではないでしょうか
 
とりあえず寝ますので、気になったところのコメントまで。

回答
投稿日時: 18/01/30 07:33:18
投稿者: simple

ご自分でできているところまで示すのがよいでしょう。
 
ちなみに、名字を分離する条件は?
・半角または全角のスペースで分離されているのか、いないのか。
  分離されてない場合は最初の2文字でよいか。
・名字だけで判別できるのか(鈴木一郎の他に、鈴木二郎はいない?)
・登場する名字の一覧などは作成されていないのか。
などを示す必要があるでしょう。

投稿日時: 18/01/30 08:40:38
投稿者: kiki-ra

もこな2 様
サイトの規約を教えていただきありがとうこざいます。
おっしゃられるように自分で作成してみて、上手くいかない時にまたご質問させていただきます。
質問内容をお読みいただき、参考となる情報をいただけて助かりました。