Excel VBA質問箱 IV

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

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


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

【26805】文字数を数える あいんすと 05/7/18(月) 23:09 質問[未読]
【26806】Re:文字数を数える かみちゃん 05/7/18(月) 23:43 回答[未読]
【26823】Re:文字数を数える あいんすと 05/7/19(火) 23:04 お礼[未読]
【26830】Re:文字数を数える だるま 05/7/20(水) 10:55 発言[未読]
【26834】過去ログにも有るよ! Jaka 05/7/20(水) 12:42 発言[未読]
【26835】Re:文字数を数える Kein 05/7/20(水) 12:50 回答[未読]

【26805】文字数を数える
質問  あいんすと  - 05/7/18(月) 23:09 -

引用なし
パスワード
   お久しぶりです。

1つのセルにある文字の前に、半角スペースが何文字かあるセルがあるんですが、
その半角スペースの文字数を数える方法はありますか。

例)
○○○○○○DB

○・・・半角スペース
DBの前の○の数を数える方法です。

こんな感じですが出来ますでしょうか?

【26806】Re:文字数を数える
回答  かみちゃん  - 05/7/18(月) 23:43 -

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

>1つのセルにある文字の前に、半角スペースが何文字かあるセルがあるんですが、
>その半角スペースの文字数を数える方法はありますか。

こんな感じでしょうか?

Option Explicit
'半角スペースのみの場合
Sub Macro1()
 Dim strTmp As String
 Dim i As Integer
 
 strTmp = Range("A1").Value
 For i = 1 To Len(strTmp)
  If Mid(strTmp, i, 1) <> " " Then Exit For
 Next
 MsgBox "先頭に半角スペースが " & i - 1 & " 個あります"
End Sub

'全角、半角スペースの場合
Sub Macro2()
 Dim strTmp As String
 
 strTmp = Range("A1").Value
 MsgBox "先頭に半角または全角スペースが " & Len(strTmp) - Len(LTrim(strTmp)) & " 個あります"
End Sub

【26823】Re:文字数を数える
お礼  あいんすと  - 05/7/19(火) 23:04 -

引用なし
パスワード
   ▼かみちゃん さん:

>こんな感じでしょうか?

>'半角スペースのみの場合

> Dim strTmp As String
> Dim i As Integer
> 
> strTmp = Range("A1").Value
> For i = 1 To Len(strTmp)
>  If Mid(strTmp, i, 1) <> " " Then Exit For
> Next
> MsgBox "先頭に半角スペースが " & i - 1 & " 個あります"


ありがとうございます。これで、何とか先に進むことが出来ました。
For to と Midを使って、こういう操作が出来るのですね。
単純ですが、こういった応用のマクロが組める様になりたいです。

【26830】Re:文字数を数える
発言  だるま WEB  - 05/7/20(水) 10:55 -

引用なし
パスワード
   解決済のようですが、別解です。参考まで。^d^

Function HeadSpaceCount(S As String) As Integer
  HeadSpaceCount = Len(S) - Len(LTrim(S))
End Function

【26834】過去ログにも有るよ!
発言  Jaka  - 05/7/20(水) 12:42 -

引用なし
パスワード
   似たような物は、過去ログにも有ります。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8740;id=excel

【26835】Re:文字数を数える
回答  Kein  - 05/7/20(水) 12:50 -

引用なし
パスワード
   必ず "DB" という文字があり、必ずその前にある文字がスペースであるなら

Dim Num As Integer

Num = InStr(1, ActiveCell.Value, "DB")
If Num > 1 Then
  MsgBox "スペースは " & Num - 1 & " 個あります"
End If

というコードでも出来ると思います。

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