よろしくお願いします。
エクセルにて顧客一覧を作成しました。
よくフィルターで単語で絞り込むため、いちいちフィルターで選択しなくても、よく選択する単語はボタンにして、ボタンを押したらその言葉でフィルターがかかるようにしたいのです。
まだマクロは勉強し始めで、もっぱら自動記録にて作成したのを手直ししています。
ボタンを作ってフィルターで絞り込むことには成功したのですが、例えば・・・
1、まず「株式ボタン」で株式会社のみ表示する
2、さらに「有限ボタン」で株式会社と有限会社を一緒に表示する
3、さらにさらに「合資ボタン」で合資会社も一緒に表示する
4、ここで「有限ボタン」を押したら表示中の一覧から有限会社が消える
5、最後にすべての列のフィルターを解除(フィルター機能はそのまま)する
というように、すでにフィルターで絞り込んだ表にプラスして表示するような・・・
指定した言葉のみのフィルターのON・OFFみたいな・・・
うまく伝わるか心配ですが、もしも伝われば、お願いします。
No.2ベストアンサー
- 回答日時:
あんまり・・・ボタンにする必要性を感じないんですよね。
会社区分列を追加してオートフィルタとかフィルタオプションを使うとかで解決できそうな気がします。
ユーザー設定のビューとかも使えますし。
そうですね!その手がありますよね!!!
まさに「目からウロコ」です!
恥ずかしながら、「列を増やす」というアイデアがまったく浮かびませんでした。
難しく考えてました(^^;
ありがとうございました!(^-^)
No.1
- 回答日時:
こんばんは。
しばらく様子を見ていました。
>うまく伝わるか心配ですが、もしも伝われば、お願いします。
というよりも、ご質問内容が、製作依頼になってしまっています。マクロを勉強しているというなら、マクロを書くの必要な部分というものもお分かりになるだろうに、作成依頼で、何でもかんでも盛り込んでしまおうとするのは、ちょっとまずいですよね。
>ボタンを作ってフィルターで絞り込むことには成功したのですが、例えば・・・
データ範囲がこうなっているとか見せても良かったのではないでしょうか。
それに、フィルターで絞り込んでいるなら、そのマクロ・コードは見せていただいても良いような気がします。
>すでにフィルターで絞り込んだ表にプラスして表示する
オートフィルターでは、2つの項目しかフィルターにのせることができません。
ご要望の内容は、以下のようになりますが、ボタンを3つも作って、それを連動させるなんていうことは、難題には違いないと思います。もう少し単純なものにすればよかったと思います。
'//
Const START As String = "A3" 'タイトル行から
Const dFIRST As String = "A4" '検索対象列のデータの始まり部分
Dim fRng As Range
Dim flg1 As Boolean
Dim flg2 As Boolean
Dim flg3 As Boolean
Const FORM1 As String = "COUNTIF(" & dFIRST & ",""*株式*""),COUNTIF(" & dFIRST & ",""*株*"")"
Const FORM2 As String = "COUNTIF(" & dFIRST & ",""*有限*"")"
Const FORM3 As String = "COUNTIF(" & dFIRST & ",""*合資*"")"
Sub SortMacro1() 'ボタン1
With ActiveSheet
If flg1 Then
.Range("AA2").FormulaLocal = ""
flg1 = False
Else
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & ")"
flg1 = True
End If
Call FilterMacro
End With
End Sub
Sub SortMacro2() 'ボタン2
'合資会社選択
With ActiveSheet
If flg1 = False And flg2 = False Then
.Range("AA2").FormulaLocal = "=" & FORM2
flg2 = True
ElseIf flg1 = False And flg2 Then
.Range("AA2").FormulaLocal = ""
flg2 = False
ElseIf flg1 And flg2 Then
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & ")"
flg2 = False
Else
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & "," & FORM2 & ")"
flg2 = True
End If
Call FilterMacro
End With
End Sub
Sub SortMacro3() 'ボタン3
'有限会社検索
With ActiveSheet
If flg1 = False And flg2 = False And flg3 = False Then
.Range("AA2").FormulaLocal = "=" & FORM3
flg3 = True
ElseIf flg1 = False And flg2 = False And flg3 = True Then
.Range("AA2").FormulaLocal = ""
flg3 = False
ElseIf flg1 = False And flg2 And flg3 = False Then
.Range("AA2").FormulaLocal = "=OR(" & FORM2 & "," & FORM3 & ")"
flg3 = True
ElseIf flg1 = False And flg2 And flg3 Then
.Range("AA2").FormulaLocal = "=" & FORM2
flg3 = False
ElseIf flg1 And flg2 = False And flg3 = False Then
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & "," & FORM3 & ")"
flg3 = True
ElseIf flg1 And flg2 = False And flg3 Then
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & ")"
flg3 = False
ElseIf flg1 And flg2 And flg3 = False Then
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & "," & FORM2 & "," & FORM3 & ")"
flg3 = True
ElseIf flg1 And flg2 And flg3 Then
.Range("AA2").FormulaLocal = "=OR(" & FORM1 & "," & FORM2 & ")"
flg3 = False
End If
Call FilterMacro
End With
End Sub
Private Sub FilterMacro()
Application.ScreenUpdating = False
With ActiveSheet
If fRng Is Nothing Then
Set fRng = .Range(START).CurrentRegion
End If
fRng.AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=.Range("AA1:AA2"), _
Unique:=False
End With
Application.ScreenUpdating = True
End Sub
>マクロを勉強しているというなら、マクロを書くの必要な部分というものもお分かりになるだろうに、作成依頼で、何でもかんでも盛り込んでしまおうとするのは、ちょっとまずいですよね。
まったくその通りで、お恥ずかしいかぎりです。
マクロの記述をありがとうございます。
とても難しそうなマクロですが、マクロの本を購入したので、頑張って自力でこれくらい記述できるように勉強したいと思います。
ありがとうございました!(^-^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのフィルター後の並び替えについて 2 2023/05/10 04:00
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでフィルターをかけた...
-
VBA オートフィルター状態から...
-
レンジフィルターの訪問販売
-
レンジフードフィルタの訪問販...
-
RFフィルタ、IFフィルタについ...
-
乾燥機 フィルター交換したけ...
-
ファンヒーターの黒メッシュフ...
-
ThunderBirdのメッセージフィル...
-
ソフトバンクのあんしんフィル...
-
デジタル信号処理を用いた雑音...
-
プライバシーフィルターの取り...
-
お風呂の循環アダプターカバー...
-
ティッシュペーパーは空気を通...
-
便器の脱臭装置?
-
乾燥機のスポンジ状の部分につ...
-
クリナップレンジフード新製品
-
部屋をどれだけ綺麗に掃除して...
-
空気清浄機でシンナーは除去で...
-
空気清浄機の中にピン留めがは...
-
カビ臭い家。築20年、オゾン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターをかけた...
-
ソフトバンクのあんしんフィル...
-
ダイニチ・ブルーヒーター
-
キッチンのレンジフードを フラ...
-
浄水器 パナソニックと日本トリム
-
お風呂の循環アダプターカバー...
-
RFフィルタ、IFフィルタについ...
-
ファンヒーターの黒メッシュフ...
-
Excel 名簿の検索…検索項目だけ...
-
VBA オートフィルター状態から...
-
レンジフィルターの訪問販売
-
ティッシュペーパーは空気を通...
-
デスクトップpcホコリ対策
-
同時給排型レンジフードの花粉...
-
レンジフードフィルタの訪問販...
-
レンジフードのフィルターは不...
-
エクセルのマクロでフィルター...
-
乾燥機 フィルター交換したけ...
-
プライバシーフィルターの取り...
-
ソレアード2cupコーヒーメーカ...
おすすめ情報