- 締切済み
エクセルで作成したリスト
エクセルで作成したリスト(氏名・住所など10項目程度で200件ほどです)を各取引先ごとにブックを作成して(エクセルファイルでシートは6枚ある決まった書式です)ファイル名は取引先名にしたいのですがどのような方法がありますか? やはりマクロやVBAなどで作るのが一番でしょうか? マクロやVBAは初歩的な簡単なものは作ったことがありますがあまり詳しくありませんが出来るようなら挑戦してみたいのですがもしサンプルコードなど教えていただければお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>200件ほどです データ全体で、ある1シート(仮にSheet1)に200行ほどデータがあるということ? >氏名・住所など10項目程度 >各取引先ごとにブックを・・ 取引先名はどの列かにあるのでしょうね。明示すべきこと。 >取引先ごとにブックを作成 VBA・関数などなら、各取引先を各シートごとにするのがお勧め。 別ブックより、考えやすいと思う(私見) ーー 手操作でやるのが一番早い。フィルタオプションの利用など。 欠点はある時点で固定した状態になること。Sheet1にデータが増えても、即反映しないとダメなものなら、その際作業をもう一度やり直し。 この点はVBAでも同じ。 関数は自動で増減に反応してくれそうだが、式を作るのが、技巧的で複雑。もともとデータ抜き出しなど向きではない。 取引先別シートの全セルが式で埋まり、複雑な関数式により、処理が重たくなるかも知れない。 ーー VBA 色々なロジック(やり方の筋道)がありえる。 (1)フィルタオプションをマクロの記録をとって、取引先名を変えて繰り返し (2)取引先名でソートして、ソート後Sheet1の取引先名が同じ間は同じシートのセルに代入かコピー張り付け(私のお勧め) (3)検索して該当を同一シートに張り付け、を取引先数回繰り返し (4)その他 ーー 関数 1つのやり方。 取引先ごと番号+その取引先のその行までの出現数を作る。Sheet1の空き列、作業列に作る。 その番号を元に、各シート側でSheet1よりデータを採ってくる。(imogasi方式というのをOKWAVEで沢山回答しているが、そのアイデアを使える)