人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


●質問者: inosisi
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー
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



inosisiさんのコメント
ありがとうございます 大文字に変換されました 小文字に変換したいのです AAAA が aaaa になるように A列データはメールアドレスです

きゃづみぃさんのコメント
勘違いでしたね。失礼しました。 g = UCase(g) と言う箇所が 二箇所ありますが それを g = LCase(g) にしてください。

inosisiさんのコメント
ありがとうございました 上手くいきました 申し訳ありませんが A列とF列も変換できるようにしたい場合の変更を教えていただけたら幸いです

きゃづみぃさんのコメント
上記のプログラムだと 最初のひとつの項目のみの対応となっています。 指定した項目にするには もう少し 作りこみが必要となります。

inosisiさんのコメント
わかりましたありがとうございました 必要なときに質問させていただきます
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ