質問番号:14148951214
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14148951214
セル内の文字列の改行をVBAでプログラミングしたいと思っています。
エクセルVBAの初心者です。よろしくお願いします。特定のセル内に以下の文字列が入っていたとします。
- aaaaaaaaa+bbbbb+cccccccc+ddddddd+eeeeeee
この文字列を、
- aaaaaaaaa
- bbbbb
- cccccccc
- ddddddd
- eeeeeee
といった感じで、「+」の前で改行するには、どのようにVBAでプログラミングすればいいか、ご教授お願いします。
なお、「+」の数や、「+」と次の「+」間の文字数(上記の例だと、「a」「b」「c」とかの文字数)は全く決まっていません。初心者でうまく質問できているか不安ですが、どうかよろしくお願いします。
回答
Option Explicit Option Base 1 Sub main() Dim BeforeString As String ' 分割前文字列 Dim AfterString As Variant ' 分割後文字列配列 Dim Delimiter As String ' 区切り文字 Dim lp As Integer ' ループカウンタ ' 区切り文字設定 Delimiter = "+" ' A1セルの内容を分割前文字列にコピー BeforeString = Range("A1").Value ' 分割前文字列を区切り文字で分割 AfterString = Split(BeforeString, Delimiter) ' 文字分割ができない場合は処理終了 If UBound(AfterString) = 0 Then Exit Sub End If ' 分割後文字列配列の内容をB1セルから下にコピー For lp = 1 To UBound(AfterString) Range("B1").Offset(lp - 1).Value = AfterString(lp) Next lp End Sub
参考サイト
http://officetanaka.net/excel/vba/tips/tips62.htm
Split関数で文字列を区切る・OFFICE TANAKA
http://www.moug.net/tech/exvba/0100023.html
文字列を分割し1次元配列として返す(Split関数)・moug