Excel VBA質問箱 IV

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

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


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

【23894】コンボボックス入力不可にするには? Jin 05/4/6(水) 19:37 質問[未読]
【23895】Re:コンボボックス入力不可にするには? Jin 05/4/6(水) 19:41 発言[未読]
【23903】Re:コンボボックス入力不可にするには? Kein 05/4/6(水) 21:29 発言[未読]
【23911】Re:コンボボックス入力不可にするには? Jin 05/4/7(木) 12:09 発言[未読]
【23915】Re:コンボボックス入力不可にするには? Kein 05/4/7(木) 13:03 発言[未読]
【23918】リストボックス検討します。 Jin 05/4/7(木) 14:45 お礼[未読]

【23894】コンボボックス入力不可にするには?
質問  Jin  - 05/4/6(水) 19:37 -

引用なし
パスワード
   EXCELのフォームのコンボボックスをセル上に配置してます。
名前の定義にて作成したセル範囲をコンボボックスにてリスト上に表示し、
選択できるような形をとっています。

そのコンボボックスで値を選択時に値を入力できてしまうところを、
入力不可にしたいのですが、良い方法があるでしょうか?

補足としまして
(NULL)
Between
>=
<=
というセルをリスト表示しております。
どの値をコンボボックスで選択したときも値が入力できてしまいます。

宜しくお願いします。

Excel97,2003のどちらでも動作させたいです。

【23895】Re:コンボボックス入力不可にするには?
発言  Jin  - 05/4/6(水) 19:41 -

引用なし
パスワード
   >補足としまして
>(NULL)
>Between
>>=
><=
>というセルをリスト表示しております。
>どの値をコンボボックスで選択したときも値が入力できてしまいます。
>

値が入力できてしまうというのは、【Between】を選択し、コンボボックス内に
「Between」と表示させる。直接またコンボボックス内を選択し、キーボードなどから
手動入力するとその入力値がはいってしまうということです。
この動作をさせたくないのですが、プロパティで設定できますでしょうか?

宜しくお願いします。

【23903】Re:コンボボックス入力不可にするには?
発言  Kein  - 05/4/6(水) 21:29 -

引用なし
パスワード
   リストボックスに変更したらどうですか ?

With ActiveSheet.ListBoxes.Add(Left, Top, Width, Height)
  .ListFillRange = "Sheet1!$A$2:$A$16"
  .〜
End With

【23911】Re:コンボボックス入力不可にするには?
発言  Jin  - 05/4/7(木) 12:09 -

引用なし
パスワード
   ▼Kein さん:
>リストボックスに変更したらどうですか ?
>
>With ActiveSheet.ListBoxes.Add(Left, Top, Width, Height)
>  .ListFillRange = "Sheet1!$A$2:$A$16"
>  .〜
>End With

Keinさん ありがとうございます。
リストボックスにした場合は上記設定で手入力不可にできるということでしょうか?
検討してみます。

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

【23915】Re:コンボボックス入力不可にするには?
発言  Kein  - 05/4/7(木) 13:03 -

引用なし
パスワード
   >リストボックスにした場合は上記設定で手入力不可にできるということでしょうか
そもそもリストボックスには、入力できるテキストボックスが付随してないのです。
コンボボックスとは、読んで字のごとくテキストボックスとリストボックスの"コンボ"
である。ということです。
で、注意点が一つあります。フォームのリストボックスには OnAction でマクロを
割り当てない方がいいです。スクロールバーを動かした瞬間にも OnAction先の
マクロが動作してしまうからです。それを回避するにはボタンを近くに配置して、
それに割り当てたマクロで

With ActiveSheet.ListBoxes(1)
  CkSt = .List(.ListIndex)
End With

などと、選択した値を取得するようにします。その後の処理も全てボタンに割り当てた
マクロに記述します。最後に

ActiveSheet.DrawingObjects.Delete

とすれば、全てのフォームコントロールが消えます。

【23918】リストボックス検討します。
お礼  Jin  - 05/4/7(木) 14:45 -

引用なし
パスワード
   度々ありがとうございます。
やってみます。

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

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