投稿者 るきお  (社会人) 投稿日時 2023/1/27 19:40:25
>恐らくVB6だと思います。曖昧で申し訳ございません。
ヤマダさんは何でプログラムしたいのですか?

> student_name に入る文字列を1文字づつ半角全角を判定して、全角なら「?」に変換という処理を想定していました。
とりあえずExcel VBA でサンプルを作ってみました。
変数名は StudetName にしてしまいました。
StudentName に𩸽とかが入っているとおかしな結果になると思うので、実用に使用する場合は、StudentNameに入力される可能性のある文字に照らし合わせて、目的に適うか確認してくださいね。
半角全角判定にStrConvを使っているので、StrConvが使える環境に依存します。(たとえば、非日本語環境のWindowsでは動作しないと思います。)

Dim StudentName As String
    
StudentName = "タナカ タロウ"
  
Dim SafeStudentName As String
Dim i As Integer
Dim ZenkakuChar As String
Dim StudentChar As String
    
For i = 1 To Len(StudentName)
    'i文字目のStudentName 
    StudentChar = Mid(StudentName, i, 1)
        
    'それを全角に変換したもの 
    ZenkakuChar = StrConv(StudentChar, vbWide)

    '元の文字が全角に変換したものと同じなら、元の文字は全角(ということにする) 
    If ZenkakuChar = StudentChar Then
        StudentChar = "?"
    End If

    SafeStudentName = SafeStudentName & StudentChar

Next i

MsgBox SafeStudentName


>やりたいことはstudent_name に入る文字列を1文字づつ半角全角を判定して、全角なら「?」に変換という処理を想定していました。
>例えば「タナカ タロウ」なら「TANA? TA?U」という感じです。
「やりたいこと」と「例えば」があっていないですよね。全角なら?ということですが、半角がローマ字になっていますね。あと名前の区切りのスペースが全角スペースなので、「やりたいこと」通りに考えると「タナ??タ?ウ」になります。