OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

「Alt+Enter」で折り返した文字列。1行目は何文字? 2行目は何文字?

  • すぐに回答を!
  • 質問No.107040
  • 閲覧数249
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 67% (35/52)

セルの中に、「ALt+Enter」で複数行に折り返している文字列があって、
1行目は何文字で、折り返した2行目は何文字、3行目は何文字…
とカウントさせたいのですが…???
無理???
できましたら、具体的に記述して教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

こんな書き方もあるということで・・・
対象セルを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
お礼コメント
iillyy

お礼率 67% (35/52)

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

あなた様の作ってくださるマクロは、ものすごく見やすいです!!!
コメントも書いていただいて、本当に感謝感激です。
これからもお世話してください。
ありがとうございました。
投稿日時 - 2001-08-05 15:03:00
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 22% (15/66)

ずばり以下のとおりです。短時間で制作の為、変数などへんてこで分かり難いかもしれませんが。 適当に解析してねー Dim i, j, kk, sub_K, Ssub_K, k(100) As Integer Dim moji As String moji = Range("b4").Value j = Len(moji) ...続きを読む
ずばり以下のとおりです。短時間で制作の為、変数などへんてこで分かり難いかもしれませんが。
適当に解析してねー

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


  • 回答No.3
レベル11

ベストアンサー率 49% (139/279)

Splitを使うと簡単になります。 Splitは、指定した文字で、文字列を区分けして、配列に入れてくれます。 こんな感じです。 Dim vTerm As Variant Dim sOrg As String sOrg = ThisWorkbook.Worksheets(1).Cells(1, 1).Value vTerm = Split(sOrg, vbLf ...続きを読む
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
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ