• ベストアンサー

エクセルである項目をキーに別ファイルを作成したい

エクセルである項目をキーに別ファイル(別シートでも可)を作成したいのですが、簡単にできる方法はありますか? 例えば 長野県 ああああ 栃木県 いいいい 長野県 しししし 宮城県 うううう というデータがある場合、長野県、栃木県、宮城県というファイルにそれぞれ長野のデータ、栃木のデータ、宮城のデータで分けたいのです。今、私が知っている方法はオートフィルタで長野とかの項目を選択し、コピーアンドペースト をそれぞれで繰り返すことだけなので、もれもあるし大変だしということでもうちょっと効率的な方法があったら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> もうちょっと効率的な方法があったら教えてください。 VBA(マクロ)を導入してはいかがでしょう? 以下、かなり雑な方法ですが。 1) 処理対象のファイル名をBook1.xls、シート名をSheet1とします。 2) A、B列に以下を入力。 長野県 ああああ 栃木県 いいいい 長野県 しししし 宮城県 うううう 3) [Alt]+[F11]でVBEditorを起動。 4) 「プロジェクト - VBAProject」のウインドウ(Ctrl+R)の「VBAProject(Book1)」を右クリック、[挿入]-[標準モジュール] 5) 「Book1.xls - Module(コード)」のウインドウに以下を貼り付け。 ↓↓↓↓↓ここから↓↓↓↓↓ Sub output_text() Dim rngCurrent As Range Set rngCurrent = Sheets("Sheet1").Range("A1") Do While rngCurrent <> "" Open ActiveWorkbook.Path & "\" & rngCurrent.Text & ".txt" For Append As #1 Print #1, rngCurrent.Offset(0, 1).Text Close #1 Set rngCurrent = rngCurrent.Offset(1, 0) Loop End Sub ↑↑↑↑↑ここまで↑↑↑↑↑ 6) Excelに戻り、[ツール]-[マクロ]-[マクロ]で「output_text」を「実行」 で、Book1.xlsのある場所にそれぞれのtxtファイルが作成されるハズ。 -- 質問文中にあるように、xlsファイルやシートに分ける事ももちろん可能です。 今回は極力処理を短く書いてみたという事で。

shyteddy
質問者

お礼

ありがとうございます。ほぼOKです。欲をいえば行ごとコピーをしたかったのですが、いろいろ調べて微調整にチャレンジしてみます・・・。

その他の回答 (1)

  • yomo3
  • ベストアンサー率32% (88/269)
回答No.2

#1の方のようにマクロを組むのが効率的だし、再利用も可能なのでよいのですが、マクロを組むこと自体が面倒だという場合、例えば、ソートをかけるという方法もあります。 都道府県の列を基準に並べ替えれば、都道府県順に並ぶので、もれもなくなるかと思います。 ソートのやり方は、イルカ君に聞いてみてください。

shyteddy
質問者

お礼

ソートはしてみたのですが、作成ファイルが40以上にもなり、その連続でもれが多くなってしまったのですよ。 マクロもさらさら組めればいいんですけどねぇ。こういうのが欲しいというときには時間がなくて、勉強して、という感じでもなくいつも力技になってしまうんですよ。

関連するQ&A