
データの件数が増えてきたので、コンボボックスで選択した項目を一発で表示させるマクロを組みたいと思います。
前提は以下の通りです。
Webからの受け売りというか、書かれていた通りにやってみたのですが動作しません。どこが間違っているのでしょうか。
また、他にも方法があるようでしたらお知恵をお貸し下さい。
+++
マクロを実行させたいシートにはA3からK3までの項目があります。
そのうち、B3の項目でフィルタをかけたいです。
1.マクロを実行するシートとは別に「マスター」というシートを作成。
そこにコンボボックスにリンクさせる項目を入力。(A3:A16)
セルC1にINDEX関数を置き、(A3:A16)のそれぞれの値を文字に変換。
2.その変換した文字を変数に格納
3.もし、空白を選択してしまったら、マクロから抜ける
4.オートフィルタのセットは、既にセットされていたら一旦解除し再度セット。
5.変数に格納した文字をキーにして、オートフィルタで抽出する。
+++
Sub Combo_AutoFilter()
Application.ScreenUpdating = False
'変数宣言
Dim 選択項目 As Variant
Dim 実行シート名 As Variant
'現在のシート名の格納
実行シート名 = ActiveSheet.Name
'選択項目の格納
Sheets("マスター").Select
選択項目 = Cells(1, 3)
If 選択項目 = Empty Then
Sheets(実行シート名).Select
Exit Sub
End If
'オートフィルタのセット
Sheets(実行シート名).Select
If ActiveSheet.AutoFilterMode = True Then
Selection.AutoFilter
Range("A3:K3").Select
Selection.AutoFilter
Else
Range("A3:K3").Select
Selection.AutoFilter
End If
'オートフィルターで選択
Selection.AutoFilter Field:=2, Criteria1:=選択項目
Range("A3").Select
End Sub
+++
No.1ベストアンサー
- 回答日時:
変数『選択項目』に代入されるデータは期待通りの物でしょうか
実際に操作してうまくいくて順を『新しいマクロの記録』で作成した物と見比べてみましょう
また、現状どのようなデータがあって 何をキーにしてどのような結果を期待するのか
実際にマクロを動作させた際にどの部分が期待に反する結果なのかを投稿しましょう
Sheets(実行シート名).Select
If ActiveSheet.AutoFilterMode = True Then
Selection.AutoFilter
Range("A3:K3").Select
Selection.AutoFilter
Else
Range("A3:K3").Select
Selection.AutoFilter
End If
の部分で
Range("A3:K3").Select
Selection.AutoFilter
は共通で使えると思いますから
Sheets(実行シート名).Select
Range("A3:K3").Select
If ActiveSheet.AutoFilterMode = True Then
Selection.AutoFilter
End If
Selection.AutoFilter
といった具合に簡略か出来ますよ
結局、自分ではこれ以上時間が割けず、専任者にトスしてしまいました。
ご教示いただいたポイントは今後の参考にさせて頂きます。
また簡略化できる部分のアドバイスもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
Excelマクロのエラーを解決した...
-
SheetsクラスのSelectメソッド...
-
【Excel VBA】Worksheets().Act...
-
XL:BeforeDoubleClickが動かない
-
Excel VBA Dialogsheetの編集
-
オートシェイプの文字が更新さ...
-
vba 貸出管理台帳
-
ExcelのVBAのマクロで他のシー...
-
1シート内にまとめられている...
-
【VBA】特定の文字で改行(次の...
-
【ExcelVBA】全シートのセルの...
-
ハイパーリンクがうまくできま...
-
VBAで指定シート以外の選択
-
エクセルのマクロでアクティブ...
-
【VBA】シート名に特定文字が入...
-
エクセルについて教えてください。
-
セルの値によって、シート見出...
-
【Excel VBA】任意のファイルだ...
-
Excelマクロ 全シートを対象に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
実行時エラー1004「Select メソ...
-
特定の文字を含むシートだけマ...
-
XL:BeforeDoubleClickが動かない
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【Excel VBA】Worksheets().Act...
-
エクセルVBA Ifでシート名が合...
-
Excel チェックボックスにチェ...
-
シートが保護されている状態で...
-
Excel VBA リンク先をシート...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
同じ作業を複数のシートに実行...
-
エクセルのシート名変更で重複...
-
VBA 検索して一致したセル...
-
【VBA】色のついたシート名を取得
-
VBAで指定シート以外の選択
おすすめ情報