質問: .Cells(lRowNumb, nColumNumb).Value If nColumNumb < 3 Then Print #nFrn, sData & " "; Else Print #nFrn, sData End If Next nColumNumb Next lRowNumb Close #nFrn
回答: ワウ もうサンプルがありましたか 私もサンプル作ってみました。 ちょっと列でのデータ長処理泥臭くやってみました。 #1の方が汎用的でスマートですね。 Sub test1() Dim sData As String Dim DLen As Long '列でのデータ長さ Const sMyFilename As String = "C:\My Documents\OKWeb\test1.txt" nFrn = FreeFile(0) Open sMyFilename For Output As #nFrn For lRowNumb = 5 To 10 For nColumNumb = 1 To 3 'とりあえずデータ取得 sData = Cells(lRowNumb, nColumNumb).Value Select Case nColumNumb Case 1 '1列目 DLen = 100 'byte sData = Left(sData, DLen) sData = sData & Space(DLen - Len(sData)) Case 2 '2列目 DLen = 150 'Byte sData = Left(sData, DLen) sData = sData & Space(DLen - Len(sData)) Case 3 '3列目 DLen = 50 'Byte sData = Left(sData, DLen) sData = sData & Space(DLen - Len(sData)) Case Else MsgBox (" Error") Exit Sub End Select Print #nFrn, sData; '改行しない Next nColumNumb Print #nFrn, "" 'ここで改行 Next lRowNumb Close #nFrn End Sub