|
こんにちは。
IMacイディゴからです。文字化けしてたらすみません。
最初手作業でやってもらおうとしたのは、Sub ayy4()の実行結果みたいに別シートに関数を書いてもらって、そのシートを別名保存でテキスト保存してもらおうかと思っていたんです。(直接テキストにコピペしても大丈夫かも。)
が、こう言うところ↓を読んでなかったり、
>一部のセルで、金額を表示のしたいのですが桁数が違うとずれてきてしまいます。
>バイト数を制限して表示したいのですが
>書き出したテキスト内容
>030625100050
>03062630000150
>を、
>030625 1000 50
>030626 30000 150
の意味が良くつかめませんでした。
データシートをアクティブにした状態で。
Sub ayy4()
Dim DatShN As String, ShE As Long
'DatShN = "data"
DatShN = ActiveSheet.Name
ShE = Sheets(DatShN).Range("A65536").End(xlUp).Row
Worksheets.Add after:=Worksheets(Worksheets.Count)
Columns(1).Font.Name = "MS ゴシック"
kansuu = "=" & DatShN & "!C&" & DatShN & "!C[1]&" & "REPT("" "",LEN(MAX(" & _
DatShN & "!C[2]))-LEN(" & DatShN & "!RC[2]))&" & DatShN & _
"!RC[2] & REPT("" "",LEN(MAX(" & DatShN & "!C[3]))-LEN(" & DatShN & _
"!RC[3]))&" & DatShN & "!RC[3]"
Range("A1:A" & ShE).FormulaR1C1 = kansuu
End Sub
処理内容が、よく解らなかったのに加えて、手動での作成方法も覚えてもらおうかと思いまして。
(処理内容がわかっていれば、コード的にはたいしたことじゃなかったのに。)
下は、全部マクロでやっています。
データシートをアクティブにした状態で。
Sub Zero()
Dim File_OUT As String, ERow As Long, StA As String, StB As String
Dim StC As String, StD As String
Const SP As String = " "
ERow = Range("A65536").End(xlUp).Row
CLM = Len(Application.Max(Columns("C")))
DLM = Len(Application.Max(Columns("D")))
File_OUT = ThisWorkbook.Path & "\" & "作ったテキスト.txt"
Open File_OUT For Output As #1
For i = 1 To ERow
StA = Range("A" & i).Text
StB = Range("B" & i).Text
StC = Right(SP & Range("C" & i).Text, CLM)
StD = Right(SP & Range("D" & i).Text, DLM)
Print #1, StA & StB & StC & StD
Next
Close #1
End Sub
|
|