|
おはようございます。
>コードを見させていただき便利なコードだと思い少し発展させる中…
>疑問点が出てきました。時間がありましたら、コメントください。
>自分なりに分かったことは、同じシート上では
>show(2)にしないとtest1のコードと絡んでしまうということです。
↑ここの意味が私にはわかりません。
>しかし、この下のコードをWith構文で出来ないかと、作成しましたが
>xlDialogPatternsには反映されず、
>Range("A15:B15").Selectのコードを入れないと同じセルを選択しません。
>With構文を生かした作成が間違っているのでしょうか。
Dialogs(xlDialogPatterns)は、選択されたセル範囲の色の設定等を行う
という機能ですよ!!そういう仕様なのですから、仕様に沿った使い方をするしか
ありません。
xlDialogPatternsに限らず、Dialogsオブジェクトの仕様には、私も少なからず
不満があります。一言で言えば、汎用性がない!!とまでは言いませんが、
汎用的ではないですね!!
以前にも、
www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=16412;id=excel
同じDialogsオブジェクトで↑この辺りでちょっと不満を漏らしています。
ともかく、これを踏まえると下記のコードは至極 自然なコードだと思いますよけど・・。
>Sub test2()
>With Range("A15:B15").Interior
> If Application.Dialogs(xlDialogEditColor).Show(2) Then
> .ColorIndex = 2
>End If
>Range("A15:B15").Select
> If Application.Dialogs(xlDialogPatterns).Show(1) Then
> End If
>End With
>End Sub
>↑のコードは希望するものが得られます
>
>↓のコードでは
>With構文…これはxlDialogPatternsが反映されません。
>Sub test2()
>With Range("A15:B15").Interior
>If Application.Dialogs(xlDialogEditColor).Show(2) Then
> .ColorIndex = 2
>End If
>End With
>
>With Range("A15:B15")
>Range("A15:B15").Select
>If Application.Dialogs(xlDialogPatterns).Show(1) Then
> .Interior.Pattern = 1
' Patternプロパティと.Show(1)の1とは何の脈絡もありませんよ
' .Interior.Pattern = 1は、網掛けなしの指定ですよね
>End If
>End With
>End Sub
疑問に思われたのですから、記述することは良いことです。
が、
この場合、コード提示して、
>↑のコードは希望するものが得られます
>
>↓のコードでは
>With構文…これはxlDialogPatternsが反映されません。
では、不十分です。
Daialogs().showメソッドでオペレータの入力を促されます。
ここで、何をするかも具体例として提示してください。
それとその操作による結果も記述してください。
これは、ふたつのプロシジャーの両方です。
(私とMikiさんで同期をとる記述を出来る限り多くする必要があります)
ここまで記述されると、何を疑問に思われているのか
具体的にわかってくると思うのですがいかがですか?
|
|