|
こんにちは。かみちゃん です。
>文字列を順に一文字づつ取り込む処理がイマイチ判りません。
For 〜 Next と Mid関数で取得することができます。
For i=1 To Len(文字列)
文字=Mid(文字列 , i, 1)
文字に対する処理
Next
> ここからが肝心なところで、その一文字一文字の画数を判定し、加算したいと思ってます。
> ヤなら画数は2、ダなら画数は5ということになります。
これは、次のようなコードでできると思います。
Sub Test()
Dim Str1, Str2, Str2_Tmp As String
Dim KaKuSu As Integer
Str1 = "ヤマダタロウ"
'Str1を半角変換する。
Str2 = StrConv(Str1, vbNarrow)
'画数の合計用変数をクリア
KaKuSu = 0
'文字列を1文字ずつ取り出す
For i = 1 To Len(Str2)
Str2_Tmp = Mid(Str2, i, 1)
'画数を取得する。
'Str2_Tmpの文字コードを取得する。
'たとえば、半角のアは、177が返る。
'Choose関数を使って、各文字の画数を取得する。
'Choose(文字コード-176,A,B,C,D....)
'Aはアの画数2、Bはイの画数2、Cはウの画数3、Dはエの画数3....
'Choose関数の引数は、すみませんが記述してください。
KaKuSu = KaKuSu + Choose(Asc(Str2_Tmp) - 176, 2, 2, 3, 3...)
Next
MsgBox KaKuSu
End Sub
|
|