質問です

C:\test\のホルダーの中に複数のCSVファイルがあります
A列の1行目から英数の文字列のデータがあります
このA列のデータの中の大文字を小文字に一括で変換するマクロをおねがいします

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2012/05/31 10:57:50
  • 終了:2012/05/31 12:00:04

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13538ベストアンサー獲得回数11982012/05/31 11:11:50

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

Application.DisplayAlerts = True

End Sub


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

上記のプログラムだと 最初のひとつの項目のみの対応となっています。

指定した項目にするには もう少し 作りこみが必要となります。

2012/05/31 11:51:10
id:inosisi4141

わかりましたありがとうございました
必要なときに質問させていただきます

2012/05/31 11:59:54

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

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

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

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

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