上記の答えはまったく問題ありません。関連しているので、妻のマクロの書式設定の問題を解決するために書いた同様のルーチンを含めたいと思いました。
彼女の状況では、文字列を統合し、連結を vbCrLf (Chr(10)) で区切られた単一のセルに書き込んで、最終出力で次のように表示されます。
カテゴリ番号 1:
カテゴリ # 2:
カテゴリ 3:
各カテゴリの長さは異なり、カテゴリの数はセルごとに異なる場合があります。貼り付けられたサブルーチンはうまく機能しました
Sub BoldCategory()
RowCount = ActiveSheet.UsedRange.Rows.Count
Set MyRange = ActiveSheet.Range(Cells(2, 1), Cells(RowCount, 1))
For Each Cell In MyRange
i = 1
LineBreak = 1
Do While LineBreak <> 0
EndBoldPoint = InStr(i, Cell.Value, ":") + 1
BoldLength = EndBoldPoint - i
Cell.Characters(Start:=i, Length:=BoldLength).Font.FontStyle = "Bold"
LineBreak = InStr(i, Cell.Value, Chr(10))
i = LineBreak + 1
Loop
Next Cell
End Sub
したがって、「:」は、終点を取得するためにキー入力していた文字です。Chr(10) は、1 行が終了して次の行が開始されたときに教えてくれました。最後の行に到達すると、instr は 0 を返したため、while ループは終了します。