[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『vbaで文字を追記すると色が初期化されてしまう』(みる)
vbaでセルに対して文字列を追記したいのですが、
追記すると、すでに入力してある内容の色が黒に戻ってしまいます。
例
あいうえお
かきくけこ
と入力されたセルがあって(あいうえおは黒、かきくけこは赤になっています)
このセルに対して
xxx.Cells( x, x ).Value = xxx.Cells( x, x ).Value & vbCrlf & "さしすせそ"
とすると、文字列は追記されるのですが、色の設定が初期化されてしまいます。
どのようにすれば
元の色情報を残したまま文字列を追記できますでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
記録すると、、↓こんなコードが出来ますので、、 文字を入力した後にもう一度お好みの様にフォントを設定すればいいと思います。。。けど?
すみません。。ヒントだけで、、、 Sub Macro1() ' ' Macro1 Macro '
'
ActiveCell.FormulaR1C1 = "あいうえお" & Chr(10) & "かきくけど"
With ActiveCell.Characters(Start:=1, Length:=6).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
With ActiveCell.Characters(Start:=7, Length:=5).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color = -16776961
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("C3").Select
End Sub
(SoulMan) 2019/03/22(金) 11:02
こちらの都合で分割ですまない。
A1セルが対象だとして。
Sub tst()
Dim WK_STR() As String
Dim WK_LNG As Integer
Dim LOOP_CNT As Integer
(ねむねむ) 2019/03/22(金) 11:12
WK_LNG = Len(Range("A1"))
ReDim WK_STR(WK_LNG)
For LOOP_CNT = 1 To WK_LNG
WK_STR(LOOP_CNT) = Range("A1").Characters(Start:=LOOP_CNT, Length:=1).Font.Color
Next
Range("A1").Value = Range("A1").Value & vbCrLf & "さしすせそ"
For LOOP_CNT = 1 To WK_LNG
Range("A1").Characters(Start:=LOOP_CNT, Length:=1).Font.Color = WK_STR(LOOP_CNT)
Next
End Sub
(ねむねむ) 2019/03/22(金) 11:13
ではどうだろうか? (ねむねむ) 2019/03/22(金) 11:13
追加した文字列には手前文字の書式が引き継がれるので、
Sub test()
With Range("a1").Characters(Len(Range("a1")) + 1)
.Text = vbLf & "さしすせそ"
.Font.ColorIndex = xlAutomatic
End With
End Sub
(seiya) 2019/03/22(金) 11:21
seiyaさんのVBAでセルの1行目の頭から色がついている(自動になっていない)場合にどうなるか試してみてもらえないだろうか? 私のところでは(Windows10+Excel2010)その場合に色が黒に戻ってしまっている。 (ねむねむ) 2019/03/22(金) 11:36
こちら xl2013 Win10
A1に あいうえお Font Color 赤 で実行すると
あいうえお さしすせそ
となり、一旦全て赤になり、追加分を黒に戻す。
となりますが? (seiya) 2019/03/22(金) 11:45
すまない。 言葉が足らなかった。 例のような文字列の一部色付けで先頭から途中まで色を付けた状態で試してみてくれ。 (ねむねむ) 2019/03/22(金) 11:48
>試してみてくれ
ふざけんなよ。 (seiya) 2019/03/22(金) 11:50
そうか。 じゃあとりあえずseiyaさんのVBAは一部色付けで先頭から色を変えている場合はうまくいかないようだ。 (ねむねむ) 2019/03/22(金) 11:53
>xxx.Cells( x, x ).Value = xxx.Cells( x, x ).Value & vbCrlf & "さしすせそ"
With Cells(x, x)
.Characters(1, 0).Insert " "
With .Characters(Len(.Value) + 1)
.Text = vbLf & "さしすせそ"
.Font.ColorIndex = xlAutomatic
End With
.Characters(1, 1).Delete
End With
(seiya) 2019/03/22(金) 12:05
コード編集: 13:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.