2016-05-20 13 views
0

新しいブックで2枚のシートをコピーするマクロを作成したいとします。 新しい作成されたブックのテーマの色は異なります。新しいブックにExcelのテーマカラーをコピーする

Sub Export_File() 
Dim Wb3 As Workbook 
Dim strSaveName As String 

strSaveName = Worksheets("Communication").Range("a2").Value 
Set Wb3 = ThisWorkbook 

'copy sheets to new workbook 
Sheets(Array("Auswertung", "Communication")).Copy 
ActiveWorkbook.SaveAs strSaveName 

Workbooks(Wb3).Colors = Workbooks(strSaveName).Colors 

End Sub 

この行は私のために動作しません:

Workbooks(Wb4).Colors = Workbooks(strSaveName).Colors 

私はそれが...

挨拶

を助ける必要がある設定WB4 =はThisWorkbookとは何かを持っていると思いますenter image description here

答えて

0

Worksheet.Copyは値のみがかかりますが、あなたは別のシートからセルの範囲をコピーするスクリプトを設定する場合は、値と形式の両方をコピーするPasteSpecialを使用することができます - たとえばthis post

Worksheets(1).Cells(i, 3).Copy 
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteFormats 
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteValues 
+1

お返事ありがとうございました。しかし、これはブックのカラーパレット/テーマカラーをコピーしません。このコードは私と同じ効果があります。 – Bluesector

1

からこれはと表示されます私のために働いて、ブックのテーマをコピーする:

' copy the colors and themes 
    ' 
    resultWorkbook.Colors = sourceWorkbook.Colors 
    'Theme is not the same as colors 
    Dim sourceTheme As Microsoft.Office.Core.ThemeColorScheme = sourceWorkbook.Theme.ThemeColorScheme 
    Dim resultTheme As Microsoft.Office.Core.ThemeColorScheme = resultWorkbook.Theme.ThemeColorScheme 

    For i = 1 To sourceTheme.Count ' there are 12 theme colors: https://msdn.microsoft.com/en-us/library/aa432704(v=office.12).aspx 
     'Debug.WriteLine(String.Format("{0, -2} ~ {1}", i, sourceTheme.Colors(i).RGB)) 
     resultTheme.Colors(i).RGB = sourceTheme.Colors(i).RGB 
    Next i 
関連する問題