• ベストアンサー

VBA ”あかさたなはまやらわ”で選択、リスト表示

よろしくお願いします。 ユーザーフォームのコマンドボタン1をクリックしたときは、 Sheet1のA2~A行の最終セルの中から先頭文字が、 あいうえお(カタカナも含む)を選択してリストボックス1に リストとして表示する。 同じように ユーザーフォームのコマンドボタン2をクリックしたときは、 Sheet1のA2~A行の最終セルの中から先頭文字が、 かきくけこ(カタカナも含む)を選択してリストボックス1に リストとして表示する。 以後同じようにして”わ”まで繰り返す。 【A行の最終行は可変します】

  • 1211M
  • お礼率54% (90/165)

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

> ⇒ For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row ⇐ > この部分でエラーが出ます。 すみません、変更するのを忘れてました With Sheet1 を With Sheets("Sheet1") に変更してください。

1211M
質問者

お礼

kkkkkm様 早い回答ありがとうございました。 思い通りにできました. 今後もよろしくお願いします。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

Private Sub CommandButton1_Click() ListAdd ("[あ-お|ア-オ]*") End Sub この部分をそれぞれ(あ行か行・・・)文字列を変更して必要なだけ作成してください。 以下はフォームモジュールに Sub ListAdd(ByVal StrS As String) Dim i As Long ListBox1.Clear With Sheet1 For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row If .Cells(i, "A").Value Like StrS Then ListBox1.AddItem .Cells(i, "A").Value End If Next End With End Sub

1211M
質問者

補足

kkkkkm様 早速の回答ありがとうございます。 Sub ListAdd(ByVal StrS As String) Dim i As Long ListBox1.Clear With Sheet1 ⇒ For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row ⇐ この部分でエラーが出ます。 実行時エラー’424’ オブジェクトが必要です 対処方法のご教示をお願いします。 If .Cells(i, "A").Value Like StrS Then ListBox1.AddItem .Cells(i, "A").Value End If Next End With End Sub

関連するQ&A

  • excelでVBAでユーザーフォームのリストBOX

    下記VBAの作成の仕方を教えていただけないでしょうか。 やりたいこと (1)sheet2のA1セル~A5セルまでの間の間をユーザーフォームのリストボックスに登録する (2)sheet1のA1セルをクリックすると、ユーザーフォームが起動し、任意のリストをクリックすると、 その値がA1セルに格納され。ユーザーフォームが終了する。 ※コマンドボタンは使わずにお願いします。なおexcel2000です。

  • リストボックスの値を全選択する

    エクセルのユーザーフォームにリストボックスとコマンドボタンを設置し、 コマンドボタンをクリックするとリストボックス内の値を全選択する。 という動作は出来ますでしょうか。 勉強不足で申し訳ありませんが、ご教示願います。

  • EXCEL2013 VBA ListBox 未選択

    ユーザーフォームの起動直後は、リストボックスの行は選択されていない状態ですが1度クリックして選択された後に、再び未選択状態に戻すコマンドを教えてください。 どうぞ宜しくお願いします。

  • vbaについて教えてください

    エクセルでワークシートに貼ったコマンドボタンをクリックするとユーザーフォームを呼び出してかつ、ユーザーフォーム上のコンボボックスに指定フォルダ下のフォルダを表示するものを作りました。 ユーザーフォーム上のコンボボックスに表示されたフォルダを切替選択するとリストボックスにそのフォルダ下のファイルを表示させたいのですがやり方がわかりませんので教えてください。

  • リストボックスで選択した項目を削除するには

    Excel2003を使用しています。 ユーザフォームのリストボックスには"Sheet1!A1:C10"が表示されるようになっています。 Private Sub UserForm_Initialize()  UserForm1.ListBox1.ColumnCount = 3  UserForm1.ListBox1.RowSource = "Sheet1!A1:C10" End Sub たとえばリストボックス上で3行目(A3:C3)を選択して、削除ボタンをクリックすれば選択された値が表示から消えて、セル上の値も削除されるようにしたいのです。 できれば削除されると同時に4行目(A4:C4)以降の値が上にスライドされるようにできればいいのですが、まだまだ理解できない部分が多くて自分では解決できませんでした。 ご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 宜しくお願い致します。

  • コマンドボタン選択でリストボックス内容変更

    ユーザーフォーム内のあ~たコマンドボタンをクリックするたびにリストボックス内のリスト内容が変更する。 "あ"のコマンドボタンをクリックしたらsheetの氏名頭文字あ列の氏名がリストボックスに反映するようなコードがわかりません。どなたかご教授のほどよろしくお願いします。

  • VBAでセルの数値の計算

    現在ユーザーフォームのテキストボックスに数値を入力し、コマンドボタンをクリックするとSheet1のセルのA1に数字が入り、その後例えばテキストボックスの数字を変更して再度コマンドボタンをクリックするとA2・A3と続けて数字が入ります。そこで、コマンドボタンをクリックするとSheet2のセルA1にSheet1のA列の数字の合計が表示されるようにするにはどうしたら良いでしょうか??

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

  • エクセルVBAのリストボックス

    エクセルVBAのリストボックスを使った検索システムを作っています。 リストボックスはユーザーフォームではなくsheetに貼り付けてます。 リスト地域 北海道 青 森 岩 手 山 形 新 潟  ・  ・  ・ リストボックスから地域(複数選択)を選んで検索ボタン(コマンドボタン)を押すと同じsheetの特定の場所(例えばrange("A25")に選択した地域を表示させたいのですがうまくいきません。 例) 北海道、東京、愛知 のように表示させたいです。 単数選択ではうまく表示できるのですが、複数だとうまくいきません。 (複数選択できるようにプロパティのMultiSelectの項目はfmMultiselectMultiに変更しています。) よろしくお願いします。

  • excel VBA リストボックス複数選択後の処理

    どなたか教えてください。 Sheet1にユーザーフォームを使用しデータを入力しています。 リストボックスが複数選択した後にコマンドボタンをクリックした際、 選択項目を1行のセル[Cells(myRow, 16)~Cells(myRow, 20)]に左詰めで表示したい場合はどのようにするのでしょうか? 例:リストボックスには10項目あるとして、そのうち1行目、3行目、5行目だけが選択された場合のパターンで、1行目がCells(myRow, 16)、3行目がCells(myRow, 17)、5行目がCells(myRow, 18)に表示したいのですが・・・。 最大5項目選択とみています。 ※コマンドボタンは他のTextBox等も含まれ、下記のような感じです。 Private Sub CommandButton1_Click() Dim myRow As Long Sheets("Sheet1").Select myRow = Range("A65536").End(xlUp).Offset(1, 0).Row '各テキストボックの値をセルに入力 Cells(myRow, 1).Value = TextBox1.Value Cells(myRow, 2).Value = TextBox2.Value Cells(myRow, 3).Value = ComboBox1.Value Cells(myRow, 4).Value = TextBox3.Value Cells(myRow, 5).Value = TextBox4.Value . . . Cells(myRow, 16).Value = Cells(myRow, 17).Value = Cells(myRow, 18).Value = . . . 'セルに入力が各テキストボックの値をクリア TextBox3.Value = "" TextBox4.Value = "" ComboBox2.Value = "" ComboBox3.Value = "" 'フォーカスをTextBox3に移動 TextBox3.SetFocus End Sub

専門家に質問してみよう