こんにちは、画像のように左のブックから、右の別のブックに枠線と値を転記しています。
ここまでは問題なく動作しているのですが、コピー元のセルに一部背景色がついています。
ペースト先では値しか存在しないため、条件付き書式を再設定するのは合理的ではない為、コピー元で付いた背景色も同時に移植する方法はありますか?
ちなみに動作しているコードは以下のようなものです。
既に正常動作していますので、これを流用して実現できればと思います。
詳しい方、よろしくお願いいたします。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
ある範囲のセルから任意の値を...
-
検便についてです。 便は取れた...
-
2つの数値のうち、数値が小さい...
-
一番多く表示のある値(文字列...
-
精液の落とし方を教えてください
-
エクセル指定した範囲からラン...
-
エクセルのラベルの値(文字列...
-
EXCELで条件付き書式で空白セル...
-
値が入っているときだけ計算結...
-
MIN関数で空白セルを無視したい...
-
甲状腺が腫れているが血液検査...
-
エクセルで数式の答えを数値と...
-
テスターで断線を調べる方法教...
-
エクセルでθを求めたい。
-
小数点以下を繰り上げたものを...
-
中出しをするとお腹が痛い・・・。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
これって喉仏ですか? 私は女性...
-
中出しをするとお腹が痛い・・・。
-
甲状腺が腫れているが血液検査...
-
2つの数値のうち、数値が小さい...
-
尿検査前日に自慰行為した時の...
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
ある範囲のセルから任意の値を...
-
口の中に黒い血の塊
-
【Excelで「正弦波」のグラフを...
-
エクセル指定した範囲からラン...
おすすめ情報
失礼しました、元の背景色は条件付き書式にて設定された背景色です。