Attribute VB_Name = "Module1" Option Explicit '配列から文字列型へ Public Declare Function ArryToStr Lib "kernel32" Alias "RtlMoveMemory" ( _ ByVal Destination As String, _ Source As Any, _ ByVal Length As Long _ ) As Long '文字列型から配列へ Public Declare Function StrToArry Lib "kernel32" Alias "RtlMoveMemory" ( _ Destination As Any, _ ByVal Source As String, _ ByVal Length As Long _ ) As Long Sub Test() Dim B(10) As Byte Dim S As String S = "ABCDE" 'Sの内容をBにコピー Call StrToArry(B(3), S, Len(S)) 'バイト配列を文字列に変換 Debug.Print StrConv(B, vbUnicode) End Sub Sub asobi1() 'Right関数を実現 Dim B(10) As Byte Dim S As String '文字列 => 配列 Call StrToArry(B(0), "ABCDE", 5) S = Space(10) Call ArryToStr(S, B(3), 2) '後ろ2文字を抜き取り Debug.Print Trim$(S) End Sub Sub asobi2() 'Left関数を実現 Dim B(10) As Byte Dim S As String '文字列 => 配列 Call StrToArry(B(0), "ABCDE", 5) S = Space(10) Call ArryToStr(S, B(0), 3) '先頭3文字を抜き取り Debug.Print Trim$(S) End Sub Sub asobi3() 'Mid関数を実現 Dim B(10) As Byte Dim S As String '文字列 => 配列 Call StrToArry(B(0), "ABCDE", 5) S = Space(10) Call ArryToStr(S, B(2), 2) '3文字目から2文字抜き取り Debug.Print Trim$(S) End Sub