MSND のガイドを使用して、セルの基本的な書式設定をコピーする方法があります。
上記はVBAに関しては回避策かもしれませんが、セルのスタイル/フォーマットを直接コピーする方法はありません。
オブジェクトにスタイルが保存されていることは事実ですが、Style
オブジェクトを使用してセル間で書式設定をコピーおよび適用できるメソッドは存在しません (少なくとも私は知りません)。Style
VBAを使用した回避策があります
1 つの方法は、String
引数を使用してコピーfrom
することto
です。
Private Sub CopyFormatting(fromRng As String, toRng As String)
Application.ScreenUpdating = False
Dim tmpVal
tmpVal = Range(toRng)
Range(fromRng).Copy Range(toRng)
Range(toRng) = tmpVal
Application.ScreenUpdating = True
End Sub
そしてそれを次のように呼び出します
Sub Main()
CopyFormatting "A1", "A10"
End Sub
これにより、セルをコピーして貼り付けるだけの多くのオンラインガイドとは異なり、フォーマットがコピーされ、値が保持されます
より良い方法はRange
、異なるシート間などで使用できるように、オブジェクトへの参照を渡すことです.
例
Option Explicit
Sub Main()
Dim rng1 As Range, rng2 As Range
Set rng1 = Sheets(1).Range("B3")
Set rng2 = Sheets(2).Range("A1")
CopyFormatting rng1, rng2
End Sub
Private Sub CopyFormatting(fromRng As Range, toRng As Range)
Application.ScreenUpdating = False
Dim tmpVal
tmpVal = toRng
fromRng.Copy toRng
toRng = tmpVal
Application.ScreenUpdating = True
End Sub