過去ログ

                                Page     382
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼文字数を返す  後藤 03/9/22(月) 16:38
   ┣Re:文字数を返す  イケガミ 03/9/22(月) 18:22
   ┣Re:文字数を返す  かみちゃん 03/9/22(月) 18:31
   ┗Re:文字数を返す  後藤 03/9/22(月) 20:21

 ───────────────────────────────────────
 ■題名 : 文字数を返す
 ■名前 : 後藤
 ■日付 : 03/9/22(月) 16:38
 -------------------------------------------------------------------------
   ある文字列の中に、指定した文字がいくつ存在するか調べる関数はありますか?

str="a,b,c,d,e"

の中で、","がいくつあるかを調べたいのですが。
この場合、「4」と返してほしいのですが。

 ───────────────────────────────────────  ■題名 : Re:文字数を返す  ■名前 : イケガミ  ■日付 : 03/9/22(月) 18:22  -------------------------------------------------------------------------
   >str="a,b,c,d,e"

Access2000以上であれば、Split 関数とUBound を使えばいいですね。

  Dim strA As String
  Dim strB() As String
  
  strA = "a,b,c,d,e"
  strB = Split(strA, ",", , vbTextCompare)
  
  MsgBox UBound(strB)


とかで

 ───────────────────────────────────────  ■題名 : Re:文字数を返す  ■名前 : かみちゃん  ■日付 : 03/9/22(月) 18:31  -------------------------------------------------------------------------
   こんちには。

>ある文字列の中に、指定した文字がいくつ存在するか調べる関数はありますか?

Sub Test()
 Dim strX As String
 strX = "a,b,c,d,e"
 MsgBox M_Len(strX, ",") ' ←指定した文字数が表示されます。
End Sub

Function M_Len(strX, strChar) As Long
 Dim lngX As Long  ' InStr()で検索する時の開始文字数
 Dim lenX As Long  'データの文字数、ここではテキスト型が前提
 Dim lngcountX As Long  'strCharで指定した文字の数の格納

 lngcountX = 0
 lenX = Len(strX)
 lngX = 1
 Do
  lngX = InStr(lngX, strX, strChar)
  If lngX = 0 Then
    Exit Do
  End If
  lngX = lngX + 1
  lngcountX = lngcountX + 1
 Loop
 M_Len = lngcountX
End Function

 ───────────────────────────────────────  ■題名 : Re:文字数を返す  ■名前 : 後藤  ■日付 : 03/9/22(月) 20:21  -------------------------------------------------------------------------
   イケガミさん、かみちゃんさん、ありがとうございました。

できました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 382