質問です

c:\test\のフォルダーに複数のtxtファイルがあります
データが1行目からn行あります
データは
"aaa@bbb.ne.jp","","","","","","","","","","",""
の状態です
このデータを
aaa@bbb.ne.jp
のみにできるマクロをおねがいします
現在はCSVファイルで区切り位置で取り出しています
よろしくお願いします

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/01/25 12:47:33
  • 終了:2013/01/25 16:41:42

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982013/01/25 13:47:30

ポイント100pt
Sub main()
Dim p As String
'対象フォルダを指定してください。
'このフォルダに この実行用のブックは 入れないでください。

p = "C:\test\"

'処理対象となる拡張子を指定して 呼び出します。
Call jikkou(p, "txt")

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
        textline = bk(i)
        '先頭が " なら 次の "まで 一項目とする。
        If Left(textline, 1) = """" Then
            c = InStr(2, textline, """")
            textline = Left(textline, c - 1)
            textline = Right(textline, c - 2)
        Else
            c = InStr(1, textline, ",")
            If c = 0 Then
            Else
                textline = Left(textline, c - 1)
            End If
        End If
        
        Print #ch2, textline       'データの書き込みをします
    Next i
    Close #ch2
 
    f = Dir
Loop

Application.DisplayAlerts = True

End Sub

id:inosisi4141

ありがとうございました。
完璧です
うまくいきました。

2013/01/25 16:41:32

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません