Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12009 / 76734 ←次へ | 前へ→

【70253】Re:ドロップダウンリスト
質問  悩める老人  - 11/10/24(月) 5:20 -

引用なし
パスワード
   ▼悩める老人 さん:
>▼ichinose さん:
>>まず、最初に投稿した下記のコードの意味を理解してください。
>>イベントモジュールに入れ込むのは、その後です。
>>本来は、最初の投稿の
>>>入力規則のリスト内容の変更自体は、VBAはなくてもできます。
>>を実現できなかった見たいだったので、入力規則だけで
>>別のセルの甲 乙の選択によって、当該セルのリスト内容を変えることができることを
>>VBAで実演したコードです。
>>
>>20行程度のコードですから、1行1行何をしているのか理解してください。
>>そうすれば、
>>例えば、Sheet2に設定しているデータは、どこかのタイミングで
>>1度実行するか、予めVBAではなく、事前に設定するだけでよい事が
>>理解していただけるはずです。
>>>sheet1のA列をダブルクリックしたところ、B列には 甲、乙のドロップダウンリストが生成
>>>しかしながら このセル で 甲あるいは乙を選択しても C列にはドロップダウンリス
>>>トが生成しませんでした。
>>これも下記コードの入力規則を設定しているコードを良く調べてください。
>>
>>特にどのセルの入力規則に元の値としてどんな数式を設定しているのか
>>その関係を良く見てください。
>>
>>>本来は該当行(列Aでダブルクリックした行)だけにドロップダウンリストを作成したいと思っています。
>>
>>でしたら、
>>
>>>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>>
>>このイベント内で入力規則の設定をする仕様を改めることです。
>>上記のイベントは、どんなときに発生するのですか?
>>そのことを考えてみてください。
>>他のイベントもどのタイミングで発生するのか再度調べてください。
>>
>>
>>申し訳ありませんが、私は、そのまま使えるコードの提示は、
>>極力しない投稿をここのところ心がけていますので、
>>ご理解ください
>>
>>
>>>>>'==================================================
>>>>>Option Explicit
>>>>>Sub test()
>>>>>  With Sheets("Sheet2")
>>>>>    .Range("a1:b5").Value = [{"a","f";"b","g";"c","h";"d","i";"e","j"}]
>>>>>    .Range("c1:c2").Value = [{"甲";"乙"}]
>>>>>    With Range("a1").Validation
>>>>>      .Delete
>>>>>      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
>>>>>                xlBetween, Formula1:="=indirect(""sheet2!c1:c2"")"
>>>>>    End With
>>>>>    With Range("B1").Validation
>>>>>     .Delete
>>>>>     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
>>>>>               xlBetween, Formula1:= _
>>>>>        "=if(a1=""甲"",indirect(""sheet2!a1:a5""),indirect(""sheet2!b1:b5""))"
>>>>>    End With
>>>>>  End With
>>>>>End Sub
>
>ichinose 様
>
>アドバイスありがとうございました。
>じっくり検討させていただきます。
>時間が多少掛かるかもしれませんが
>宜しくお願いします。

ichinose様

申し訳ありません。
追加です。
気にはなっていましたが、
 With Range("a1").Validation
 With Range("B1").Validation
では コード上、sheet1 を指定してませんが
これで 何故 sheet1の
セルA1およびセルB1の入力規制の削除、設定が
できるのでしょうか。
この設定するシートがもしsheet3だった場合、
どうなるのでしょうか。
3 hits

【70238】ドロップダウンリスト 悩める老人 11/10/22(土) 22:56 質問
【70239】Re:ドロップダウンリスト ichinose 11/10/22(土) 23:21 発言
【70241】Re:ドロップダウンリスト 悩める老人 11/10/23(日) 6:13 質問
【70243】Re:ドロップダウンリスト ichinose 11/10/23(日) 10:14 発言
【70248】Re:ドロップダウンリスト 悩める老人 11/10/23(日) 19:48 質問
【70249】Re:ドロップダウンリスト 悩める老人 11/10/23(日) 19:57 質問
【70251】Re:ドロップダウンリスト ichinose 11/10/23(日) 23:45 発言
【70252】Re:ドロップダウンリスト 悩める老人 11/10/24(月) 4:50 発言
【70253】Re:ドロップダウンリスト 悩める老人 11/10/24(月) 5:20 質問
【70254】Re:ドロップダウンリスト ichinose 11/10/24(月) 7:28 発言
【70266】Re:ドロップダウンリスト 悩める老人 11/10/24(月) 23:59 質問
【70267】Re:ドロップダウンリスト ichinose 11/10/25(火) 6:38 発言
【70269】Re:ドロップダウンリスト 悩める老人 11/10/26(水) 12:45 お礼

12009 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free