質問です

c:\test\のホルダーの中に複数のCSVファイルがあります
データはA列に1行目から文字列であります
そのファイルのデータをエクセルの重複削除のボタンを使って
連続してできるマクロをお願いします

ボタンがだめなら関数=COUNTIF($A$1:A1,A1)
を使って連続でやれるマクロ
この場合はb列に数値だけがのこるようにする
よろしくお願いします

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/01/23 16:37:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント100pt
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



ボタンとかは使わず重複行をすべて削除して重複しないようにしました。
行全体で 重複のチェックをしています。

他1件のコメントを見る
id:taknt

たぶん、速度的には そんなに変わらないのではないのかと思います。

ちなみに エクセル2003には 重複削除のボタンってないです。

2013/01/23 16:20:51
id:taknt

調べたら 2007からの機能みたいですね。
いろいろ選択して 削除とかするみたいです。

2013/01/23 16:21:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません