
こんにちは、画像のように左のブックから、右の別のブックに枠線と値を転記しています。
ここまでは問題なく動作しているのですが、コピー元のセルに一部背景色がついています。
ペースト先では値しか存在しないため、条件付き書式を再設定するのは合理的ではない為、コピー元で付いた背景色も同時に移植する方法はありますか?
ちなみに動作しているコードは以下のようなものです。
既に正常動作していますので、これを流用して実現できればと思います。
詳しい方、よろしくお願いいたします。
Sub CopyToNewbook()
Dim lastRow As Long
Dim wb As Workbook
Dim ws As Worksheet
Dim sourceRange As Range
Dim destRange As Range
'Get the last used row in column BP
lastRow = ActiveSheet.Cells(Rows.Count, "BP").End(xlUp).Row
'Set the source range from U3 to BP last row
Set sourceRange = Range("U3:BP" & lastRow)
'Open the Asahi Shimoitozu Mirror.xlsm file
Set wb = Workbooks.Open("C:\Users\〇〇〇\Documents\Newbook.xlsm")
'Set the destination range in the first sheet of the opened workbook to match the size of the source range
Set ws = wb.Sheets(1)
Set destRange = ws.Range("A1").Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)
'Copy the values and formatting from the source range to the destination range
sourceRange.Copy
destRange.PasteSpecial xlPasteValuesAndNumberFormats
destRange.PasteSpecial xlPasteFormats
'Auto-fit the columns in the destination range
destRange.EntireColumn.AutoFit
'Activate the destination workbook and save it
wb.Activate
wb.Save
End Sub

No.1ベストアンサー
- 回答日時:
こんにちは
セルの表示されている色(=条件付き書式の結果も含めて)は
Cell.DisplayFormat.Interior.Color
で取得することが可能です。
Cell1の表示色をCell2の背景色として設定するには、
Cell2.Interior.Color = Cell1.DisplayFormat.Interior.Color
とすることで可能です。
ただし、値とは異なり、セル範囲でまとめて取得するようなことはできませんので、範囲内の個々のセルをループして転記することが必要になります。
※ 余談ながら、DisplayFormat はユーザー定義関数では利用できませんのでご注意ください。
https://learn.microsoft.com/ja-jp/office/vba/api …
No.2
- 回答日時:
コピー元の背景色をコピー先に移植するには、コピー先に背景色を設定する必要があります。
以下は、コピー元の背景色を取得し、コピー先に設定する方法です。既存のコードに追加することができます。'Set the source range from U3 to BP last row Set sourceRange = Range("U3:BP" & lastRow)
'Copy the values, formatting, and background color from the source range to the destination range sourceRange.Copy destRange.PasteSpecial xlPasteValuesAndNumberFormats destRange.PasteSpecial xlPasteFormats For Each cell In sourceRange destRange.Cells(cell.Row - 2, cell.Column - 20).Interior.Color = cell.Interior.Color Next cell
'Auto-fit the columns in the destination range destRange.EntireColumn.AutoFit
'Activate the destination workbook and save it wb.Activate wb.Save
このコードは、コピー元のセルの背景色を取得し、その色をコピー先の対応するセルに設定します。また、既存のコードと同様に、値と書式もコピーするために、xlPasteValuesAndNumberFormatsとxlPasteFormatsを使用しています。
回答ありがとうございます。
ChatGPTで調べたコードを正しいかどうかもわからないのに回答するのはやめて下さい。
そういうのやらないほうが良いですよ、信用無くすんで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
VBAで転記すると元のシートの条件付き書式が消えてしまいます。
Excel(エクセル)
-
エクセルでマクロにてセル色と文字を他シートのセルへコピーしたい
その他(コンピューター・テクノロジー)
-
-
4
エクセル:セルのバックの色だけをコピペしたい
Excel(エクセル)
-
5
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
6
Excel VBAで、複数のシートのセルの列幅を一度に変更する方法は??
Excel(エクセル)
-
7
VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
血小板増加について
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
Excel 数値の前の「 ' 」を一括...
-
リンク先のファイルを開かなく...
-
VLOOKUP関数を使用時、検索する...
-
増減表のプラスマイナスの符号...
-
病院側から早く来てくださいと...
-
得意先負担の検査手数料の扱い
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
エクセルで数式の答えを数値と...
-
小数点以下を繰り上げたものを...
-
腕を見たら黄色くなってる部分...
-
MIN関数で空白セルを無視したい...
-
勃起する時って痛いんですか? ...
-
【Excelで「正弦波」のグラフを...
-
EXCELで条件付き書式で空白セル...
-
ワードのページ番号をもっと下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報
失礼しました、元の背景色は条件付き書式にて設定された背景色です。