フォルダー中のCSVファイルからメールアドレスを取り出す方法

質問です c\test\のホルダー中にcsvファイルが複数あります その.. – 人力検索はてな』より。

■問題

C:\test\フォルダーには複数のCSVファイルが置かれています。
そして、CSVファイルはA~E列のいずれかにメールアドレスが記載されています。

たとえば次のようになります。

C:\test\01.csv

A@docomo.ne.jpBCDE
AB@docomo.ne.jpCDE
ABC@docomo.ne.jpDE
ABCD@docomo.ne.jpE
ABCDE@docomo.ne.jp

C:\test\02.csv

a@docomo.ne.jpbcde
ab@docomo.ne.jpcde
abc@docomo.ne.jpde
abcd@docomo.ne.jpe
abcde@docomo.ne.jp

このCSVファイルから、メールアドレスだけを取り出して、新しいCSVファイルを作成します。

A@docomo.ne.jp
B@docomo.ne.jp
C@docomo.ne.jp
D@docomo.ne.jp
E@docomo.ne.jp
a@docomo.ne.jp
b@docomo.ne.jp
c@docomo.ne.jp
d@docomo.ne.jp
e@docomo.ne.jp

■解決方法

まず、「nextCSV CSVファイル編集ソフト」を使って、CSVファイルからメールアドレスを取り出して、新しいCSVファイルを作成します。

次に、「DirCommand フォルダー内ファイル一括処理ソフト」を使って、フォルダー中のCSVファイルに対して、「nextCSV CSVファイル編集ソフト」の処理を行うようにします。

(1)「nextCSV CSVファイル編集ソフト」を使って、CSVファイルからメールアドレスを取り出す

  1. nextCSV CSVファイル編集ソフト」を起動し、「C:\test\01.csv」を開きます。

  2. A列以外の列を削除します。

  3. A列を編集します。

  4. 「追加する列の形式」欄から「結合列」を選択します。

  5. A列からE列までのすべての列を追加します。

  6. 「結合文字列」欄に「\n」と入力します。

  7. 「結合文字列にエスケープ文字を使用する」を選択します。

    これで、「変換されたセルの値」欄に表示されているように、セルにはA列からE列までのセルの値が一行ずつ入ります。

  8. 「変換条件」の「追加」ボタンを押します。

  9. 「セルの値を正規表現で置換する」を選択し、「検索文字列」欄に「^[^@]$」、「置換文字列」欄に「 」(半角スペース)を入力します。

    この条件は、@のない行を半角スペースに置き換える条件です。

  10. 「OK」ボタンを押し、変換条件を登録します。

  11. 「変換条件」の「追加」ボタンを押します。

  12. 「各行の前後の空白を削除する」を選択します。

  13. 「OK」ボタンを押し、変換条件を登録します。

  14. 「変換条件」の「追加」ボタンを押します。

  15. 「セルの改行コードを削除して一行にする」を選択します。

  16. 「OK」ボタンを押し、変換条件を登録します。

    これでセルの値から@の文字がない行が取り除かれるようになりました。

  17. 「OK」ボタンを押し、メイン画面に戻ります。

    A列には、メールアドレスだけが表示されています。

  18. メニューの「ファイル」-「名前を付けて保存」を選択します。

    「C:\data\sample.nxc」に保存します。

    ※保存する場所は他の場所でも問題ありません。

  19. メニューの「ファイル」-「自動実行ファイルの作成」を選択します。

  20. 「設定ファイルのパス」欄に先ほど保存した場所(C:\data\sample.nxc)を指定します。

  21. 「CSVファイルの保存場所」欄に作成したCSVファイルを保存する場所を指定します。

    「C:\data\mailaddress.csv」に保存します。

  22. 「同名のファイルがあるときの処理」欄の「追記」をチェックします。

  23. 「作成」ボタンを押し、バッチファイルを作成します。

    「C:\test\test.bat」に保存します。

    ※保存場所は他の場所でも問題ありません。

  24. 作成した自動実行バッチファイルを実行すると、「01.CSV」からメールアドレスを取り出してmailaddress.CSVに保存されます。

これで、CSVファイルからメールアドレスを取り出して、新しいCSVファイルを作成できるようになりました。

(2)「DirCommand フォルダー内ファイル一括処理ソフト」を使って、フォルダー中のCSVファイルに対して、「nextCSV CSVファイル編集ソフト」の処理を行う

  1. DirCommand フォルダー内ファイル一括処理ソフト」を起動します。

  2. 「フォルダー」欄の「参照」ボタンを押し、「C:\test\」フォルダーを指定します。

  3. CSVファイルだけを処理したいので、「対象ファイルの拡張子」欄に「csv」と入力します。

  4. 「実行プログラム」タブを選択します。

  5. 「追加」ボタンを押します。

  6. 「コマンドラインから」ボタンを押します。

  7. 「参照」ボタンを押し、「nextCSV CSVファイル編集ソフト」の自動実行バッチファイル(C:\test\test.bat)を選択します。

    コマンドラインが設定されます。

  8. 「OK」ボタンをします。

    実行プログラム編集画面に戻ります。

    プログラム欄と引数欄が設定されます。

  9. 引数欄に「 “-f=?fullpath?”」を追加します。

    ※”-fの前に半角スペースがあります。

    nextCSV CSVファイル編集ソフト」の引数「-f=~」は、読み込むCSVファイルの場所を指定します。

    「?fullpath?」は実行時に、C:\test\フォルダー中のファイル名に置き換えられます。

    つまり、実行時に「nextCSV CSVファイル編集ソフト」は、C:\test\フォルダー中のファイルを読み込み、設定されている処理(メールアドレスの抽出)を行い、C:\test\mailaddress.csvに保存します。

  10. 「OK」ボタンをします。

    メイン画面に戻ります。

    プログラムが設定されます。

  11. 「実行」ボタンを押します。

    nextCSV CSVファイル編集ソフト」が実行され、mailaddress.csvにメールアドレスが登録されました。

設定を保存して、自動実行バッチファイルを作成すると、次回からの作業が自動化できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です