オートシェイプ内テキストの改行コードは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
関連記事
- 画像・図形を最前面に表示する【ショートカットキー】
- 特定シートのオートシェイプ・画像を全て削除する【パーツ化】
- ブック内の全てのシートのオートシェイプ・画像を削除する【パーツ化】
- 文字列に改行コードが含まれるか判定する【InStr関数】
- セル内で改行/MsgBox内で改行をする【vbCr/vbLf/vbCrLf】
コメント