
データの件数が増えてきたので、コンボボックスで選択した項目を一発で表示させるマクロを組みたいと思います。
前提は以下の通りです。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
【ExcelVBA】全シートのセルの...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
エクセルのVBAの変更点がわ...
-
シート名の一部を変更する方法...
-
userFormに貼り付けたLabelを変...
-
セルのコピーで「オブジェクト...
-
VBAで以下の処理をする方法があ...
-
エクセルのシート名変更で重複...
-
シートが保護されている状態で...
-
ExcelのVBAコードについて教え...
-
エクセルVBA Ifでシート名が合...
-
【VBA】色のついたシート名を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報