Sub Macro1()
Dim myConvArray As Variant
Dim loop_X As Long
Dim myTemp As String
myTemp = "おは/よう/ござ" & Chr(10) & "います"
myConvArray = myfunct_SplitArray(myTemp)
MsgBox UBound(myConvArray)
For loop_X = 0 To UBound(myConvArray)
MsgBox myConvArray(loop_X)
Next loop_X
End Sub
Function myfunct_SplitArray(argCHARACTER As String) As Variant
'文字列に特定の文字が含まれていたら、その文字ごとに文字列値を分割し、配列変数に代入する
Const MAX_SPLITS As Integer = 255
Dim loop_X As Long
Dim loop_Y As Long
Dim myWord As String
Dim myChar As String '1文字づつ代入
Dim mySplitSets(MAX_SPLITS) As String '仮配列
Dim mySplitResults() As String '確定配列
Dim myCounter As Long '分割文字カウンター
myWord = argCHARACTER '対象文字列
myCounter = 0 '配列カウンター
For loop_X = 1 To Len(myWord)
Select Case Asc(StrConv(Mid(myWord, loop_X, 1), vbNarrow))
Case 10, 13, 47 '改行、またはスラッシュ
myCounter = myCounter + 1 '配列カウンター繰り上げ
myChar = "" '文字は無視
If myCounter = MAX_SPLITS Then '上限
GoTo FUNCT_SPI_ARR_RES
End If
Case Else
myChar = Mid(myWord, loop_X, 1) '文字を取得
End Select
mySplitSets(myCounter) = mySplitSets(myCounter) & myChar '取得した文字を、配列ごとの取得済み文字列と結合
Next loop_X
FUNCT_SPI_ARR_RES:
ReDim mySplitResults(myCounter) '確定配列の最大数を宣言
For loop_Y = 0 To myCounter '仮配列から確定配列へ、データを移植
mySplitResults(loop_Y) = mySplitSets(loop_Y)
Next loop_Y
Erase mySplitSets '仮配列初期化
myfunct_SplitArray = mySplitResults() '配列全体を返す
End Function