アプリ版:「スタンプのみでお礼する」機能のリリースについて

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)の文字にすでに取消線が設定されている場合にそれが外れたり、元々ついていなかったのについたりします。
書式設定を保持したままセル内の文字を追記することは可能でしょうか?
何卒ご教示のほどよろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2015/03/19 19:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A