• ベストアンサー

エクセルVBA リストボックスの使い方について・・・

WWolfの回答

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.3

その場合は UserForm_Initialize イベントですればOK

関連するQ&A

  • シート上のリストボックスに値を表示するには?

    エクセル2003です。 コントロールツールボックスからシートにリストボックスを設置しました。 ここに値を指定するにはどうすればいいでしょうか? フォーム上のリストボックスなら Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!a2:a3" End Sub とすればいいのですが シートのイベントにInitializeはありません。 どこのイベントプロシージャーに 「リストボックスに値を表示する」というコードを書けばいいのでしょうか? シートモジュールにに Private Sub ListBox1_Click() UserForm1.ListBox1.RowSource = "Sheet1!a2:a3" End Sub としても何も起こりません。 できればファイルを開いた時からリストボックスに値を表示させるようにしたいです。 ご教授よろしくお願い致します。

  • フォームのリストボックスに値を表示させたい

    VBA フォームのリストボックスに値を表示させたい A1→aaa A2→bbb リストボックスに上記の値を表示させたいなら、 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!A1:A2" End Sub で出来ますが、シート上のセルで表示する値を指定するのではなく、VBA上で、リストボックスに表示させる値を指定したいのです。 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "aaa,bbb" End Sub を実行すると、VBA実行時エラー380になってしまいます。 UserForm1.ListBox1.RowSource = "aaa;bbb" もダメでした。 ご回答よろしくお願いします。

  • リストボックスのリストを削除する

    リストボックスのリストを削除する アドバイスをお願いします。 下の構文でユーザーフォーム内のリストボックスに リストを表示させるようにしました。 Private Sub UserForm_Initialize()  With ListBox1 .RowSource = "データー!B3:B33" End With End Sub 表示されたリスト内で、不要になったリストをコマンドボタンの押下したときに データーシートのB3からB33の中から選択したリストと同じデーターを 探して削除する方法をお教えください。

  • エクセルVBAユーザーフォーム・リストボックスについて

    エクセルVBAにてユーザーフォームを作りリストボックスにSheet1、AからEのデータすべてを 表示させることは出来るのですが、E行にデータがある物のみ表示する方法をご存じの方教えて頂けないでしょうか。 入力したソースは下記のとおりです。 Private Sub UserForm_Click() Dim lastRow As Long With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, 5).End(xlUp).Row End With With ListBox1 .ColumnCount = 5 .ColumnWidths = "35;25;30;100;25" .RowSource = "Sheet1!A2:E" & lastRow .ColumnHeads = True End With End Sub

  • リストボックス

    すいません以下の処理に困っております。 リストボックスで値を取得して他のリストボックスにその値を 出力したいのですがまったくできません。 <例> リストボックス1 a b c リストボックス2(上で選択した値を出力) a ちなみに構文は、 ------------------------------------------------------------ Private Sub btn選択_Click() ListBox2.Text = ListBox1.Text 'ListBox1.ListIndex + 1 & ": " & ListBox1.Text End Sub Private Sub CommandButton1_Click() End Sub Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) btn選択_Click End Sub Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean) btn選択_Click End Sub Private Sub UserForm_Initialize() With ListBox1 .AddItem "スケジューラ" .AddItem "データ変換" .AddItem "DWH Server" .AddItem "PPP Server" .AddItem "ファイヤーウォール" .AddItem "暗号オプション" End With End Sub ---------------------------------------------------- 初心者でまったくできません。 御教授をお願いします。

  • リストボックスでデータを呼び出し→修正を反映させる方法を教えてください

    マクロ初心者です。(エクセル2003使用_ユーザーフォーム) リストボックスで表示した行のデータをユーザーフォームに呼び出し、修正を加える方法を教えてください。 (Sheet1のデータ) 客先 管理番号 品名 注文数量 出荷数量 出荷日 完納状況 G社  1324   パソコン    30    20 K社  1554   プリンタ    250    70    8月9日 J社  7634   テレビ      40    25 K社  4653   パソコン    75    75    6月4日  完納 G社  6675   パソコン    170    60 G社  7789   プリンタ    200    120 表の行数は、日々変動し、出荷日や完納状況欄は、分かり次第記入や変更をするため、空白の箇所もあります。 (コマンドボタン1まで動く(日付が数字になってしまうが)コード) Private Sub UserForm_Initialize()   With ListBox1 .ColumnWidths = "50;50;50" .ColumnCount = 2 .RowSource = "Sheet1!A2:G" & Worksheets("Sheet1").Range("G" & Rows.Count).End(xlUp).Row End With End Sub            →リストに表示されるが、本当は<管理番号>と<品名>を表示させたいです。(今は、客先と管理番号です) Private Sub CommandButton1_Click() TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 5) →日付が数字ででてしまいます。 TextBox2.Value = ListBox1.List(ListBox1.ListIndex, 6) End Sub Private Sub CommandButton2_Click() TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 5) →動きません。 TextBox2.Value = ListBox1.List(ListBox1.ListIndex, 6) →動きません。 End Sub 空白は、空白のまま表示させたり、修正したいと思っています。 (例 管理番号1554の日付を8月14日にのみ修正したい時、そこは修正し、完納欄は空白のまま表示され、空白の状態でコマンド2を押すことができてほしいということです) すみませんが、どなたかご回答よろしくお願いいたします。

  • Excel マクロ リストボックス複数選択

    いろいろ拝見させていただいているのですが 理解が低いのが原因で困っています。 データのシートがあります。 ・B列には、起点となる人の名前が記載(300名ほど) ・データの入っている列は、A:CE データシートでB列にてオートフィルタをかけ 抽出シートに転記したい。 抽出シートでは、ユーザーフォームを組みました。 オプションボタン1 単一選択 オプションボタン2 複数選択 オプションボタン3 拡張選択 リストボックス(2・3に対して) コマンドボタン   終了 とした場合、単一選択はできたのですが 複数選択の場合 該当数が「0」の表記となってしまい、うまくいきません。 同じような質問が…というお返事があることを承知でお伺いしています。 いただいた回答を基に、勉強をしていきたいと思っていますので なにとぞよろしくお願い申し上げます。 Private Sub UserForm_Initialize() ListBox1.ColumnCount = 1 'リストボックスの列は1 ListBox1.BoundColumn = 0 'ListIndexの値(行数)を使用する ListBox1.MultiSelect = 0 '最初は単一選択状態にする ListBox1.RowSource = 'リストのソース ListBox1.ColumnHeads = True '列見出し表示 OptionButton1.Value = -1 'オプションボタン1を選択状態にする End Sub Private Sub OptionButton1_Click() ListBox1.MultiSelect = fmMultiSelectSingle '単一選択状態にする End Sub Private Sub OptionButton2_Click() ListBox1.MultiSelect = fmMultiSelectMulti '複数選択状態にする End Sub Private Sub OptionButton3_Click() ListBox1.MultiSelect = fmMultiSelectExtended '拡張(連続)選択状態にする End Sub Private Sub ListBox1_Click() 'リストボックスがクリックされたとき(単一選択) Dim 条件 As String 条件 = UserForm1.ListBox1.Text '氏名 With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End Sub Private Sub CommandButton1_Click() '選択終了ボタンがクリックされたとき(複数・拡張選択) Dim 条件 As String Dim lastRow As Long With ListBox1 If .ListIndex = -1 Then Exit Sub '何も選択されていない For 条件 = 0 To .ListCount - 1 If .Selected(条件) Then '行選択あり With Worksheets("データ") .Range("A1").AutoFilter _ field:=2, Criteria1:=条件 .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets("抽出").Range("A1") .Range("A1").AutoFilter End With End If Next End With End Sub Private Sub UserForm_Deactivate() Unload UserForm1 '×ボタンを押したら、ユーザーフォームのunloadをする End Sub

  • リストボックスからリストボックスへ(複数列)

    データ読み込み済みのリストボックス1(4列)から空白のリストボックス(4列)へ、コマンドボタンをクリックしたらデータが追加されるコードを作成しました。 Private Sub CommandButton1_Click() Dim i As Long For i = 0 To 8 With ListBox1 ListBox2.AddItem .List(.ListIndex, i) End With Next i データは追加されましたが、縦方向にデータが追加され、 横方向に追加されませんでした。 どうすれば複数列のデータをそのまま複数列のリストボックスに追加できるでしょうか。 よろしくお願いします。 End Sub

  • リストボックスから項目を選択してセルに入力したいのです

    EXcel2003でマクロ作成中です。エクセルシートのN列を右クリックすると、ユーザーォームが現れ、その中のリストボックスから項目を選択すると選択文字が白色に反転します。 ユーザーホームの下方に設置した「入力する」ボタンをクリックする、アクティブセルにテキスト文字列が挿入されます。 Option Explicit Private Sub CommandButton1_Click() With ListBox1 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox1.list(ListBox1.ListIndex) End If End With Unload UserForm1 End Sub --------------------------- Private Sub CommandButton2_Click() Unload UserForm1 End Sub ------------------------------ これと同じものをB列につくりました。エクセルシートのB列を右クリックすると、リストボックスが表示されますが、その中の項目を選択しようとすると、一瞬にしてユーザーフォーム自体が消えてしまい項目を 選択できません。 Private Sub CommandButton1_Click() With ListBox2 If .ListIndex = -1 Then MsgBox "項目を選択してくだい" Else ActiveCell.Value = ListBox2.list(ListBox2.ListIndex) End If End With Unload UserForm2 End Sub ----------------------------- Private Sub CommandButton2_Click() Unload UserForm2 End Sub ------------------------------------------ まったく同じものを作って内容だけかえたのですが、できません。 どうしてでしょうか?ご教授おねがいします。

  • エクセルVBA・リストボックスに関する質問です。

    エクセルVBA初心者です。 作成したワークシート名をVBAにてリストボックス内に表示し、それを選択するとそのシートに飛ぶようにしています。 ------------------- Private Sub ListBox1_Change() With ListBox1 Worksheets(.ListIndex + 1).Activate End With End Sub ------------------- Private Sub UserForm_Initialize() Dim wsSheet As Worksheet For Each wsSheet In Worksheets ListBox1.AddItem wsSheet.Name Next wsSheet End Sub ------------------- これではすべてのシートがリストボックス内に反映される為、反映させたくないシート(3シートあるのですが)も一緒に表示されてしまいます。 この表示させたくないシートをリストボックス内に表示させない事は可能でしょうか? 又、できるとしたら、どんな言語を使用すれば良いのでしょうか? ご教授お願い致します。