Excelマクロについて教えてください。
フォルダ内にある全てのファイルのA列にAを追加したいのですが、
下記だとA1にAを上書きしてしまいます。
book.Sheets(1).Range("A1") = "A" '最初のシートのA1に"A"を
フォルダ内のファイルのA列に値がある場合、Aを追加する場合のマクロを教えてください。
例)
test.xls
A列 →A列
12345 →A12345
55555 →A55555
Sub sample()
Dim dataFolder As String
Dim file As String
Dim book As Workbook
Dim fileName As String
Dim fileExt As String
dataFolder = "C:\test\" 'excelがあるフォルダ
file = Dir(dataFolder & "*.xls") '最初のexcelファイル名
Do While file <> "" 'ファイル名がある間
'内容変更
Set book = Workbooks.Open(dataFolder & file) 'ブックを開く
book.Sheets(1).Range("A1") = "A" '最初のシートのA1に"A"を
book.Close True '上書きして閉じる
file = Dir '次のファイル名
Loop '繰り返す
End Sub
教えてください。
>book.Sheets(1).Range("A1") = "A"
これを以下のように、
A1に値が入っていたら、その値の前に"A"を付加、とする。
If book.Sheets(1).Range("A1") <> "" Then
book.Sheets(1).Range("A1") = "A" & book.Sheets(1).Range("A1")
End If
'---------------------------------------------------
A列の1行目からA列データ最終行までやりたい場合は以下のように。
'-------------------------------------------------------
Dim R As Long
For R = 1 To book.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
If book.Sheets(1).Cells(R, "A") <> "" Then
book.Sheets(1).Cells(R, "A") = "A" & book.Sheets(1).Cells(R, "A")
End If
Next R
'-------------------------------------------------------
●A列最終行は
book.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
これで取得しています。
以上です。