(*´д`*)アハァ… VB初心者質問スレ Part22
■ このスレッドは過去ログ倉庫に格納されています
0278デフォルトの名無しさん
NGNG'Len関数をつかって単語の文字数を求める Len("opendata") = 8 この8を単語内の一文字ずつを比較するときのループプログラムで使う。
'o p e n d a t a
'のそれぞれの文字がoまたはaに一致するかどうかを比較する。
Dim i As Integer 'ループカウンタ
Dim n As Integer 'opendataに含まれているoとaの合計数
Dim S As String '一時的に文字を入れておく文字用変数
'Mid関数で一文字ずつ取り出していく。
'Mid("opendata",a,b)というのはopendataのa文字目からb文字取り出すという意味。
'だからMid("opendata",1,1)はopendataの1文字目から1文字だけ取り出すという意味で、1文字目から1文字目だけ取り出すとそれはoという文字になる。
'したがってS=Mid("opendata",1,1)となっているときは文字列変数Sにはoという文字が入っている。
'変数Sがoまたはaであるかどうかは
'If UCase(S)="o" or UCase(S)="a" then
'n=n+1
'End if
'のようにIF文を使って文字が同じかどうかを比較する。
'LCaseは大文字を小文字に変換する関数で、OpenDataというような大文字小文字が混じっている場合に対処する。
'大文字のAと小文字のaは違うものだからだ。
'大文字小文字の区別をつけたいときはLCace関数やUCase関数は使わないようにする。全角文字対処については省略。
For i = 1 To Len("opendata")
S = Mid("opendata", i, 1)
If LCase(S) = "o" Or LCase(S) = "a" Then
n = n + 1
End If
Next
Form1.Caption = n
'この方法のほかにInStr関数を使ったり正規表現を使ったりする方法がある。
■ このスレッドは過去ログ倉庫に格納されています