VBATips

オートシェイプ内テキストの改行コードはvbLF【図形】【ExcelVBA】

オートシェイプ内テキストの改行コードはvbLFである

備忘録です。
オートシェイプ内に文字入力をする案件がありました。

————–
①マクロで改行コードを入力
②改行コードの位置を判定する
③1行目の処理と2行目の処理を分ける
————–

上記のような処理があったのですが、どうしてもうまくいかない。
調べた結果、改行コードを「vbCrLF」で入力していたことが原因でした。

Public Sub sample()
    '■図形オートシェイプに123 改行(vbCrLf) 456を入れる。
    ActiveSheet.Shapes(1).TextFrame.Characters.Text = "123" & vbCrLf & "456"

    '■図形オートシェイプの文字列から「vbCrLf」の位置を判断する→結果0
    Debug.Print InStr(ActiveSheet.Shapes(1).TextFrame.Characters.Text, vbCrLf)

    '■図形オートシェイプの文字列から「vbLf」の位置を判断する→結果4
    Debug.Print InStr(ActiveSheet.Shapes(1).TextFrame.Characters.Text, vbLf)

    '結果、vbCrlfで反映してもvbLfで保持される。
End Sub

関連記事

 

コメント

タイトルとURLをコピーしました