シート上のコントロールの初期値設定処理

このQ&Aのポイント
  • Excelのシート上にコンボボックス(Sheet1)を置き、初期値を設定する方法について教えてください。
  • Visual Basic Editorでコントロールに入力値を設定したい場合、どこに記述すれば良いのかわかりません。
  • プロジェクトエクスプローラにはsheet1,sheet2,sheet3,ThisWorkBook,Module1がありますが、どこに記述すれば初期値を設定できるのでしょうか?
回答を見る
  • ベストアンサー

シート上にコントロールを置いたときの初期値設定処理

Excelのシート上にコンボボックス(Sheet1)を置きました。 ここに値と入力したいのですが、Visual Basic Editor 上で入力値をいれたいのですが、どこに記述してよいのかが、わかりません。 プロジェクトエクスプローラには、 sheet1,sheet2,sheet3,ThisWorkBook,Module1とありますが、 cbTemplate.AddItem "データ1" という一行をいろんな場所にいれてみたのですが、ThisWorkBook,Module1ではコントロールが認識されていないぽく、sheet1には初期にいれられそうなのが見当たらないのですが、どこに記述すればよいのでしょうか?

  • Haule
  • お礼率52% (125/240)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

標準モジュールでも何でも、大丈夫です。 オブジェクト変数に格納できたら、操作しやすいですよ Dim objCbo As ComboBox Set objCbo = ThisWorkbook.Worksheets(1).cbTemplate objCbo.AddItem "データ1" objCbo.ListIndex = 0

Haule
質問者

お礼

コントロールを取得するんですねー できました。ありがとうございました。

関連するQ&A

  • エクセルVBA コンボボックスの値の転記

    エクセルVBAの質問です。 ユーザーフォームを表示し 年を選択するコンボボックス1 月を選択するコンボボックス2 を入力してもらい ユーザーフォームを閉じるときに sheet1のワークシートのC2セルに 「コンボボックス1の値」+「年」+と「コンボボックス2の値」+「月」をつなげて 入力できるというようなマクロを考えています。 下記の様に考えてみたのですが、 うまく入力できませんでした。 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "2021" .AddItem "2022" .AddItem "2023" .AddItem "2024" End With With ComboBox2 .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" End With Private Sub CommandButton1_Click() 'ユーザーフォームを閉じる Unload UserForm1 'ユーザーフォームの値をセルC2に入力 With Worksheets("sheet1") .Cells(2, 3).Value = "ComboBox1.Text" & "月" & "ComboBox2.Text" & "日" End With End Sub どのように修正すればいいでしょうか? よろしくお願いします。

  • 【EXCEL VBA】Visual Basic Editorについて

    お世話になります。 EXCELで「Visual Basic Editor」を開くと、 左側に下記が表示されます。 Microsoft Excel Objects > Sheet1、Sheet2、Sheet3、ThisWorkBook フォーム > UserForm1 標準モジュール > Module1 クラス モジュール > Class1 Sheet1やUserForm1、Module1、Class1にそれぞれコードを 入力できますが、違い、使い分けについて教えてほしいです。 どれにコードを書いていけばいいか分からず困っています。 よろしくお願いします。

  • [Excel VBA]シートの

    Visual Basic Editorを起動し、"プロジェクト エクスプローラ"と"プロパティウィンドウ"を表示した状態で、適当なシートを選択すると、"プロパティ ウィンドウ"の一番上の"(オブジェクト名)"欄に、今現在設定してある値が表示されます。 で、その値は"プロパティ ウィンドウ"から直接変更することは簡単にできますが、マクロから変更する方法が分かりません。 私がやりたいのは、マクロからシートを追加し、シート名と、この"(オブジェクト名)"を設定することです。 どなたか方法を知っている方がいましたら、是非ご教授お願い致します。

  • Excel VBA

    Excelのコンボボックスについての質問です。 sheet(1)のA2~A20までコンボボックスに入る選択肢が入っています。 フォーム1のコンボボックス1にその選択肢を入れたいのですが、なるべく短いコードを教えていただきたいのですが…。 ちなみに私の知っているコードは コンボボックス1.Additem Range("シート1!A2") コンボボックス1.Additem Range("シート1!A3")      ・      ・      ・ という感じです。 どうかよろしくお願いいたします。

  • エクセル、コンボボックス/フォームのとコントロールツールボックスの

    エクセル2000です。 今まではワークシートにフォームのコンボボックスを貼って使ってきました。 でも色を変えたり出来ないので、今度はコントロールツールボックスからコンボボックスを貼ってみました。 質問ですが、コンボボックスに表示させるリストを設定するのに、これまでのフォームのコンボボックスだと書式設定で入力範囲をカーソルをあてて一度に簡単に指定できたのですが、コントロールツールボックスのコンボボックスだとそれが出来ません。VBEditorのプロパティのところのListFillRangeの右側にいちいち手でSheet1!A1:A5のように打ち込まなければならないようです。これではけっこう手間がかかってしまいます。 わたしのやりかたが間違っているのでしょうか?

  • Excelのフォームコントロールのコンボボックス。

    とあるファイルで、Excelの開発→フォームコントロール→コンボボックスで 中の値を選択すれば、その数値の倍率にシートがズームされるという機能のモノがありました。 それをやりたいのですが、どうすればいいのでしょうか。 コンボボックスを設置して、書式設定などからプロパティなど見ましたがいまいちわかりません。

  • Excelのワークシートでのコンボボックスについて

    Excelのワークシートでコンボボックスを設定する方法を教えてください。 「フォームコントロール」と「ActiveXコントロール」の違いがわかりません。 添付の画像の通りコンボボックスに西暦を入力(別シートに入力済みの値を表示するように設定)してあるのですが、ファイルを保存しているにも関わらず、再度ファイルを開くとコンボボックスの中のリストは空欄になってしまいます。 今は「ActiveXコントロール」のコンボボックスで設定しています。 コードは以下のように設定してみたのですが、設定内容や設定箇所が違うのでしょうか? ////////////////////////////////////////////////////// Private Sub ComboBox1_DropButtonClick() Dim sh As Worksheet Set sh = Worksheets("マクロ") Dim i As Integer Dim lastRow As Integer lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row With ComboBox1 For i = 2 To lastRow If ComboBox1 = "" Then .AddItem sh.Cells(i, 1).Value End If Next i End With End Sub ////////////////////////////////////////////////////// コンボボックスのリストの内容が消えてしまうので、 コードの内容は同じで以下のところにもコードを書いてみました。 ////////////////////////////////////////////////////// Private Sub Worksheet_Activate() Dim sh As Worksheet Set sh = Worksheets("マクロ") Dim i As Integer Dim lastRow As Integer lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row With ComboBox1 For i = 2 To lastRow If ComboBox1 = "" Then .AddItem sh.Cells(i, 1).Value End If Next i End With End Sub ////////////////////////////////////////////////////// なんだかもう、訳がわからずぐちゃぐちゃです。 コンボボックスの中に値が入っていると、実行ボタンをクリックしたときは正常にやりたい結果を出すことが実現できます。 ファイルを閉じた後に再度開いてもコンボボックスの中に値があるようにするにはどうしたらよいのか、ド素人の私にご教授いただきたくお願いいたします。

  • コンボボックスへの値の編集方法について

    ACCESSで複数のフォームにコンボボックスを配置しています。どのフォームのコンボボックスにも同じようにコンボボックスの値を設定します。それぞれプロパティの値リストを設定することなく、共通のモジュールを作成してそこでADDITEMできるようにしたいと考えています。 モジュールにどのようにコンボボックスを引数として渡したらよいか、またモジュールではどのように引数を受け取り、どのようにadditemしたらよいか教えていただけないでしょうか。 よろしくお願いします。

  • エクセルVBAのカレンダーコントロールの件で

    エクセルVBAを使用して リストボックスかコンボボックスかテキストボックスかを クリックするとカレンダーコントロールが呼び出されて カレンダーコントロールの日付をクリックすると カレンダーコントロールは閉じその値が上記2行目いずれかに 入力されるようにすることは可能なのでしょうか いろいろ文献を探してみたのですがよくわからずじまいでした よろしくお願いします

  • EXCELのコントロール ツールボックスの使い方

    EXCELの「コントロール ツールボックス」でEXCELシート上にコンボボックスをつくって、その中からデータを選びたいのです。どのようにしたらコンボボックス内に選択対象のデータが出るようになるでしょうか?

専門家に質問してみよう