Excel VBA質問箱 IV

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

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


7255 / 13644 ツリー ←次へ | 前へ→

【40151】AutoFiltertがうまくいかない tatuya 06/7/7(金) 15:47 質問[未読]
【40154】Re:AutoFiltertがうまくいかない ハト 06/7/7(金) 16:16 回答[未読]
【40155】Re:AutoFiltertがうまくいかない ひげくま 06/7/7(金) 16:23 発言[未読]
【40193】Re:AutoFiltertがうまくいかない tatuya 06/7/8(土) 9:50 質問[未読]
【40212】Re:AutoFiltertがうまくいかない gako 06/7/9(日) 7:46 発言[未読]
【40257】再整理:AutoFiltertがうまくいかない tatuya 06/7/10(月) 11:07 質問[未読]
【40281】Re:再整理:AutoFiltertがうまくいかない ハト 06/7/10(月) 16:20 回答[未読]
【40312】感謝:再整理:AutoFiltertがうまくいかない tatuya 06/7/11(火) 11:35 お礼[未読]

【40151】AutoFiltertがうまくいかない
質問  tatuya E-MAIL  - 06/7/7(金) 15:47 -

引用なし
パスワード
   フォームのリストボックスの機種番号で選んだ番号によって
エラー項目というシートからその番号に対応するエラー番号
だけを抽出してComboエラー番号のList項目に入れたいのですが
以下の書き方だとB2をフィルターしてしまいます。
どうして良いかわからず困っています。なにとぞお教え下さい。

-------------------------------------------------------------
Private Sub Comboエラー番号_Enter()
  Worksheets("エラー項目").Select
  Range("E2").AutoFilter
  Range("E2").AutoFilter Field:=1, Criteria1:=Text機種番号.Value
  Comboエラー番号.List = Range("エラー番号").Value
End Sub
-------------------------------------------------------------
★F列(F2-F10)には 範囲名 エラー番号としてあります。

EXCEL------------------------------------------

    C   | D  |  E  |  F   | 
2  機種番号|   |機種番号 |エラー番号 |
3  BS12  |   |BS12   |4551    |
4  DF55  |   |BS12   |4552    |
5      |   |BS12   |4553    |
6      |   |DF55   |1553    |
7      |   |DF55   |1553    |
8      |   |DF55   |1553    |
9      |   |DF55   |1553    |
10      |   |BS12   |4554    |

-----------------------------------------------

【40154】Re:AutoFiltertがうまくいかない
回答  ハト  - 06/7/7(金) 16:16 -

引用なし
パスワード
   おはようございます
▼tatuya さん:

>  Range("E2").AutoFilter Field:=1, Criteria1:=Text機種番号.Value

  Range("E:E").AutoFilter Field:=1, Criteria1:=Text機種番号.Value

としてみてください

【40155】Re:AutoFiltertがうまくいかない
発言  ひげくま  - 06/7/7(金) 16:23 -

引用なし
パスワード
   最終的な回答というわけではないですが…

一番左の、連番が入っている列がB列ということですよね。

実際にExcelでオートフィルターをしてみると判ると思いますが、
この場合、E2をセレクトしてオートフィルターをすると、
オートフィルターの範囲の左端はB列になります。
そこで、Field:=1と設定すると、B列でフィルターをかけることになります。
E列でフィルターを掛けたい場合は、Fieldを4にする必要があります。
これも、実際にマクロ記録をしてみれば、判ると思います。

▼tatuya さん:
>フォームのリストボックスの機種番号で選んだ番号によって
>エラー項目というシートからその番号に対応するエラー番号
>だけを抽出してComboエラー番号のList項目に入れたいのですが
>以下の書き方だとB2をフィルターしてしまいます。
>どうして良いかわからず困っています。なにとぞお教え下さい。
>
>-------------------------------------------------------------
>Private Sub Comboエラー番号_Enter()
>  Worksheets("エラー項目").Select
>  Range("E2").AutoFilter
>  Range("E2").AutoFilter Field:=1, Criteria1:=Text機種番号.Value
>  Comboエラー番号.List = Range("エラー番号").Value
>End Sub
>-------------------------------------------------------------
>★F列(F2-F10)には 範囲名 エラー番号としてあります。
>
>EXCEL------------------------------------------
>
>    C   | D  |  E  |  F   | 
>2  機種番号|   |機種番号 |エラー番号 |
>3  BS12  |   |BS12   |4551    |
>4  DF55  |   |BS12   |4552    |
>5      |   |BS12   |4553    |
>6      |   |DF55   |1553    |
>7      |   |DF55   |1553    |
>8      |   |DF55   |1553    |
>9      |   |DF55   |1553    |
>10      |   |BS12   |4554    |
>
>-----------------------------------------------

【40193】Re:AutoFiltertがうまくいかない
質問  tatuya E-MAIL  - 06/7/8(土) 9:50 -

引用なし
パスワード
   ハトさん・ひげくまさん ご回答誠にありがとう御座いました。
お二方のご回答で見事どちらも成功しました。感謝です。
★でなんですが出来ればもう少しお教えいただければと思います。
フィルターで抽出した結果は見た目ではちゃんと絞り込まれているのに
実際テストしてみるとComboエラー番号.ListにはComboエラー番号.List
の全ての値が表示されてしまいます。つまりフィルターの結果が
反映されていないのです。
『現在』-------------------------------------------------
Private Sub Comboエラー番号_Enter()
  Worksheets("エラー項目").Select
  Range("E2").AutoFilter
  Range("E:E").AutoFilter Field:=1, Criteria1:=Text機種番号.Value
  Comboエラー番号.List = Range("エラー番号").Value
End Sub
-------------------------------------------------------------
★F列(F2-F10)には 範囲名 エラー番号としてあります。


そこで自分なりに調べてみて以下のようにしてみたのですが
エラーが出て止まってしまいます。何か良い方法はありませんでしょうか?
宜しくお願い致します。≦(._.)≧

『★の行でエラーで止まってしまいます』---------------------------
Private Sub Comboエラー番号_Enter()
  Worksheets("エラー項目").Select
  Range("E2").AutoFilter
  MsgBox (Combo機種.Value)
  Range("E2").AutoFilter Field:=4, Criteria1:=Combo機種.Value
★ Comboエラー番号.List = Range("エラー番号").CurrentRegion.SpecialCells(xlVisible)
End Sub
-----------------------------------------------------------------

【40212】Re:AutoFiltertがうまくいかない
発言  gako  - 06/7/9(日) 7:46 -

引用なし
パスワード
   ▼tatuya さん:
最初から見させていただいていますが、今一どのような処理をされたいのか?
分かりづらいです。
もう一度整理して質問をされては如何でしょう。
賢明な方が多くおられるので、的確な解答が得られると思いますよ。

特に最下行で何をしたいのか分かりかねます。

【40257】再整理:AutoFiltertがうまくいかない
質問  tatuya E-MAIL  - 06/7/10(月) 11:07 -

引用なし
パスワード
   申し訳ありません。整理して書き直します。
VBAのフォームのコンボボックスのリストに1.sheetの
C列の機種番号を範囲名指定し
 Private Sub UserForm_Initialize()で
 Combo機種.List = Range("機種番号").Valueで
 代入しています。質問は2.なのです。

1.EXCEL------------------------------------------
    C   | D  |  E   |  F   | 
2  機種番号|   |機種番号 |エラー番号 |
3  BS12  |   |BS12   |4551    |
4  DF55  |   |BS12   |4552    |
5      |   |BS12   |4553    |
6      |   |DF55   |1553    |
7      |   |DF55   |1553    |
8      |   |DF55   |1553    |
9      |   |DF55   |1553    |
10      |   |BS12   |4554    |
-----------------------------------------------

Sheetの【F列は 範囲名 エラー番号】としてあり
以下のVBAで1.のコンボボックスで選んだ機種番号で
SheetのE列でフィルターし、E列:機種番号に
合うF列:エラー番号だけを選択し、フォームの
下記VBAComboエラー番号.Listにエラー番号を
代入したいと思っています。
しかし、下記問題箇所なのですがフィルターはシート上
上手く選択させているにもかかわらず全てのエラー番号が
代入されてしまっています。つまりフィルターの効果が
反映さていないのです。下記問題箇所をどう書き換えたらいいか
教えていただけませんか?宜しくお願いします。
2.-------------------------------------------------------------
Private Sub Comboエラー番号_Enter()
  Worksheets("エラー項目").Select
  Range("E2").AutoFilter
  Range("E2").AutoFilter Field:=4, Criteria1:=Text機種番号.Value
  Comboエラー番号.List = Range("エラー番号").Value <----★問題箇所
End Sub
-------------------------------------------------------------ー

【40281】Re:再整理:AutoFiltertがうまくいかない
回答  ハト  - 06/7/10(月) 16:20 -

引用なし
パスワード
   ▼tatuya さん:

-------------------------------------------------------------
>Private Sub Comboエラー番号_Enter()
Dim MR As Range

>  Worksheets("エラー項目").Select
>  Range("E2").AutoFilter
>  Range("E2").AutoFilter Field:=4, Criteria1:=Text機種番号.Value

  For Each MR In Range("エラー番号").SpecialCells(xlVisible)
    Comboエラー番号.AddItem = MR.Value
  Next

>End Sub
>-------------------------------------------------------------ー

【40312】感謝:再整理:AutoFiltertがうまくいかない
お礼  tatuya E-MAIL  - 06/7/11(火) 11:35 -

引用なし
パスワード
   見事お教えいただいた方法でフィルター項目
のみリストに入れられました。
心より感謝致します。≦(._.)≧

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
  For Each MR In Range("エラー番号").SpecialCells(xlVisible)
    Comboエラー番号.AddItem MR.Value
  Next

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