プロが教えるわが家の防犯対策術!

セルの中に、「ALt+Enter」で複数行に折り返している文字列があって、
1行目は何文字で、折り返した2行目は何文字、3行目は何文字…
とカウントさせたいのですが…???
無理???
できましたら、具体的に記述して教えてください。

A 回答 (3件)

こんな書き方もあるということで・・・


対象セルを1つ選択して下記マクロを実行します。

Sub MojisuCount()
Dim moji As String '選択セルの内容
Dim rw As Integer '行カウンタ
Dim pot As Integer 'Instrで調べた改行コードの位置

moji = Selection & vbLf '選択セルの文字の最後に改行を付加(判定を不要にする)
pot = InStr(moji, vbLf) '改行コードの位置は?
While pot > 0 'なくなるまで続ける
rw = rw + 1 '行を進める
MsgBox rw & "行目は " & pot - 1 & " 文字です"
moji = Mid(moji, pot + 1) '改行文字の次からを新たな検索対象にする

pot = InStr(moji, vbLf) '改行コードの位置は?
Wend
End Sub
    • good
    • 0
この回答へのお礼

すばらしくうまく動いてくれました。
感激です。

あなた様の作ってくださるマクロは、ものすごく見やすいです!!!
コメントも書いていただいて、本当に感謝感激です。
これからもお世話してください。
ありがとうございました。

お礼日時:2001/08/05 15:03

Splitを使うと簡単になります。


Splitは、指定した文字で、文字列を区分けして、配列に入れてくれます。
こんな感じです。

Dim vTerm As Variant
Dim sOrg As String
sOrg = ThisWorkbook.Worksheets(1).Cells(1, 1).Value
vTerm = Split(sOrg, vbLf)
If UBound(vTerm) >= 0 Then
MsgBox (UBound(vTerm) + 1) & "行データがあります。"
Else
MsgBox "データは入っていません。"
End If

For i = 0 To UBound(vTerm)
MsgBox (i + 1) & "行目の文字数は、" & Len(vTerm(i)) & "です。"
Next
    • good
    • 0

ずばり以下のとおりです。

短時間で制作の為、変数などへんてこで分かり難いかもしれませんが。
適当に解析してねー

Dim i, j, kk, sub_K, Ssub_K, k(100) As Integer
Dim moji As String

moji = Range("b4").Value
j = Len(moji)
kk = 1
For i = 0 To j
sub_K = InStr(i + 1, moji, Chr(10))
If sub_K = 0 Then i = j: k(kk) = j - Ssub_K: Exit For Else i = sub_K
k(kk) = (sub_K - Ssub_K) - 1
Ssub_K = sub_K
kk = kk + 1
Next i
For i = 1 To kk
MsgBox k(i)
Next i
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!