
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MATLABによる整定時間の求め方
-
マクロ実行後に別シートの残像...
-
Excel UserForm の表示位置
-
「段」と「行」の違いがよくわ...
-
Excel VBAでCheckboxの名前を変...
-
EXCEL VBA 文中の書式ごと複写...
-
【マクロ】実行時エラー '424':...
-
Excel VBAでのWorksheet_Change...
-
Excelで、あるセルの値に応じて...
-
VBAで別のブックにシートをコピ...
-
セルの半透明着色処理
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
URLのリンク切れをマクロを使っ...
-
EXCELのダイアログシートって、...
-
vbaで指定したセルより下の行を...
-
vba マージエリアの行数を非表...
-
エクセル 上下で列幅を変えるには
-
VBAで、特定の文字より後を削除...
-
Worksheets メソッドは失敗しま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(UWSC)エクセルのセルの値を読...
-
VBA-指定した範囲で重複しない...
-
MATLABによる整定時間の求め方
-
DHCPサーバで複数のレンジを指...
-
IPアドレスを検査する関数
-
【Excel2002VBA】Destinationを...
-
【マクロ】実行時エラー '424':...
-
「段」と「行」の違いがよくわ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで離れた列を選択して...
-
Excel UserForm の表示位置
-
マクロの「SaveAs」でエラーが...
-
特定の文字がある行以外を削除...
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
別ブックをダイアログボックス...
-
VBAマクロ実行時エラーの修正に...
-
vba 2つの条件が一致したら...
-
Excel グラフのプロットからデ...
-
Excelで、あるセルの値に応じて...
おすすめ情報
If z.DisplayFormat.Interior.Color = RGB(192, 0, 0) Thenのところまででとりあえずセルの選択まではうまくいっています.
これがコピーされていないのか,貼り付けがうまくいっていないのかわかりませんがエラーは出ていないのに貼り付けがうまくいっていません
あと,RGB(192, 0, 0)のセルはVBAの標準モジュールでセルの色を変えているもので,条件付き書式ではないです.
よろしくお願いします.
皆さんご回答ありがとうございました.
いろいろ調べましたら,「範囲を指定して背景色を取得することはできません」とのことで,
エラーは表示されないもののコピー&ペーストされないようです.
お手数をおかけして申し訳ありませんでした