• ベストアンサー

Excel VBAにて

nishi6の回答

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

ComboBox1でリストを選択した時に、TextBox1に選択したリストを書き込む例です。 ComboBox1.List(ComboBox1.ListIndex)で取得できます。 Private Sub ComboBox1_Change()   TextBox1 = ComboBox1.List(ComboBox1.ListIndex) End Sub >ListIndexでCaseのナンバーが指定できません。 意味がよく分かりませんが、選択されたリストを探そうとしているのでしょうか。 ListBoxならSelectedプロパティがあるんですが。ComboBoxではListIndexを使うのが普通のような気がします。 >チェックボックスの引数・・・・ VBE画面で、表示→プロパティウインドウでたくさん表示されますが、引数とはこのことでしょうか。 ちなみに、選択したら、CheckBox1.Value は Trueです。

関連するQ&A

  • EXCEL VBA コンボボックスでのLISTINDEXの値

    初めて質問させていただきます。 EXCEL VBAでコンボボックスを設定したときのLISTINDEXの値についてですが、 コンボボックスがフォーム内に3つ(ComboBox1,2,3)あり、次のようなコードの入力を行い、 ComboBox1 Sub Userform_Intialize()  With CcomboBox1   AddItem"AAA" '・・・ここの値は0ですね   AddItem"BBB" '・・・ここの値は1ですね  End With End Sub sub ComboBox1_Change()  Me.combobox2.Clear  Select Case Me.ComboBox1.ListIndex   Case 0   Me.ComboBox2.AddItem "2AAA" '・・・ここの値は0ですね    Me.ComboBox2.AddItem "2BBB" '・・・ここの値は1ですね   Case 1   Me.ComboBox2.AddItem "2CCC" '・・・ここの値は何になりますか?   Me.ComboBox2.AddItem "2DDD" '・・・ここの値は何になりますか?  End Select End Sub このcombobox2の4つの項目から、 更にcombobox3の選択項目に分岐するように設定したいのです。 わかりやすいように、ComboBox3もComboBox2のように作成したいのですが、 このように入力した場合、ComboBox2で"2CCC"を選択した場合、 ListIndexの値が2ではないようなのです。 この"2CCC"と"2DDD"のListIndex値はいくつになるのでしょうか? どなたか教えて下さい。

  • VBA 一つ前の動作を無効にするには??

    エクセル2002使用です。 ユーザーフォームにコンボボックス1、コンボボックス2のを2つ並べました。 コンボボックス2はコンボボックス1の値によって違う値を取得するため、 コンボボックス1に必ず入力がなければなりません。 そこで Private Sub ComboBox2_DropButtonClick() If ComboBox1.ListIndex = -1 Then MsgBox "コンボボックス1を入力してください" End If end sub としましたが、DropButtonClickの動作は有効なので、 メッセージボックスを閉じると、適当な値(今回はコンボボックス2設定のの一番最初の値)を 表示してしまいます。 DropButtonClickの動作を無効にする方法がわかりません。 よろしくお願いします。

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

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

  • コンボボックスの値を連動させたい

    コンボボックスの値が変わらずに悩んでいます。 .listindexではプロパティしか確かめられないことがわかりました。 .Textだと直接記述しないといけません。 Select Case ◎◎.ListIndex Case 0 To 5 ××.ボックス.****** Case 6 To 7 ××.ボックス.****** End Select *****のところを別のに変えればなんとかなりそうなんですが、どうすればよいのでしょうか?直接値を代入しない方法で簡単な方法があれば教えてください。

  • Access2000を使っています。 コンボボックスの任意の行をVBA

    Access2000を使っています。 コンボボックスの任意の行をVBAで選択状態にしたいのですが、その方法をご存知の方いらっしゃいますか? Access2003だと、VBAでListIndexプロパティに値をセットすれば、その行が選択状態になるのですが、Access2000ではListIndexプロパティが見当たらず、困っています

  • エクセルのVBAについて教えてください。

    以前に下記のような内容のプログラムを作成したいと投稿致しましたら dim row as Integer for row = 1 to 65535 if (selectSheet.Cells(1, row) = "") then selectSheet.Cells(1, row) = "#####" EndIf をアレンジしたいのです。 上記のプログラムが構築されているコマンドボタンと同じuserformにオプションボタンを5個、コンボボックスを一つ作りました。 オプションボタン1を選択するとコンボボックスにはあ行が。 オプションボタン2を選択するとコンボボックスにはか行が。 オプションボタン3を選択するとコンボボックスにはさ行が。 オプションボタン4を選択するとコンボボックスにはた行が。 オプションボタン5を選択するとコンボボックスにはな行が。 選択できるようにしたいのです。 次に選んだオプションボタンと同名前のシートに上記の#####が入力されるようにしたいのですが、どのようにすればいいのですか? このように教えて頂きました。 Public myop As Integer 'オプション選択保持用 Private Sub CommandButton1_Click() Dim row As Integer Dim mykey As String '比較キー '選択したオプションボタンにより '比較キーと選択保持用変数に各値を代入 Select Case True Case OptionButton1: mykey = "[あ-お]*": myop = 1 Case OptionButton2: mykey = "[か-こ]*": myop = 2 Case OptionButton3: mykey = "[さ-そ]*": myop = 3 Case OptionButton4: mykey = "[た-と]*": myop = 4 Case OptionButton5: mykey = "[な-ほ]*": myop = 5 Case Else: myop = 0 End Select If myop = 0 Then Exit Sub For row = 1 To 65535 If ActiveSheet.Cells(1, row).Value Like mykey Then ActiveSheet.Cells(1, row) = "#####" End If Next row End Sub これを流用して自分でいじりたいのですが、私が未熟ですので、コードの意味、役割がさっぱりわかりません。 わがままな質問ではございますが、どなたか上記のコードの意味を教えて頂けませんか? よろしくお願い致します。

  • エクセルVBAについて質問です。

    エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。

  • エクセル VBA if構文

    毎度お世話になります。 下記プログラミングですが、 シャーペンまたはボールペンがコンボボックス1で 選択された場合はコンボボックス2で10束または50束の選択肢となり 消しゴムまたはシャー芯がコンボボックス2で 選択された場合はコンボボックス2で100コまたは1000コの選択肢としたいのですが 他の方法がありますでしょうか。 宜しくお願い致します。 If Me.ComboBox1.Value = "シャーペン" Or Me.ComboBox1.Value = "ボールペン" Then ComboBox2.Style = fmStyleDropDownCombo ComboBox2.RowSource = "" ComboBox2.Clear ComboBox2.AddItem "10束" ComboBox2.AddItem "50束" ComboBox2.ListIndex = -1 End If If Me.ComboBox1.Value = "消しゴム" Or Me.ComboBox1.Value = "シャー芯" Then ComboBox2.Style = fmStyleDropDownCombo ComboBox2.RowSource = "" ComboBox2.Clear ComboBox2.AddItem "100コ" ComboBox2.AddItem "1000コ" ComboBox2.ListIndex = -1 End If

  • ExcelのVBAで

    Excel2007のVBAで以下のことは可能でしょうか? Sheet1の上にコンボボックス(アイテムリスト)とコマンドボタン(配置用ボタン)を設置しています。 コンボボックスよりユーザーがアイテムを選択してコマンドボタンを押すことで対応するアイテムの画像をシートに挿入します。 シートに挿入する画像は、最大100アイテムを予定しています。 困っている部分が、挿入したアイテムをユーザーがマウスでクリックしたときに VBAでどの画像が選択されたかを判断することは可能でしょうか? アイテムがクリックされると同時にクリックされたアイテムのコードや名称等の諸元データを特定のセルに表示をしたいという事が行いたいのです。 以上、何かヒントや解決方法があればご教授願います。 図の挿入に関しては下記のロジックで挿入しています。 Private Sub CommandButton1_Click() dim pc(100) as shape dim flname as string '画像のファイル名は、"pic" + コード + ".jpg" 'A1にはコンボボックスで選択されたコードが設定されています。 flname = "pic" & Worksheets("sheet1").Range("a1").Value & ".jpg" 'idxはGlobal変数です。 idx = idx + 1 Set pc(idx) = ActiveSheet.Shapes.AddPicture(Filename:=flname, LinkToFile:=True, savewithdocument:=False, Left:=Selection.Left, Top:=Selection.Top, Width:=100#, Height:=100#) end sub

  • VBA 初心者

    VBAでの計算方法についてです。 まず、リストやコンボボックスで選択肢を作り、選択された内容の値を使った計算をしていきます。 そして、テキストボックスより、数字の入力を行い、結果を表示します。 例としては、自動車や自転車をどちらかを選択して、 X=2*3 y=4/3 という値から、(テキストボックス3*テキストボックス4*X/テキストボックス5) その結果をテキストボックス6に表示させるというコードです。 やってみると0の値しか表示されません。 もしこの説明でわかるなら、解決方法を教えください。