|
▼kanabun さん:
こんばんは。
回答が遅くなり申し訳ありません。
>>>> Set Book1 = ActiveWorkbook '送られてきたデータブック
>
>ここで ActiveWorkbook というのは いまアクティブなBook のことです。
>それを Book1 というコード上の変数にセットしています。
>
>
>>>> Set Book3 = ThisWorkbook 'このマクロBook(Group名一覧を含む)
>
>ここで、ThisWorkbook というのは マクロが書いてあるこのBook のことです。
>同時に、 ThisWorkbook は 「List」と「Temp」というシートをもっています。
>
>
>>>> If Book1 Is Book3 Then
>>>> MsgBox "送られてきたBookを前面にして実行", vbCritical
>>>> Exit Sub
>>>> End If
>の部分は、 Book1 (= ActiveWorkbook、最前面にあるBook) が Book3
>(=マクロブック) だったら、マクロブックが最前面になっている、という
>ことなので、送られてきたBookをアクティブにして、このマクロを実行して
>下さい。
>ということを言っているのですが。。。
ええっと…もう一度コードを初めから貼りつけて実行したところ
正しく出来ました…
何故出来なかったのかは、分かりません。
申し訳ありません。
>最終的な目的ですが、
>
>送られてきた Book1 から 必要なデータを抽出して Book2 上で印刷したい
>
>ということですよね。
そうです。
>Book1(送られてきたBook) から 印刷用Book2 に AdvancedFilter で印刷に
>必要なデータだけ抽出転記できればいいのですが、印刷用Book2 のシートは
>罫線とかフォーマットがセットしてあるので、
>
>Book3 の「Temp」というシート上に Book1 から (AdvancedFilterを使って)
>必要な情報だけ抽出コピーして、
>
>「Temp」シートの表に Book3 の「List」シートから、Book1 にはないグルー
>プ番号とかを Book1にある項目に紐づけてTenpの表を補足し、並び替え、
>加工された「Temp」シートの表を ●●別にAutoFilter かけて、Book2にコピー
>し、●● の種類分だけ 印刷を繰り返す。
>(なぜ Autofilterかというと Book2 には 罫線とか書式設定してあるので、
>Book3のTempの表に Autofilter かけて 抽出範囲を 値のみコピーするため)
>
>と、大まかに言って、こういう処理内容でしたよね?
はい、間違いありません。
>再度、処理内容を大雑把にまとめると、
>1. Book1 から Book3のTempシートに AdvancedFilterで 必要な地区だけ
> 必要な項目だけ 転記する
>
>2. Book3のTempシート に Book3のListより グループ番号?とか、並び替えに
> 必要な情報を補足してやり、
>
>3.Boo3のTempシートを 順番に あるグループ?だけ Autofilterで値Copyして
> 印刷に回す(Book2で)
>
>と、上記 3 Step を分けて考えてもいいと思います。
>
>まず、Book1(送られてきたデータシート)から AdvancedFilter で Book3の
>Temp シートに 抽出する(1)の部分だけでも、コードで実行できるようにして
>みませんか?
>
本日実行しました。
結果としましては
>1. Book1 から Book3のTempシートに AdvancedFilterで 必要な地区だけ
> 必要な項目だけ 転記する
>2. Book3のTempシート に Book3のListより グループ番号?とか、並び替えに
> 必要な情報を補足してやり、
が正しく出来ました。
Book3「Temp」に
A列:グループ番号・県名・地区・従業員番号・従業員名・空白・申請金額・実金額
B列以降はデータ
がグループ1〜12まで番号順に転記されていました。
よろしくお願い致します。
|
|