質問です。

c:\test\のフォルダーの中に複数のCSVファイルがあります。
データは1行目から複数行ですA列は属性文字です

データA列だけ残し他のB列以降のデータを削除するマクロをお願いします
B列以降には空白列もあります


 

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2011/12/13 13:01:29
  • 終了:2011/12/13 18:28:35

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982011/12/13 14:15:20

ポイント100pt
Public w As Workbook
Public 読み込み数 As Long
Public カラム数 As Integer

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 Workbook
Dim gg As Long
Application.DisplayAlerts = False

Dim fdb() As String
    
a = 1
f = Dir(p & "*." & s, vbNormal)
Do While f <> ""
    ReDim Preserve fdb(a)
    fdb(a - 1) = f
    a = a + 1
    f = Dir
Loop


For aaa = 0 To a - 2
    f = fdb(aaa)
    csvImp (p & f)
Next aaa

Application.DisplayAlerts = True

End Sub


Sub csvImp(csFName As String)

Const csDelimiter As String = ","

Dim FNo As Integer
Dim FN2 As Integer

Dim wsObj As Worksheet

Dim strGet As String

Dim outd() As String

Dim i As Long

FNo = FreeFile
If Dir(csFName) <> "" Then

    Open csFName For Input As #FNo
    a = 1
    Do Until EOF(FNo)
        Line Input #FNo, strGet
        ReDim Preserve outd(a)
        If strGet <> "" Then
            outd(a - 1) = Split(strGet, csDelimiter)(0)
        End If
        a = a + 1
    Loop
    
    Close
    
    FN2 = FreeFile
    Open csFName For Output As #FN2
    For b = 0 To a - 2
        Print #FN2, outd(b)
    Next b
    Close
End If

End Sub
他4件のコメントを見る
id:taknt

カンマありとかだと ""でくるまないとダメです。

2011/12/14 11:15:48
id:inosisi4141

ありがとうございます。
イレギュラーでたまたまカンマありが紛れ込んでしまったので都度区切り文字呼び込みで外して使用しますありがとうございました

2011/12/14 14:52:07

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

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

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

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

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