• 締切済み

ExcelVBAでコンボボックスを選択不可にする

ExcelVBAで初期表示させたときにコンボボックスが選択できないようにするにはどうしたらいいか教えて下さい。 オプションボタンが4個あり、コンボボックスが3個あります。配置のイメージは以下の通りです。 <配置イメージ> ○オプションボタン1 ○オプションボタン2【コンボボックス1】 ○オプションボタン3【コンボボックス2】 ○オプションボタン4【コンボボックス3】 <今の状態> (1)初めに開いたときはどのコンボボックスもクリックできる (2)「オプションボタン1」を選択すると、全てのコンボボックスがクリックできない (3)「オプションボタン2」を選択すると、コンボボックス1が選択できるが、他のコンボボックス2と3は選択できない。 (4)「オプションボタン3」を選択すると、コンボボックス2が選択できるが、他のコンボボックス1と3は選択できない。 (5)「オプションボタン4」を選択すると、コンボボックス3が選択できるが、他のコンボボックス1と2は選択できない。 今の状態の(1)を改善したく、どなたか教えていただきたくお願い致します。

みんなの回答

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

コントロールツールボックスで作成されたコンボボックスでの話ですが、たとえばコンボボックスの名前がComboBox1でしたら ComboBox1.Enabled = False で選択できないようになります。 選択できるようにするときは ComboBox1.Enabled = True

関連するQ&A

  • ExcelVBA コンボボックスリストのリセット

    4月からマクロを勉強し始めて、壁にぶつかっています。 ユーザーフォームでオプションボタンの下にコンボボックス(1)を、そのさらに下にもうひとつコンボボックス(2)をレイアウトしました。 コンボボックス(1)は選ばれたオプションボタンによって、異なるリストを表示させるようにしてあります。 わからないのは、コンボボックス(2)のリストをコンボボックス(1)で選ばれた文字によって変えたいのです。 たとえば、コンボボックス(1)で"A"と選択されたら、コンボボックス(2)にはリストA'が、(1)で"B"と選択されたら、(2)にはりすとB'が…、というように、場合分けさせたいのです。 方法をご存知の方がいらっしゃいましたら、ご教示ください。よろしくお願いいたします。

  • excelVBAのコンボボックスについて

    excelVBAのコンボボックスについて質問です。 ユーザーフォームに設置したコンボボックスに違うシートの特定範囲を設定するには どのようにプログラムすればよろしいでしょうか? 自分なりにいろいろ調べてみたのですが解決できませんでした。 要約すると ユーザーフォームはsheet1からボタンで起動させ(ここまでは苦もなくできました)、でてきたユーザーフォームにあるコンボボックスにsheet2にある特定範囲 また、この特定範囲をデータのある範囲だけ(データが追加されれば自動でそれを取得する)に設定することは可能ですか?

  • オプションボタン選択でコンボボックス有効

    ExcelVBAでユーザーフォームを作成しているのですが、昨日までうまく動作していたことが、突然動かなくなりました。 オプション1を選択 ↓ コンボボックス1有効  ※他のコンボボックスは無効 ↓ オプション2を選択 ↓ コンボボックス2有効  ※コンボボックス1も含め他のコンボボックスは無効 という感じで動作させたいです。 書いたコードはこんな感じです。 Private Sub OptionButton1_Click () Dim i As Long Dim lastRow As Integer lastRow = Cells(Row.Count, 1).End(xlUp).Row If OptionButton1.Value = True Then OptionButton1.Enabled = True With ComboBox1 If ComboBox1 = "" Then For i = 2 To lastRow .AddItem Worksheets("sheet1").Cells(i, 1).Value Next i End If End With ComboBox1.ListIndex = 0 ComboBox2.Enabled = False ComboBox3.Enabled = False End If End Sub コードの間違いや改善点などありましたら教えて下さい。 よろしくお願いします。

  • コンボボックスの一部のアイテムを選択不可能に

    コンボボックスの一部のアイテムが 選択不可能な状態となるコンボボックスを作成したいのです。 以下のような感じです。 コンボボックス▼ ----果物---- りんご バナナ ----野菜---- キャベツ にんじん コンボボックスの▼部分をクリックすると リストが出てくるようなイメージです。 この[----果物----]と[----野菜----]の欄は 選択しクリックしてもリストを閉じずに無反応な状態にしたいのです。 WordやExcel2007のフォント選択ダイアログ内の [テーマのフォント]、[すべてのフォント]部分に近いイメージです。 変更時に来るイベントでどうにかしようとしましたがうまくできず、 コンボボックスクラスを自作すれば出来るのかなと思いますが、 いまいちどうして良いかわからないです。 VC++2005でMFCを使っています(CComboBox) わかる方がいらっしゃいましたらお教え頂ければ幸いです。

  • コンボボックスの設定について

    コンボボックスを使用しようとしております。 設定は、styleを2-ドロップダウンにしております。 フォームをロードした際何の指定もしていない場合は空白(何も設定されていない)の状態でクリックをするとリストアップされます。←ここまでは普通です。 次に任意にボタンを作成しました。そのボタンをクリックしたら選択されているコンボボックスの設定を初期化(空白:何も設定されていない)したいのですがリストで空白を設定しないとできないのでしょうか? 説明下手ですみません。

  • ExcelVBAでコンボボックスに初期値設定

    ExcelVBAでユーザーフォームを作成しています。 表示したときにコンボボックスに「選択して下さい」と表示させる方法を教えて下さい。 コンボボックスで「2003年_H15」~「2012年_H24」が選択できて、選択するとラベルに「2002~2004年」のように表示されます。 【コンボボックス:選択】2003年_H15 【ラベル:表示】2002~2004年 コンボボックスの値はSheetから設定しています。 ユーザーフォームを表示させたときにコンボボックスに「選択して下さい」と初期値として設定するにはどうしたらよいか教えて下さい。 Sheetに追加するとかんたんなのですが、ラベルに表示させるために、以下のようなコードを書いていたりするので、うまく動きません。 Private Sub ComboBox_Change() Dim sh As Worksheet Set sh = Worksheets("Sheet1") With ComboBox If .ListIndex >= 0 Then Label.Caption = Left(sh.Cells(.ListIndex + 1, 1), 4) _ & "~" & Left(sh.Cells(.ListIndex + 3, 1), 4) & "年" End If End With End Sub よろしくお願い致します。

  • MFCでコンボボックスを選択不可状態にしたい

    ダイアログ上にあるコンボボックスを選択不可状態にしたいのですが、 良い方法が見つかりません。 どなたか良い方法ご存知でしたら、ご教授お願い致します。 なお、この場合の選択不可とは、 コンボボックス上でクリックしても、 プルダウンされず、何も反応しないことを指します。 またコンボボックスのTypeは、ドロップダウンにて作成しています。 開発環境は、VC++2005です。 また、当方MFC経験2ヶ月程度の初心者ですので、 なるべく分かりやすい解説いただけると幸いです。 お手数ですが、御回答お願いいたします。

  • エクセルVBAでコンボボックス

    エクセルVBAのコンボボックスの使い方について質問します。 実現したいプログラムは 「チェックボックスから選んだ数字で計算するプログラム」 です。 具体的には… まず、コンボボックスをシート上に配置します。そのコンボボックスには 数字の1から10を選べるようにしておきます。 次に、コマンドボタンを配置します。これは単にプログラムをスタート させる目的です。 ユーザーは、まずコンボボックスから好きな数字を選択します。 そしてスタートボタン(コマンドボタン)を押します。 すると、選んだ数字の2倍がセルに表示されます。 さらに発展系としては… チェックボックスを4つ配置します。各チェックボックス には、+、-、×、÷を割り振っておきます。 また、コンボボックスを2つ用意し、それぞれ1~10の数字をリストにします。 ユーザーは、チェックボックスから好きな記号を選び、さらにコンボボックスから 好きな数字を選びます。そしてスタートボタンを押すと、選んだ数字を選んだ記号 で計算した値がセルに表示されます。 というようなプログラムを考えているのですが、うまくできません。 ポイントは、 ・チェックボックスにリストを入力する方法 ・チェックボックスの選択状態や、リストボックスから選ばれた数字を、  変数として取得する方法 インターネットで調べているのですが、リストボックスに値を入れるのにもマクロを走らせ なければならない方法とか、ユーザーフォームでの説明ばかりでなかなか実現に至りません。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html プログラムのイメージ図としては添付の図の通りです。 どのようにプログラムを書けばいいのでしょうか。

  • コンボボックス選択で編集不可に・・・

    編集可能なコンボボックスを持つダイアログがあります。 ダイアログを開いたときに、コンボボックスに項目を追加しています。 そして、このコンボボックスのポップアップを開いて、 現在選択している項目と異なる項目を選択すると、 なぜかコンボボックスが編集不可になったようになります (いったん別のウィンドウを最善面に表示して、再度表示 しなおすと普通に編集できる) なぜこのようなことが起きるのでしょうか? 項目を選択しても、普通に編集できるようにするには どうしたらよいでしょうか? 非常に困っています。そして急いでいます。 どなたかご存知の方いらっしゃらないでしょうか? #ちなみにJavaのバージョンはJ2SE1.4.0_01を使っていま す #それと、なぜか1.4.1_01では起きませんでした。

    • ベストアンサー
    • Java
  • コンボボックスの位置取得

    今エクセルのVBAでプログラムを組んでいます。 セルA1の位置にコンボボックスを配置して コンボボックスの矢印をクリックした時に コンボボックスの配置を取得したいのですが どうすればいいのでしょうか? 上記の例で言えば コンボボックスをクリックすると列、行 (1,1)を数字で取得するようにする。