Excel VBA質問箱 IV

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

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


1691 / 13646 ツリー ←次へ | 前へ→

【72577】リストボックスを選択できないように けろぽん 12/8/26(日) 7:21 質問[未読]
【72578】Re:リストボックスを選択できないように UO3 12/8/26(日) 8:14 発言[未読]
【72581】Re:リストボックスを選択できないように けろぽん 12/8/26(日) 9:59 お礼[未読]
【72582】Re:リストボックスを選択できないように UO3 12/8/26(日) 11:44 発言[未読]
【72584】Re:リストボックスを選択できないように けろぽん 12/8/26(日) 12:34 お礼[未読]
【72586】Re:リストボックスを選択できないように UO3 12/8/26(日) 13:00 発言[未読]
【72587】Re:リストボックスを選択できないように けろぽん 12/8/26(日) 16:38 質問[未読]
【72590】Re:リストボックスを選択できないように UO3 12/8/27(月) 5:03 発言[未読]
【72591】Re:リストボックスを選択できないように Yuki 12/8/27(月) 14:51 発言[未読]
【72614】Re:リストボックスを選択できないように けろぽん 12/8/28(火) 20:58 お礼[未読]

【72577】リストボックスを選択できないように
質問  けろぽん  - 12/8/26(日) 7:21 -

引用なし
パスワード
   ワークシート上にActiveXのリストボックスが配置してあるのですが、これのリストを選択できないようにすることは可能でしょうか。

選択できなくするか青く反転しないようにしたいのです。

セルの値によってリストの内容を変更しているので、EnabledをFlseにするのはダメかと思っています。

【72578】Re:リストボックスを選択できないように
発言  UO3  - 12/8/26(日) 8:14 -

引用なし
パスワード
   ▼けろぽん さん:

>セルの値によってリストの内容を変更しているので、EnabledをFlseにするのはダメかと思っています。

どうしてでしょう?
ListFillRangeで指定してあるリスト領域が変更になればEnabled をFlaseにしてあっても
リストには反映しますが?

リスト指定がListFillRangeではなく、Listに配列を直接設定するものであっても
設定し直せば、表示されているリストは変更されます。

どこかが選択されて反転した状態で False にしますと、選択された行が青くなったままですので
それが気になるなら、Value を空白に。

【72581】Re:リストボックスを選択できないように
お礼  けろぽん  - 12/8/26(日) 9:59 -

引用なし
パスワード
   ご回答ありがとうございます。

本当でした!リスト反映されています。
しかし新たな問題が出てきました。
リストボックスより大きいリストの場合、リストボックスのスクロールバーが操作できません。

何か良い方法はございませんでしょうか。

【72582】Re:リストボックスを選択できないように
発言  UO3  - 12/8/26(日) 11:44 -

引用なし
パスワード
   ▼けろぽん さん:

>リストボックスより大きいリストの場合、リストボックスのスクロールバーが操作できません。


この意味がよくわかりませんが?

シート上のActiveXリストボックスも横スクロールバーは、ColumnWidth で規定された
「列群」がリストボックスの横幅に納まらない場合に表示されます。
1つの列の文字列が納まらない場合に表示されるものではありませんので
その場合は、選んで -> キー、<-キー で動かすしかないと思います。

【72584】Re:リストボックスを選択できないように
お礼  けろぽん  - 12/8/26(日) 12:34 -

引用なし
パスワード
   ありがとうございます。

リストのデータが100件ぐらいあるのでリストボックスの高さに収まらないため、縦方向のスクロールバーが表示されます。

【72586】Re:リストボックスを選択できないように
発言  UO3  - 12/8/26(日) 13:00 -

引用なし
パスワード
   ▼けろぽん さん:

あぁ、縦方向のスクロールバーでしたか。
これについては、

・縦方向に納まりきらない場合は自動的に表示される
・表示されたスクロールバーは、当然、マウスで上下に動かすことが可能

なんですが・・・・
スクロールバーが表示されるけど、マウスで動かそうとしても動かない?

う〜んん・・・それは考えられないんですが?
念のためですが、ActiveXコントロールはデザインモードになっていると
機能しません。それは大丈夫なんですよね?

もう1つ、リストボックスのプロパティとしては、とくに初期値と変わった
「何か特殊なもの」をセットしていると言うことはありますか?

【72587】Re:リストボックスを選択できないように
質問  けろぽん  - 12/8/26(日) 16:38 -

引用なし
パスワード
   デザインモードでなくても操作できないです。

プロパティを見なおしてみましたが、LockedがTrueになっているのは関係ありますか?
あと、シートが保護されていますが保護を解除してもダメでした。
通常はスクロールバーにマウスカーソルをあてると矢印になると思いますが、+のままです。

【72590】Re:リストボックスを選択できないように
発言  UO3  - 12/8/27(月) 5:03 -

引用なし
パスワード
   ▼けろぽん さん:

Locked は関係ないと思いますが Enabled が False になっていると
動かせませんね。

ただし、マウスポンターは 矢印にはなると思いますが。

【72591】Re:リストボックスを選択できないように
発言  Yuki  - 12/8/27(月) 14:51 -

引用なし
パスワード
   ▼けろぽん さん:
>ワークシート上にActiveXのリストボックスが配置してあるのですが、これのリストを選択できないようにすることは可能でしょうか。
>
>選択できなくするか青く反転しないようにしたいのです。
>
こんにちは。
選択を無効にしています。
該当のシートモジュールに
Private Sub ListBox1_Change()
  Application.EnableEvents = False
  If Me.ListBox1.ListIndex <> -1 Then
    DoEvents
    Application.OnTime Now(), "ListBoxNoSet"
  End If
  Application.EnableEvents = True
End Sub

標準モジュールに
Sub ListBoxNoSet()
     '↓該当のSheet
  With Sheet1.OLEObjects("ListBox1").Object
    .ListIndex = -1
  End With
End Sub

【72614】Re:リストボックスを選択できないように
お礼  けろぽん  - 12/8/28(火) 20:58 -

引用なし
パスワード
   ありがとうございます。

リストを反転しないようにできました。

コードの意味が分かるように勉強します。

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