1

次のコードを使用する場合:

dim Defaultcol As Long

Defaultcol = Sheets("Whatever").Cells(1, 1).Interior.Color

セルから色の書式を取得できます。

のようなものを書くこともできますか

dim FullFormat as object (Or dim FullFormat as cellformat)

set FullFormat =  Sheets("Whatever").Cells(1, 1).formats

1 つのオブジェクトでセルのすべての書式を取得しますか?

または多分

dim sourcecell as cell

set sourcecell = Sheets("Whatever").Cells(1, 1)

そして、sourcecell.formats私が使用できるプロパティを持っていますか?

前もって感謝します。

4

2 に答える 2

3

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
于 2013-12-03T13:02:36.477 に答える
1

セルの完全な書式設定をキャプチャまたはカプセル化する Object は、そのStyleです。

VBA ヘルプを参照してください。

于 2013-12-03T12:12:56.503 に答える