Excel VBA質問箱 IV

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

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


21005 / 76732 ←次へ | 前へ→

【61134】Re:ドロップダウン
発言  kanabun  - 09/4/10(金) 19:34 -

引用なし
パスワード
   ▼おばさん さん:

>以下のようにして見ましたが、
>Range("D:D")の所では、DropDownしません。
>他に何か原因あるでしょうか?

>Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
>    If Not Intersect(Target, Range("A:A")) Is Nothing Then
>     If Not Intersect(Target, Range("A:J")) Is Nothing Then
>         UserForm1.Show 0
>         UserForm1.ComboBox1.DropDown
>   ElseIf Not Intersect(Target, Range("D:D")) Is Nothing Then
>         UserForm1.ShowShow 0
>         UserForm1.ComboBox3.DropDown
>    End If
>   End If
> End If
>End Sub

このプロシージャって、End Ifが不必要に多く、構文エラーになってませんか?
インデントをきちんとつけて、
Ifに対応する End Ifが どのEnd If文 なのかを一目見て分かるようにしておく
ことをお勧めします。
で、
おやりになりたいことは日本語でいうとどういうことになりますか?
仮に、
 カーソルが A列に移動したら、ComboBox1をドロップダウンさせる。
 カーソルが D列に移動したら、ComboBox3 をドロップダウンさせる。
という2つの分岐なら、

>     If Not Intersect(Target, Range("A:J")) Is Nothing Then

は不要で、

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
                     ByVal Target As Range)
  If Not Intersect(Target, Range("A:A")) Is Nothing Then
     'If Not Intersect(Target, Range("A:J")) Is Nothing Then
       UserForm1.Show 0
       UserForm1.ComboBox1.DropDown
  ElseIf Not Intersect(Target, Range("D:D")) Is Nothing Then
       UserForm1.Show 0
       UserForm1.ComboBox3.DropDown
  End If
  'End If
  'End If
End Sub

と記述するだけで、
Selectionが A列に移ったときには ComboBox1.dropDownメソッドが働き、
Selectionが D列に移ったときには ComboBox3がdropDownされると思いますが?
2 hits

【61120】ドロップダウン おばさん 09/4/10(金) 11:54 質問
【61122】Re:ドロップダウン kanabun 09/4/10(金) 12:12 発言
【61125】Re:ドロップダウン おばさん 09/4/10(金) 13:19 質問
【61134】Re:ドロップダウン kanabun 09/4/10(金) 19:34 発言
【61143】Re:ドロップダウン おばさん 09/4/11(土) 10:51 お礼
【61127】Re:ドロップダウン Jaka 09/4/10(金) 13:26 発言
【61131】Re:ドロップダウン おばさん 09/4/10(金) 16:24 お礼

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