|
自己レスです。
すみません、解決しました。
▼あやか さん:
>ポンタさん、こんばんは。
>たびたび申し訳ありませんが教えてください。
>よろしくお願いします。
>すみません、頼りっぱなしで・・・。
>
>▼ポンタ さん:
>>Range("E:F") を作業列として使うコードに書き換えてみましたので、
>>こちらもお試しください。
>>
>>Sub test()
>> Dim objFs As Object, objText As Object
>> Dim FileName As String
>> Dim MyStr As String
>> Dim i As Long
>> FileName = "C:\My Documents\test.txt"
>> Set objFs = CreateObject("Scripting.FileSystemObject")
>> Set objText = objFs.OpenTextFile(FileName, 2, True)
>> With Range("C1", Range("C65536").End(xlUp))
>> .Offset(0, 2).Resize(, 2).FormulaR1C1 = "=LEN(R[0]C[-2])+1"
>> End With
> With Range("D1", Range("D65536").End(xlUp))
> .Offset(0, 2).Resize(, 2).FormulaR1C1 = "=LEN(R[0]C[-2])+2" End With
> としたとき、
>
>> Range("C65536").End(xlUp).Offset(1, 2).FormulaR1C1 = "=MAX(R1C5:R[-1]C[0])"
>> Range("C65536").End(xlUp).Offset(1, 3).FormulaR1C1 = "=MAX(R1C6:R[-1]C[0])"
>
> ↑こちらはどうしたらいいのでしょうか。このあたりの意味を教えてください。 C列最終行からオフセットしてどうしてるのかわからないんです。
>
>> For i = 1 To Range("A65536").End(xlUp).Row
>> 'MyStrにA列の値をセット MyStr = "0001"
>> MyStr = Cells(i, 1).Value
>> 'MyStrの文末にB列の値を付け足す MyStr="0001030625"
>> MyStr = MyStr & Cells(i, 2).Value
>> 'Len(Cells(i, 3).Valueで"1000"の文字数を数える = 4
>> '桁数1 = 6だから String(2, " ")となる。これは、スペース2文字(" ")を返す
>> 'よって MyStr=MyStr="0001030625 "となる
>> MyStr = MyStr & String(Range("C65536").End(xlUp).Offset(1, 2) _
>> - Len(Cells(i, 3).Value), " ")
>> 'C列の値を付け足す MyStr="0001030625 1000"
>> MyStr = MyStr & Cells(i, 3).Value
>> 'スペースを付け足す MyStr="000130625 1000 "
>> MyStr = MyStr & String(Range("C65536").End(xlUp).Offset(1, 3) _
>> - Len(Cells(i, 4).Value), " ")
>> 'D列の値を付け足す MyStr="000130625 1000 50"
>> MyStr = MyStr & Cells(i, 4).Value
>> 'テキストファイルに書き込み
>> Call objText.WriteLine(MyStr)
>> Next
>> objText.Close
>> Set objText = Nothing
>> Set objFs = Nothing
>> Range("E:F").ClearContents
>>End Sub
|
|