• 締切済み

VBA 書式設定を保持したままセル内の文字を追記

EXCEL2010で医療系マクロを作っています。 CheckBox1は、Selection.Offset(0, -1)のセル内の文字を取消線にする為のチェックボックスです。 TextBox11は、Selection.Offset(0, -1)のセル内の文字の下に追記する為のテキストボックスです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If CheckBox1 = True Then ' ' '取消線がある場合 Selection.Offset(0, -1).Characters(InStr(Selection.Offset(0, -1), vbLf), 1000).Font.Strikethrough = True Selection.Offset(0, -1).Value = Selection.Offset(0, -1).Value + vbLf + TextBox11.Value ' ' '☆追記して改行以降を取消し追記を解除 Else ' ' '取消線がない場合 Selection.Offset(0, -1).Value = Selection.Offset(0, -1).Value + vbLf + TextBox11.Value ' ' '☆追記 End If ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ この場合、Selection.Offset(0, -1)の文字にすでに取消線が設定されている場合にそれが外れたり、元々ついていなかったのについたりします。 書式設定を保持したままセル内の文字を追記することは可能でしょうか? 何卒ご教示のほどよろしくお願いします。

みんなの回答

回答No.1

Excel2007でしか試していませんが、 次のようにすると元々入っていたテキストの書式設定を維持して テキストを追加できるようです。 追加したテキストの書式は、元のテキストの末尾の書式と同じになります。 '------------------------------------------------------------------- Sub sample()   Dim srcLen As Integer '元の文字列の長さ   Dim tgtCell As Range '対象セル   Set tgtCell = Selection.Offset(0, -1)   srcLen = Len(tgtCell.FormulaR1C1)   tgtCell.Characters(srcLen + 1).Insert (vbLf & "あああ") '末尾にテキストを追加 End Sub

関連するQ&A