みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

よろしくお願いします。

ユーザーフォームのコマンドボタン1をクリックしたときは、
Sheet1のA2~A行の最終セルの中から先頭文字が、
あいうえお(カタカナも含む)を選択してリストボックス1に
リストとして表示する。

同じように
ユーザーフォームのコマンドボタン2をクリックしたときは、
Sheet1のA2~A行の最終セルの中から先頭文字が、
かきくけこ(カタカナも含む)を選択してリストボックス1に
リストとして表示する。

以後同じようにして”わ”まで繰り返す。
【A行の最終行は可変します】

投稿日時 - 2019-04-27 18:31:13

QNo.9611169

困ってます

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

> ⇒ For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row ⇐
> この部分でエラーが出ます。

すみません、変更するのを忘れてました
With Sheet1

With Sheets("Sheet1")
に変更してください。

投稿日時 - 2019-04-27 22:23:34

お礼

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

投稿日時 - 2019-04-27 22:34:10

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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

投稿日時 - 2019-04-27 20:23:45

補足

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

投稿日時 - 2019-04-27 22:03:17

あなたにオススメの質問