Excel VBA質問箱 IV

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

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


12014 / 76734 ←次へ | 前へ→

【70248】Re:ドロップダウンリスト
質問  悩める老人  - 11/10/23(日) 19:48 -

引用なし
パスワード
   ▼ichinose さん:
>>アドバイスに従い試してみました。
>>第1のセル(プルダウンリスト作成後)がブランクの時
>> 第2のセルは a
>>第1のセルで 甲 を 選択すると 第2のセルは A
>>第1のセルで 乙 を 選択すると 第2のセルは a
>>となります。
>>第2のセルには A か a のみが入力されることになります。
>
>では、新規ブックにて(Sheet1,Sheet2というシートは、最低存在するブック)、
>
>標準モジュールに
>
>'==================================================
>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
>
>上記のtestを実行してみてください。
>
>正常に終了すれば(すぐに終わります)、
>
>Sheet1の A1、B1にて試してみてください。
>
>正常に作動するようでしたら、A1,B1の入力規則を確認して下さい。


ichinose 様:

さっそくのアドバイスありがとうございます。
module1に

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

を入力してこれを実行すると期待通りの挙動を示しました。

ありがとうございました。

これを活かして
sheet1のA列に入力があるとB列にドロップダウンリスト生成
B列での選定が終わるとC列にドロップダウンが生成(B列の選定の種類に依存)
するようなコード作成のために

sheet1のworksheetに
下記のコード を入力し

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 1 Then
    Cells(Target.Row, 1) = Date
  End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 Then
    Cells(Target.Row, 2).Select
  ElseIf Target.Column = 2 Then
    Cells(Target.Row, 3).Select
  End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 2 Then
    With Sheets("Sheet2")
      .Range("c1:c2").Value = [{"甲";"乙"}]
      With Cells(Target.Row, 2).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                  xlBetween, Formula1:="=indirect(""sheet2!c1:c2"")"
      End With
    End With
  ElseIf Target.Column = 3 Then
    With Sheets("Sheet2")
      .Range("a1:b5").Value = [{"a","f";"b","g";"c","h";"d","i";"e","j"}]
      With Cells(Target.Row, 2).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 If

End Sub

sheet1のA列をダブルクリックしたところ、B列には 甲、乙のドロップダウンリストが生成
しかしながら このセル で 甲あるいは乙を選択しても C列にはドロップダウンリストが生成しませんでした。

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 お礼

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