Excel VBA質問箱 IV

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

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


6399 / 13644 ツリー ←次へ | 前へ→

【45408】ListIndexについて rolly 06/12/22(金) 12:15 質問[未読]
【45409】Re:ListIndexについて Jaka 06/12/22(金) 12:43 発言[未読]
【45410】書き忘れた Jaka 06/12/22(金) 12:53 発言[未読]
【45412】Re:ListIndexについて rolly 06/12/22(金) 13:35 質問[未読]
【45413】Re:ListIndexについて Jaka 06/12/22(金) 15:19 発言[未読]
【45417】Re:ListIndexについて rolly 06/12/22(金) 16:18 お礼[未読]

【45408】ListIndexについて
質問  rolly  - 06/12/22(金) 12:15 -

引用なし
パスワード
   こんにちわ。

セルをダブルクリック時にフォーム(list1)を表示し、
そのセルのコードに該当する値を選択状態にしたいのですが、
コードとは別の部分が選択されてしまします。
しかも、なぜか決まったセルの場合だけ。。。
ブレークポイントをいれながらだと上手くいくのですが・・・

Private Sub UserForm_Activate()
  list1.SetFocus
  code = ActiveSheet.ActiveCell.value
  If code = "" Then
    list1.ListIndex = -1
  Else
    list1.ListIndex = code
  End If
end sub

なにか設定が悪いのでしょうか?
よろしくお願い致します。

【45409】Re:ListIndexについて
発言  Jaka  - 06/12/22(金) 12:43 -

引用なし
パスワード
   >code = ActiveSheet.ActiveCell.Value
アクティブシートのアクティブセルなんてものは無いです。
エクセルから見たらアクティブセルは1つだけです。

Private Sub UserForm_Activate()
  list1.SetFocus
  code = ActiveCell.Value
  No = Application.Match(code, list1.List, 0)
  If IsError(No) Then Exit Sub
  list1.ListIndex = No - 1
End Sub

【45410】書き忘れた
発言  Jaka  - 06/12/22(金) 12:53 -

引用なし
パスワード
   >  No = Application.Match(code, list1.List, 0)
>  If IsError(No) Then Exit Sub
この方法は、リスト数が5800ちょいだっけか?ぐらまでしか使えません。
たくさんある場合は、こんな感じに1こ1こ比較する。

For i = 0 To list1.ListCount - 1
  If list1.List(i) = "xxxxx" Then

  end if
Next

【45412】Re:ListIndexについて
質問  rolly  - 06/12/22(金) 13:35 -

引用なし
パスワード
   Jakaさん、ありがとうございます。
選択状態にするほうは
>For i = 0 To list1.ListCount - 1
>  If list1.List(i) = "xxxxx" Then
>
>  end if
>Next
こんな感じのFOR文でうまくいくのですが、
codeがカラの場合は、どこも選択したくないのに
なぜかどこかが選択されてしまいます・・・

list1.ListIndex = -1
だけにしても選ばれています。
決まってリストの1番下か下から2番目が。
これもブレークポイントをいれてするとうまくいくのですが。。。

なにかわかる方お願いします。

【45413】Re:ListIndexについて
発言  Jaka  - 06/12/22(金) 15:19 -

引用なし
パスワード
   >codeがカラの場合は、どこも選択したくないのに
>なぜかどこかが選択されてしまいます・・・
これって、点線で囲まれたやつですよね。
他のオブジェクトにフォーカスを持たせれば、消えるみたいです。
または、リストボックスのプロパティにてタブのインデックス番号を変えるとか...。
タブオーダーでも良いし。

【45417】Re:ListIndexについて
お礼  rolly  - 06/12/22(金) 16:18 -

引用なし
パスワード
   Jakaさんありがとうございます。
ボタンにフォーカスをうつすようにしたら
選択されないようになりました。
長いこと悩んでたので(^^;大変助かりました。

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