Excel VBA質問箱 IV

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

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


12443 / 13644 ツリー ←次へ | 前へ→

【8740】文字数の取得 naka 03/10/30(木) 17:03 質問
【8743】Re:文字数の取得 INA 03/10/30(木) 18:33 回答
【8745】Re:文字数の取得 ichinose 03/10/30(木) 18:35 回答
【8753】Re:文字数の取得 Jaka 03/10/31(金) 9:06 回答
【8755】Re:文字数の取得 ichinose 03/10/31(金) 9:25 発言
【8817】Re:文字数の取得 naka 03/11/4(火) 14:28 お礼
【10477】いまごろですが。 Jaka 04/1/28(水) 13:43 回答

【8740】文字数の取得
質問  naka  - 03/10/30(木) 17:03 -

引用なし
パスワード
   こんにちは
以下の処理を行いたいのですが、
色々調べましたが、できずみ困ってます。
どなたか、教えてください。

A1 : aaaabbbcc の時
このセルに指定文字が何文字あるかを調べる方法。
("a"なら4、"b"なら3、"c"なら2)

【8743】Re:文字数の取得
回答  INA  - 03/10/30(木) 18:33 -

引用なし
パスワード
   >A1 : aaaabbbcc の時
>このセルに指定文字が何文字あるかを調べる方法。
>("a"なら4、"b"なら3、"c"なら2)

思いつきですが・・・
dim i as long
din c as long

range("a1").value="aaaabbbcc"

for i = 1 to len(range("a1").value)
 if mid(range("a1").value,i,1)= "a" then
    c=c+1
 end if
next i

msgbox c

【8745】Re:文字数の取得
回答  ichinose  - 03/10/30(木) 18:35 -

引用なし
パスワード
   ▼naka さん:
こんにちは。
>以下の処理を行いたいのですが、
>色々調べましたが、できずみ困ってます。
>どなたか、教えてください。
>
>A1 : aaaabbbcc の時
>このセルに指定文字が何文字あるかを調べる方法。
>("a"なら4、"b"なら3、"c"なら2)
'===================================
Sub main()
  MsgBox strsum(Range("a1"), "a")
End Sub
'======================================
Function strsum(s_str, f_str) As Long
  Dim wk
  wk = Split(s_str, f_str)
  strsum = UBound(wk) - LBound(wk)
  If strsum < 0 Then strsum = 0
End Function
でどうでしょうか?
別のセルに「=strsum(a1,"a")」
とすれば、ユーザー定義関数としても使えました。
Split関数は、Ex2000以上ですが・・。

【8753】Re:文字数の取得
回答  Jaka  - 03/10/31(金) 9:06 -

引用なし
パスワード
   MsgBox "aは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "a", ""))
MsgBox "bは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "b", ""))
MsgBox "cは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "c", ""))

【8755】Re:文字数の取得
発言  ichinose  - 03/10/31(金) 9:25 -

引用なし
パスワード
   ▼Jaka さん:
おはようございます。

>MsgBox "aは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "a", ""))
>MsgBox "bは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "b", ""))
>MsgBox "cは、" & Len(Range("A1").Value) - Len(Application.Substitute(Range("A1").Value, "c", ""))
↑また、私の大好きな姑息な手を・・・。
ichinoseメモに入れておきます。ありがとうございます。

【8817】Re:文字数の取得
お礼  naka  - 03/11/4(火) 14:28 -

引用なし
パスワード
   ▼naka さん:
>こんにちは
>以下の処理を行いたいのですが、
>色々調べましたが、できずみ困ってます。
>どなたか、教えてください。
>
>A1 : aaaabbbcc の時
>このセルに指定文字が何文字あるかを調べる方法。
>("a"なら4、"b"なら3、"c"なら2)


INAさん ichinoseさん Jakaさん
ありがとうございました。
みなさんのそれぞれ違うやり方で、ビックリしました。
1つだけじゃないんですね・・・
また質問させてもらうことがあると思います。
そのときはよろしくお願いします。

【10477】いまごろですが。
回答  Jaka  - 04/1/28(水) 13:43 -

引用なし
パスワード
   前からいつ直そうかと思っていたんですが....。
(つんさんに突っ込んでおいて。)
ichinoseさんのと違って、私のはチョンボしてますね!
半角カナが混じっていた場合を考えると..。
1度大文字にしないとダメですね。(エクセル関数だとJIS)
すみません。

Dim stst As String
stst = "ガガがギギギギぎぎググググググぐぐぐ"
MsgBox "ガは、" & Len(StrConv(stst, vbWide)) - Len(StrConv(Application.Substitute(stst, "ガ", ""), vbWide))
MsgBox "ギは、" & Len(StrConv(stst, vbWide)) - Len(StrConv(Application.Substitute(stst, "ギ", ""), vbWide))

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