Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


67118 / 76734 ←次へ | 前へ→

【14175】Re:文字列判定
回答  かみちゃん  - 04/5/22(土) 14:22 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>文字列を順に一文字づつ取り込む処理がイマイチ判りません。

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

0 hits

【14171】文字列判定 じぇじぇ 04/5/22(土) 13:38 発言
【14175】Re:文字列判定 かみちゃん 04/5/22(土) 14:22 回答
【14194】Re:文字列判定 じぇじぇ 04/5/23(日) 0:42 発言

67118 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free