|
▼ichinose さん:
おはようございます。
最後まで読ませていただき大分判ってきました。
欲張った内容を一度に書きすぎたことや
説明が不十分で、また説明しきれない?ので、
ご迷惑をかけてしまいました。
今回は色指定のみに絞って、もう一度書かせていただきます。
先ず
Sub test1()
If Application.Dialogs(xlDialogEditColor).Show(1) Then
Range("a6:a7,c6:c7").Interior.ColorIndex = 1
End If
End Sub
test1で「色の設定」ユーザ設定タブ画面でR120,G240,B120を設定して
動作させるとtest1のセル指定範囲に「明るいグリーン」の色が指定されます。
しかし、更にtest2の指定範囲にもこの色が付きます。
次にtest2から
「色の設定」ユーザ設定タブ画面でR240,G120,B120に設定して
動作させるとtest2の指定範囲に「明るい赤」の色が付きますが、
test1の指定範囲にも同じ色が付きます。
前回の質問のこの部分です↓
>show(2)にしないとtest1のコードと絡んでしまうということです。
↑ここの意味が私にはわかりません。(ichinoseさんからのご質問)
現在のコードを利用してtest1と2の色が同じ色にならない方法があるのでしょうか。
Sub test2()
With Range("A15:B15").Interior
If Application.Dialogs(xlDialogEditColor).Show(1) Then
.ColorIndex = 1
End If
End Sub
'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
しかしながら
Sub test2()
With Range("A15:B15").Interior
If Application.Dialogs(xlDialogEditColor).Show(2) Then
.ColorIndex = 2 '~~~~
End If '~~~~
End Sub
~~~~の部分を1から2に変更するとtest1に影響を及ぼさない(絡まない)
単独の動作=つまりA15:B15に色指定が出来ます。ですから
このコードの中のColorIndex=2は色指定の意味では無いと
判断したらよいのでしょうか。あるいは「白」と理解すれば
良いのでしょうか?2を→3にすると黒になってこのコードが
生かされません。
ちなみに
Sub test10()
With Range("D6")
.Interior.ColorIndex = 2
End With
End Sub
とすると普通だったら「白」ですが、test2で実行した色が反映されます。
これはそのようなものだと理解すればよいのでしょうか
Application.Dialogs(xlDialogEditColor).Show()はそのようなものだ
と理解すればよいのでしょうか。
どこかで誤解していると思います。もしお時間がありましたらアドバイス
お願いします。
.Interior.Pattern = 1の件はよく理解できました。
有難うございました。
|
|