Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7268 / 13645 ツリー ←次へ | 前へ→

【39675】リストボックスからオートフィルタ抽出結果へ ME 06/6/28(水) 20:57 質問[未読]
【39678】Re:リストボックスからオートフィルタ抽出... row 06/6/28(水) 21:27 発言[未読]
【39681】Re:リストボックスからオートフィルタ抽出... ME 06/6/28(水) 21:55 発言[未読]
【39683】Re:リストボックスからオートフィルタ抽出... row 06/6/28(水) 22:38 発言[未読]
【39690】Re:リストボックスからオートフィルタ抽出... ハト 06/6/29(木) 10:22 回答[未読]
【39693】Re:リストボックスからオートフィルタ抽出... ハト 06/6/29(木) 10:36 発言[未読]
【39726】Re:リストボックスからオートフィルタ抽出... ME 06/6/29(木) 21:16 お礼[未読]
【40178】Re:リストボックスからオートフィルタ抽出... ぼく 06/7/7(金) 21:44 質問[未読]
【40180】Re:リストボックスからオートフィルタ抽... neptune 06/7/7(金) 22:22 回答[未読]
【40200】Re:リストボックスからオートフィルタ抽... Hiroko 06/7/8(土) 20:46 回答[未読]
【40228】Re:リストボックスからオートフィルタ抽... ぼく 06/7/9(日) 21:30 お礼[未読]

【39675】リストボックスからオートフィルタ抽出結...
質問  ME  - 06/6/28(水) 20:57 -

引用なし
パスワード
   いつもお世話になっております。
下の件でお伺いしたいのですが・・・

ユーザフォームのリストボックスには
佐藤さんや山田さんなど人の名前が入っています。

シートには
A    B
山田   120
山口   100
川口   230
佐藤   130
山田   200

と入っていて、リストボックスで山田さんを選ぶと
オートフィルタで山田さんの情報だけを抽出したいのです。

どうつなげたらよいのでしょうか?
教えてください。
よろしくお願いします。

【39678】Re:リストボックスからオートフィルタ抽...
発言  row  - 06/6/28(水) 21:27 -

引用なし
パスワード
   >どうつなげたらよいのでしょうか?

「つなげる」の意味が分かりませんが

山田さんのセルをクリックして
「データ」−「フィルタ」−「オートフィルタ」
をクリックすれば、良いのではないですか?

【39681】Re:リストボックスからオートフィルタ抽...
発言  ME  - 06/6/28(水) 21:55 -

引用なし
パスワード
   わかりにくくてすみません。

listbox
山田 ←クリックすると
山口
川口
佐藤


シート
A    B
山田   120
山田   200

と、抽出結果を表示させたいのです。
よろしくお願いします。

【39683】Re:リストボックスからオートフィルタ抽...
発言  row  - 06/6/28(水) 22:38 -

引用なし
パスワード
   >山田 ←クリックすると


1クリックで、動作させる方法は分かりませんが
ダブルクリックで、動作させる手順は 以下の通りです

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
    Cancel As Boolean)
If Not Application.Intersect(Target, Range("A1:A2")) Is Nothing Then
   Selection.AutoFilter
  Selection.AutoFilter Field:=1, Criteria1:="山田"
  End If
  Cancel = True
End Sub

条件としては、A1かA2を ダブルクリックすると
山田のデータだけを抽出します。

それと、他のセルをダブルクリックしても
文字入力モードにはなりません。
(イベントでキャンセルしている為)

これで、ダメならば
私には、分かりません。

【39690】Re:リストボックスからオートフィルタ抽...
回答  ハト  - 06/6/29(木) 10:22 -

引用なし
パスワード
   おはようございます


1.
>オートフィルタで山田さんの情報だけを抽出
この部分を標準モジュールに記述しておいて


2.
>リストボックスで山田さんを選ぶと

UserFormモジュールで

 ListBox1_Change()
 ListBox1_Click()

等のイベントが発生しますので
ここから1で作った関数を呼び出すようにするようにしてみてください

【39693】Re:リストボックスからオートフィルタ抽...
発言  ハト  - 06/6/29(木) 10:36 -

引用なし
パスワード
   ちょっと補足です

>1.
>>オートフィルタで山田さんの情報だけを抽出
>この部分を標準モジュールに記述しておいて

ここは↓のように引数を受け取れるようにしておいてください
Sub Test_A(DName As String)


>2.
>>リストボックスで山田さんを選ぶと
>
>UserFormモジュールで
>
> ListBox1_Change()
> ListBox1_Click()
>
>等のイベントが発生しますので
>ここから1で作った関数を呼び出すようにするようにしてみてください
呼び出す時に

  Call Test_B(ListBox1.Text)

とリストで選んだ値を渡します

【39726】Re:リストボックスからオートフィルタ抽...
お礼  ME  - 06/6/29(木) 21:16 -

引用なし
パスワード
   rowさん、ハトさんありがとうございます。
ナニブン初心者なもので
時間がかかるのですが
やってみます。

【40178】Re:リストボックスからオートフィルタ抽...
質問  ぼく  - 06/7/7(金) 21:44 -

引用なし
パスワード
   こんばんは。
この質問はだいぶ前にあったようなのですが
私も必要になったのでぜひ質問させてください。

MEさんの質問では
リストボックスの山田さんをクリックすると
山田さんの情報がオートフィルタで表示されるというものでしたよね?

もし、
山田さんは山田さんで行い、
さらに山口さんをリストボックスでクリックすると
山口さんの情報を表示させる。
ふたつあわせるにはどうしたらよいのでしょうか?

Sub 山田さん抽出()
  Range("A1:A10").AutoFilter field:=1, Criteria1:="山田"
End Sub

書いてみたものの、リストボックスからこれを実行させる
やり方がわかりません。

何かヒントを頂けませんでしょうか。
MEさんに対するお答えを読ませて頂いたのですが
理解できませんでした。すみません。
宜しくお願いします。

【40180】Re:リストボックスからオートフィルタ抽...
回答  neptune  - 06/7/7(金) 22:22 -

引用なし
パスワード
   ▼ぼく さん:
本当は新たにスレッドを作成して、このスレッドにリンクを張るのが良いです。

>Sub 山田さん抽出()
>  Range("A1:A10").AutoFilter field:=1, Criteria1:="山田"
>End Sub
>
>書いてみたものの、リストボックスからこれを実行させる
>やり方がわかりません。
>何かヒントを頂けませんでしょうか。
ぼくさんの所しか読んでませんが、リストボックスのクリックイベントで
リストボックスで、
現在選択されているデータが"山田"だったら
山田さん抽出 を実行

↑をコード化すれば出来るんじゃないでしょうか?
又は、
山田さん抽出をオートフィルタのように引数をつけると良い。
Sub オートフィルタ(引数1 as string)
  Range("A1:A10").AutoFilter field:=1, Criteria1:=引数1
End Sub
呼ぶときは
call オートフィルタ(ListBox.text)
のような感じです。

【40200】Re:リストボックスからオートフィルタ抽...
回答  Hiroko  - 06/7/8(土) 20:46 -

引用なし
パスワード
   ▼ME さん
あなたのデータで作成しました。

貴方のデータで表を次の通りしています
氏名 項目1
山田 120
 :  :

一行目に項目行を入れています

Userformにはリストボックスとコマンドボタンを付けてください。

次のコードを添付してください。

'*****************UserForm1に貼り付け
Private Sub CommandButton1_Click()
Selection.AutoFilter Field:=1, Criteria1:=UserForm1.ListBox1.Value
End Sub


Private Sub UserForm_Initialize()
Dim LASROW As Long
Dim myDRange As String

LASROW = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
myDRange = "Sheet1!A2:A" & LASROW
ListBox1.RowSource = myDRange

If Worksheets("Sheet1").Range("A2").Value = "" Then
  ListBox1.RowSource = ""
End If

End Sub

'**************標準モジュールに貼り付け

Sub UseFrm_Show()
UserForm1.Show 0
End Sub

リストの氏名を選択して、コマンドボタンを押すと絞りこまれます。
一度試してください

【40228】Re:リストボックスからオートフィルタ抽...
お礼  ぼく  - 06/7/9(日) 21:30 -

引用なし
パスワード
   ありがとうございました!
できました。
みなさんのおかげです。

7268 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free