
Sheet1のうち,セルの色がRGB(192, 0, 0)のもののみSheet2の同じ行列の場所に貼り付けたいのですが以下のコードで合っているでしょうか.ご指摘をお願い致します.(セルの色がRGB(192, 0, 0)のもの以外は貼り付けないようにしたいです)
今持っているExcel2013ではエラー等はでないものの,成功しません.
標準モジュール
Sub ボタンクリック2()
Dim c, d, e, myMultipleRange As Range
Set c = Range("o3", "z32")
Set d = Range("AC3", "AN32")
Set e = Range("AQ3", "BB32")
Set myMultipleRange = Union(c, d, e)
With Sheets("Sheet1")
Dim z
For Each z In myMultipleRange
If InStr(z.Interior.Color, RGB(192, 0, 0)) > 0 Then
Worksheets("Sheet1").myMultipleRange.Copy Worksheets("Sheet2").myMultipleRange
End If
Next z
End With
End Sub
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは、横から失礼します。
回答ではありませんが、
>セルの色がRGB(192, 0, 0)のもののみSheet2の同じ行列の場所に貼り付けたいのですが
素直に解釈するとセル単位でコピペだと思うのですが
> InStr(z.Interior.Color, RGB(192, 0, 0)) > 0 を見ると1つでもあればと思わせるコードですね。
さらに、範囲が分かれている事を見るとエリア内に1つでもRGB(192, 0, 0)があれば、そのエリアをコピペ、、とも想像してしまいます。
おそらく考えすぎと思いますが、、、
本題
もしかすると、、If z.DisplayFormat.Interior.Color = RGB(192, 0, 0) Then かもと思いました。
皆さんご回答ありがとうございました.
いろいろ調べましたら,「範囲を指定して背景色を取得することはできません」とのことで,
エラーは表示されないもののコピー&ペーストされないようです.
お手数をおかけして申し訳ありませんでした
No.3
- 回答日時:
現在アクティブになっているシートがSheet1ではないとか?
なら、
Sub ボタンクリック2_test2()
Dim c as range , d as range , e as range , myMultipleRange As Range
With Sheets("Sheet1")
Set c = .Range("o3", "z32")
Set d = .Range("AC3", "AN32")
Set e = .Range("AQ3", "BB32")
Set myMultipleRange = Union(c, d, e)
Dim z as range
For Each z In myMultipleRange
If z.Interior.Color = RGB(192, 0, 0) Then
z.Copy Worksheets("Sheet2").range(z.address)
End If
Next z
End With
End Sub
かな?
度々すみません。
動作確認したら,最後の条件に合うセルまで検索したみたいなのですが,
肝心のコピーがされません...どうしたらよいでしょうか??
No.2
- 回答日時:
あ”。
でもコピペ元と先が常に同じなのはおかしくない?
もしかして
>.myMultipleRange.Copy Worksheets("Sheet2").range(myMultipleRange.address)
z.Copy Worksheets("Sheet2").range(z.address)
とか?
にわか知識でやったらいろいろ足りないものがあったみたいで...
ただ,今動作確認したのですが,sheet1のmyMultipleRangeをVBAが見たようなのですが(範囲が選択されていたので)
コピー自体がされてませんでした.どうしてでしょうか??
No.1
- 回答日時:
Sub ボタンクリック2_test()
'Dim c, d, e, myMultipleRange As Range VBでは使えるけどVBAではこのような宣言は出来ません
Dim c as range , d as range , e as range , myMultipleRange As Range
Set c = Range("o3", "z32")
Set d = Range("AC3", "AN32")
Set e = Range("AQ3", "BB32")
Set myMultipleRange = Union(c, d, e)
With Sheets("Sheet1")
Dim z as range
For Each z In myMultipleRange
If z.Interior.Color = RGB(192, 0, 0) Then
.myMultipleRange.Copy Worksheets("Sheet2").range(myMultipleRange.address)
End If
Next z
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロをご教授お願いします
-
初心者ですがセルの変更につい...
-
最大値 最小値
-
(UWSC)エクセルのセルの値を読...
-
エクセルVBAでsheet1!B2:B10ま...
-
複数のエクセルファイルとシー...
-
【マクロ】実行時エラー '424':...
-
Excelで、あるセルの値に応じて...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
エクセルでデータの比較をした...
-
Excelの文字を検索させるVBA
-
エクセル、マクロで番号を読込...
-
VBA 初心者
-
Excel2003のVBAでデータリンク...
-
複数ブックを新しいブックのShe...
-
エクセルマクロ 検索と抽出
-
EXCELでの変数によるMacro自動...
-
(印)という文字を読み込みたい。
-
エクセル、マクロの事で・・・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(UWSC)エクセルのセルの値を読...
-
【Excel2002VBA】Destinationを...
-
VBA-指定した範囲で重複しない...
-
VBでエクセルを制御したい
-
MATLABによる整定時間の求め方
-
IPアドレスを検査する関数
-
VBAでオートフィルができません
-
EXCEL VBA 別シートの文字を...
-
DHCPサーバで複数のレンジを指...
-
ExcelのVBAで教えてください。 ...
-
特定の文字がある行以外を削除...
-
「段」と「行」の違いがよくわ...
-
Excelで、あるセルの値に応じて...
-
VBA シートをコピーする際に Co...
-
vba 2つの条件が一致したら...
-
エクセルで離れた列を選択して...
-
Worksheets メソッドは失敗しま...
-
【Excel関数】UNIQUE関数で"0"...
-
B列の最終行までA列をオート...
-
EXCELのSheet番号って変更でき...
おすすめ情報
If z.DisplayFormat.Interior.Color = RGB(192, 0, 0) Thenのところまででとりあえずセルの選択まではうまくいっています.
これがコピーされていないのか,貼り付けがうまくいっていないのかわかりませんがエラーは出ていないのに貼り付けがうまくいっていません
あと,RGB(192, 0, 0)のセルはVBAの標準モジュールでセルの色を変えているもので,条件付き書式ではないです.
よろしくお願いします.
皆さんご回答ありがとうございました.
いろいろ調べましたら,「範囲を指定して背景色を取得することはできません」とのことで,
エラーは表示されないもののコピー&ペーストされないようです.
お手数をおかけして申し訳ありませんでした