現担当欄に入力された「、」区切りの文字列を分解する方法

例)XX氏、YY氏、M氏

<クエリ>
一人目: leftstr([現担当者],"、")
二人目: secondperson([現担当者],"、")
三人目: thirdperson([現担当者],"、")
四人目: fourth([現担当者],"、")

Option Compare Database
Option Explicit
'半角カタカナ「、」を全角「、」に置換
Function replacestr(strmoji)
    Dim provisionalstr As String
    Dim before_replacement() As Variant
    'Dim after_replacement As Variant
    Dim i As Integer
    
    If IsNull(strmoji) = False Or Len(strmoji) > 0 Then
      
        before_replacement = Array("!", "!", "_", "_", "F", "W", "w", "P", "P", "L", "L", "/", "/",";",":",":", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
            
        provisionalstr = Replace(strmoji, "、", "、")
        For i = 0 To UBound(before_replacement)
            provisionalstr = Replace(provisionalstr, before_replacement(i), "")
        Next
        
        replacestr = provisionalstr
    End If
    
End Function

'--------------------------------------
'区切り文字までの文字列を取りだす(1番目)
'--------------------------------------
Function leftstr(strmoji, 区切り文字)
    Dim provisionalnumber As Integer
    
    If IsNull(strmoji) = True Then
        leftstr = ""
    Else
        If InStr(1, strmoji, 区切り文字) > 1 Then
           provisionalnumber = InStr(1, strmoji, 区切り文字)
           leftstr = replacestr(Left(strmoji, provisionalnumber - 1))
        Else
           leftstr = replacestr(strmoji)
        End If
    End If
End Function

'--------------------------------------
'区切り文字文字から右の文字列を取りだす
'--------------------------------------
Function rightstr(strmoji, 区切り文字)
     Dim provisionalnumber As Integer
     Dim provisionallen As Integer
    
    If If IsNull(strmoji) = True Then
        rightstr = ""
    Else
        If InStr(1, strmoji, 区切り文字) > 1 Then
           provisionalnumber = InStr(1, strmoji, 区切り文字)
           provisionallen = Len(strmoji)
           '一番後ろに区切り文字がある場合
           If provisionallen = provisionalnumber + 1 Then
              rightstr = ""
           Else
                
              rightstr = Mid(strmoji, provisionalnumber + 1, provisionallen)
           End If
        End If
    End If
End Function

'--------------------------------------
'2番目を取りだす
'--------------------------------------
Function secondperson(strmoji, 区切り文字)
    Dim provisionalstr1 As String
     
    provisionalstr1 = rightstr(strmoji, 区切り文字)
    
    '2番目が空なら1番目と同じ値を入力(if文不要なら削除)
    If leftstr(provisionalstr1, 区切り文字) = "" Then
        secondperson = leftstr(strmoji, 区切り文字)
    Else
    '2人目を出力
    secondperson = leftstr(provisionalstr1, 区切り文字)
    End If
    
End Function

'--------------------------------------
'3番目を取りだす
'--------------------------------------
Function thirdperson(strmoji, 区切り文字)
    Dim provisionalstr1 As String
    Dim provisionalstr2 As String
     
    provisionalstr1 = rightstr(strmoji, 区切り文字)
    provisionalstr2 = rightstr(provisionalstr1, 区切り文字)
    thirdperson = leftstr(provisionalstr2, 区切り文字)
    
End Function

'--------------------------------------
'4番目を取りだす
'--------------------------------------
Function fourth(strmoji, 区切り文字)
    Dim provisionalstr1 As String
    Dim provisionalstr2 As String
    Dim provisionalstr3 As String
     
    provisionalstr1 = rightstr(strmoji, 区切り文字)
    provisionalstr2 = rightstr(provisionalstr1, 区切り文字)
    provisionalstr3 = rightstr(provisionalstr2, 区切り文字)
    fourth = leftstr(provisionalstr3, 区切り文字)
    
End Function