Excel VBA質問箱 IV

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

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


11995 / 76734 ←次へ | 前へ→

【70267】Re:ドロップダウンリスト
発言  ichinose  - 11/10/25(火) 6:38 -

引用なし
パスワード
   おはようございます。


>ところが、初回の試行(真っ新のシート)の後で 試行を繰り返す場合、この Delete で一度 プルダウンリストが 削除される筈と思いますが、F8 のステップワイズでコードとセルの関係を追跡しても 削除されている様子が見えません。
>何故でしょうか。
新規ブックにて(Sheet1、Sheet2というシート名が存在する)、

標準モジュールに

'=======================================================
Sub test()
  With Worksheets("Sheet2")
    .Range("a1:b5").Value = [{"a","f";"b","g";"c","h";"d","i";"e","j"}]
    .Range("c1:c2").Value = [{"甲";"乙"}]
  End With
  With Worksheets("sheet1")
    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
'==========================================================
Sub test2()
  With Worksheets("sheet1")
    .Range("a1").Select
    With .Range("a1").Validation
     .Delete
    End With
    With .Range("B1").Validation
     .Delete
    End With
  End With
  
End Sub


testを実行すれば、A1,B1に入力規則が設定されます。
test2では、入力規則の削除を行っていますが、A1のドロップダウンが残っています。
選択も出来てしまいます。

私は、非表示し忘れだと思います!!
まっ、A2を選択して、再度、A1を選択すれば、今度は、表示されないので
仕様だと言い張るのかなあ・・・、MS社は。


Sub test2()
  With Worksheets("sheet1")
    .Range("a1").Select
    With .Range("a1").Validation
     .InCellDropdown = False
     .Delete
    End With
    With .Range("B1").Validation
     .InCellDropdown = False
     .Delete
    End With
  End With
End Sub

このようにすれば、大きい問題はなさそうなので、良しとしますか?


>
>また、イベント駆動の方での1つのトラブル(B列へのドロップダウンリスト作成の暴走は sheet.change の コードがあるため、 Sub 〜 End Sub が
>1件づつで終了せず、イベント発生が無限ループに落ちっていることが分かりました。
解決したのなら、良いですが・・・、

  Application.EnableEvents というプロパティを調べてください。


  Application.EnableEvents = False


  とすれば、


  Application.EnableEvents = True

  にするまで、Excelイベントが発生しません。


>ただ、この段階ではC列にプルダウンリストが作成されません。
>引き続き検討します。 
ですね。
よく入力規則の設定セルとそこで設定している数式を良く調べて見てください。
6 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 お礼

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