c:\test\のホルダーの中に複数のCSVファイルがあります
データはA列に1行目から文字列であります
そのファイルのデータをエクセルの重複削除のボタンを使って
連続してできるマクロをお願いします
ボタンがだめなら関数=COUNTIF($A$1:A1,A1)
を使って連続でやれるマクロ
この場合はb列に数値だけがのこるようにする
よろしくお願いします
Sub main() Dim p As String '対象フォルダを指定してください。 'このフォルダに この実行用のブックは 入れないでください。 p = "C:\test\" '処理対象となる拡張子を指定して 呼び出します。 Call jikkou(p, "csv") End Sub Sub jikkou(p As String, s As String) Dim bk() As String Application.DisplayAlerts = False f = Dir(p & "*." & s, vbNormal) Do While f <> "" k = 0 ReDim bk(k) ch1 = FreeFile Open p & f For Input As #ch1 Do While Not EOF(ch1) 'ファイルの終端かどうかを確認します Line Input #ch1, textline 'データ行を読み込みます ReDim Preserve bk(k) bk(k) = textline k = k + 1 Loop Close #ch1 ch2 = FreeFile Open p & f For Output As #ch2 For i = 0 To k - 1 If bk(i) <> "" Then For b = i + 1 To k - 1 If bk(i) = bk(b) Then bk(b) = "" End If Next b Print #ch2, bk(i) 'データの書き込みをします End If Next i Close #ch2 f = Dir Loop Application.DisplayAlerts = True End Sub
ボタンとかは使わず重複行をすべて削除して重複しないようにしました。
行全体で 重複のチェックをしています。
たぶん、速度的には そんなに変わらないのではないのかと思います。
2013/01/23 16:20:51ちなみに エクセル2003には 重複削除のボタンってないです。
調べたら 2007からの機能みたいですね。
2013/01/23 16:21:18いろいろ選択して 削除とかするみたいです。