LoginSignup
0
1

More than 5 years have passed since last update.

EXCEL VBA Split関数の文字列を縦に並んだセルからイミディエイトに出力するマクロ

Posted at

ユニコード文字、コンマがあるとうまくいきませんが、ちまちまと打つよりはExcelにいれて出力すると楽だと思います。
450文字程度で折り返します。
Sheet1にA列に項目を縦に並べて継続文字(アンダーバー)が24を超えたら、別のSplitが始まります。
Sheet1ってファイルを新作成したときにできるシートです。
横に並んでいるデータは形式を選択して貼り付けで行列を入れ替え、縦に並べてください。


Sub CraeateSplitString()
'For Excel

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim str As String
Dim iLen As Long
Dim Cnt As Long
Dim LastRow As Long : LastRow = ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count,1).End(xlUp).Row
Dim ar: ar = ThisWorkbook.Worksheets("Sheet1").Range("A1:A" & LastRow) 'A列に並べる 横に並んでいる場合にはコピーして形式を選択で貼り付けで行列を入れ替え、値だけ複写して縦にする。
str = "Split(" & Chr(34)
Cnt = 0
For i = LBound(ar) To UBound(ar)
iLen = iLen + Len(ar(i, 1) & ",")
str = str & ar(i, 1) & ","
If iLen > 450 Then
iLen = 0
str = str & Chr(34) & " & vbCrLf & _ " & vbCrLf & Chr(34)
Cnt = Cnt + 1
If Cnt = 25 Then
str = Left(str, Len(str) - 1) & Chr(34) & "," & Chr(34) & "," & Chr(34) & ")" '改行は24までなので、25になった場合はいったんSplit関数としてイミディエイトに出力してクリアする。
Debug.Print str
Cnt = 0
str = ""
str = "Split(" & Chr(34)
iLen = 0
End If
End If
Next i
str = Left(str, Len(str) - 1) & Chr(34) & "," & Chr(34) & "," & Chr(34) & ")"
Debug.Print str
End Sub
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1