忍者ブログ

セルの書式を引き継いだまま改行を追加する

2020年09月24日
エクセルの資料を印刷したら、改行位置が違ってて見切れが!!

よくある話かと思います。

自分なりの対策として、
選択範囲のセルに改ページを追加する処理をしていました。

if right(R ,1) <> chr(10) then
    R =R & chr(10)     ’Each R in Selection
end if


気に入って結構使っていたのですが、書式が変わっちゃう問題が発覚。
赤字やアンダーラインがクリアされるのはまだしも、
取り消し線が復活するのはアカン!

調べたところ、Characters.Insertを使えばいいとのこと。

■回避方法
https://oshiete.goo.ne.jp/qa/8190808.html
■Charactersについて
https://excel-ubara.com/excelvba4/EXCEL_VBA_435.html
■Charactersの挙動について
https://www.relief.jp/docs/excel-vba-characters-insert.html


Sub 改行で終える()
    Dim r As Range
    For Each r In Selection
        If Right(r, 1) <> Chr(10) Then   '改行で終わっていない場合
            r.Characters(Len(r.Value) + 1).Insert (Chr(1))
        End If
    Next r
End Sub

Charactersは、スタート位置と文字数を指定する。
セルでF2押して、Ctrl+Home押して、Shift押しながら→キーを押した状態

挿入する場合は、スタート位置を文字数+1にする必要があります。



Sub 文字で終える()
    Dim r As Range
    For Each r In Selection
        Do While Right(r, 1) = Chr(10)    '改行で終わっていない場合
            r.Characters(Len(r.Value)).Delete
        Loop
    Next r
End Sub

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字