Excel VBA質問箱 IV

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

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


2755 / 13646 ツリー ←次へ | 前へ→

【66175】文字列内のスペースで区切られたものをカウントしたい けい 10/8/6(金) 17:13 質問[未読]
【66176】Re:文字列内のスペースで区切られたものを... kanabun 10/8/6(金) 17:19 発言[未読]
【66181】Re:文字列内のスペースで区切られたものを... けい 10/8/6(金) 18:18 質問[未読]
【66182】Re:文字列内のスペースで区切られたものを... kanabun 10/8/6(金) 18:32 発言[未読]
【66183】Re:文字列内のスペースで区切られたものを... けい 10/8/6(金) 18:37 お礼[未読]
【66178】Re:文字列内のスペースで区切られたものを... Jaka 10/8/6(金) 17:24 発言[未読]
【66184】Re:文字列内のスペースで区切られたものを... けい 10/8/6(金) 18:38 お礼[未読]
【66180】Re:文字列内のスペースで区切られたものを... kanabun 10/8/6(金) 17:27 発言[未読]
【66185】Re:文字列内のスペースで区切られたものを... けい 10/8/6(金) 18:39 お礼[未読]

【66175】文字列内のスペースで区切られたものをカ...
質問  けい  - 10/8/6(金) 17:13 -

引用なし
パスワード
   どうかご指導をお願いいたします。

ある文字列内にスペースで区切られた名前が入っています。

以下のような英文字ですが

Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H

これらの文字列内の名前をカウントしたいのですが
どのようにしたらできますでしょうか。
お知恵を貸していただきたいのですが
よろしくお願いいたします。

【66176】Re:文字列内のスペースで区切られたもの...
発言  kanabun  - 10/8/6(金) 17:19 -

引用なし
パスワード
   ▼けい さん:
>
>Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H
>
>これらの文字列内の名前をカウントしたいのですが

単語の数を数えるなら

 Const ss = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
 MsgBox UBound(Split(ss)) + 1

で出てきます。
(ただし、単語と単語を区切るスペースは各1つづつ という条件で)

【66178】Re:文字列内のスペースで区切られたもの...
発言  Jaka  - 10/8/6(金) 17:24 -

引用なし
パスワード
   st = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
st = Application.Trim(st)
MsgBox Len(st) - Len(Application.Substitute(st, " ", "")) + 1

Substituteを使ったけど、Replace ???でもいいです。
スペル思い出さなくて。

【66180】Re:文字列内のスペースで区切られたもの...
発言  kanabun  - 10/8/6(金) 17:27 -

引用なし
パスワード
   もし、区切りのスペースが複数個ならぶ可能性があるばあいは
ワークシート関数のTrimでそれらを1個づつに直してから、
カウントしてください。

 Dim ss As String

 ss = "Tian-P Song-XM Li-Y Duan-JD   Liang-ZD Zhang-H "
 ss = WorksheetFunction.Trim(ss)
 MsgBox UBound(Split(ss)) + 1

【66181】Re:文字列内のスペースで区切られたもの...
質問  けい  - 10/8/6(金) 18:18 -

引用なし
パスワード
   ▼kanabun さん:

早々のご回答をありがとうございました。

> Const ss = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"

この" "内の文字をセルに置き換え(複数行チェックをしたいため)
結果の数字もセルに表示させたくて、以下のようなコードを書きましたが、
定数式が必用です というエラーメッセージが出てしまいます。

 Const ss = の続きには何をどうしたらよいでしょうか。

Sub 人数()

 Dim Ninzu As String
 
 Ninzu = Cells(3, "L").Value
 
 Const ss =
 
 Cells(3, "S").Value = UBound(Split(ss)) + 1


End Sub

ご回答をお願いいたします。


>▼けい さん:
>>
>>Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H
>>
>>これらの文字列内の名前をカウントしたいのですが
>
>単語の数を数えるなら
>
> Const ss = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
> MsgBox UBound(Split(ss)) + 1
>
>で出てきます。
>(ただし、単語と単語を区切るスペースは各1つづつ という条件で)

【66182】Re:文字列内のスペースで区切られたもの...
発言  kanabun  - 10/8/6(金) 18:32 -

引用なし
パスワード
   ▼けい さん:

>> Const ss = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
>
>この" "内の文字をセルに置き換え(複数行チェックをしたいため)
>結果の数字もセルに表示させたくて、以下のようなコードを書きましたが、
>定数式が必用です というエラーメッセージが出てしまいます。

セルの値は 定数式にはセットできません。
Dim で宣言した変数に代入してください。

>Sub 人数()
>
> Dim Ninzu As String
> 
> Ninzu = Cells(3, "L").Value
> 
 Cells(3, "S").Value = UBound(Split(Ninzu)) + 1
>
>End Sub

【66183】Re:文字列内のスペースで区切られたもの...
お礼  けい  - 10/8/6(金) 18:37 -

引用なし
パスワード
   ▼kanabun さん:

書き換えてみたら、上手くいきました。
ご回答ありがとうございました。


>▼けい さん:
>
>>> Const ss = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
>>
>>この" "内の文字をセルに置き換え(複数行チェックをしたいため)
>>結果の数字もセルに表示させたくて、以下のようなコードを書きましたが、
>>定数式が必用です というエラーメッセージが出てしまいます。
>
>セルの値は 定数式にはセットできません。
>Dim で宣言した変数に代入してください。
>
>>Sub 人数()
>>
>> Dim Ninzu As String
>> 
>> Ninzu = Cells(3, "L").Value
>> 
>  Cells(3, "S").Value = UBound(Split(Ninzu)) + 1
>>
>>End Sub

【66184】Re:文字列内のスペースで区切られたもの...
お礼  けい  - 10/8/6(金) 18:38 -

引用なし
パスワード
   ▼Jaka さん:
早々のご回答をありがとうございました。
上手く出来ました。


>st = "Tian-P Song-XM Li-Y Duan-JD Liang-ZD Zhang-H"
>st = Application.Trim(st)
>MsgBox Len(st) - Len(Application.Substitute(st, " ", "")) + 1
>
>Substituteを使ったけど、Replace ???でもいいです。
>スペル思い出さなくて。

【66185】Re:文字列内のスペースで区切られたもの...
お礼  けい  - 10/8/6(金) 18:39 -

引用なし
パスワード
   ▼kanabun さん:

参考になりました。
どうもありがとうございました。

>もし、区切りのスペースが複数個ならぶ可能性があるばあいは
>ワークシート関数のTrimでそれらを1個づつに直してから、
>カウントしてください。
>
> Dim ss As String
>
> ss = "Tian-P Song-XM Li-Y Duan-JD   Liang-ZD Zhang-H "
> ss = WorksheetFunction.Trim(ss)
> MsgBox UBound(Split(ss)) + 1

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