2012-11-02 14 views

答えて

25

safest &最も単純なのはループです。

Dim buff() As String 
ReDim buff(Len(my_string) - 1) 
For i = 1 To Len(my_string) 
    buff(i - 1) = Mid$(my_string, i, 1) 
Next 

ansi文字のみを使用できることが保証されている場合は、

Dim buff() As String 
buff = Split(StrConv(my_string, vbUnicode), Chr$(0)) 
ReDim Preserve buff(UBound(buff) - 1) 
+0

ユニコードを使用するとどうなりますか? – mgae2m

8

VBAでこれを行う別の方法があります。

Function CharacterArray(value As String) 
    value = StrConv(value, vbUnicode) 
    CharacterArray = Split(Left(value, Len(value) - 1), vbNullChar) 
End Function 
Sub example() 
    Dim d As String 
    Dim myArray() 
    myArray = CharacterArray("hi there") 
End Sub 
11

文字列をバイト配列に割り当てることができます(逆も可能です)。結果は、各文字のための2つの数値であるので、クリスマスが含むバイト配列{88,0,109,0,97,0,115,0}
に変換するか、あなたが{88109を与えるのStrConv

Dim bytes() as Byte 
bytes = StrConv("Xmas", vbFromUnicode) 

使用することができ、 97,115}ですが、その場合、バイト配列を文字列に戻すことはできません。
Chr()関数を使用してバイト配列の数値を文字に戻すことができます。

0

問題は、vbでこれを行う方法がないことです。しかし、スペース上に文字列を分割するものがあるので、文字列を再構築してスペースを追加するだけです....

Private Function characterArray(ByVal my_string As String) As String() 
    'create a temporary string to store a new string of the same characters with spaces 
    Dim tempString As String = "" 
    'cycle through the characters and rebuild my_string as a string with spaces 
    'and assign the result to tempString. 
    For Each c In my_string 
    tempString &= c & " " 
    Next 
    'return return tempString as a character array. 
    Return tempString.Split() 
End Function 
関連する問題