質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

4616閲覧

VBA オートフィルタ解除の方法

cat_junko

総合スコア44

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/08/15 01:05

Sub 担当別一覧() With Worksheets("ローデータ") .Range("D5").AutoFilter _ Field:=4, Criteria1:="=ISAKA" .Range("E5").AutoFilter _ Field:=5, Criteria1:="=フォロー中", Operator:=xlOr, Criteria2:="=挨拶待ち" .Range("G5").AutoFilter _ Field:=7, Criteria1:=">=1" .Range("O5").AutoFilter _ Field:=15, Criteria1:="=" '1~4行目を非表示 'Rows("1:4").Hidden = True 'H~N列,P~T列を非表示 Columns("H:J").Hidden = True Columns("L:T").Hidden = True Range("A1").CurrentRegion.Copy Sheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Offset End With 'オートフィルタを解除する Worksheets("ローデータ").AutoFilterMode = False End Sub

該当する担当者一覧をオートフィルタでまとめてsheet2へコピーした後ローデータの方は他の担当者分を
同じ作業しないといけないのでオートフィルタを解除しないといけないのですが上記のコードだと
列が表示されません。(あと、ちゃんと解除されているのか心配です)
列の再表示のコードもあるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

下記のように追加してみてはどうでしょうか?

VBA

1'オートフィルタを解除する 2Worksheets("ローデータ").AutoFilterMode = False 3 4Worksheets("ローデータ").Columns("H:J").Hidden = False '追加 5Worksheets("ローデータ").Columns("L:T").Hidden = False '追加

投稿2016/08/15 02:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cat_junko

2016/08/15 12:04

ありがとうございます。 上記、コードで出来ました。 もう一つ教えてください。 フィルターを5行目(A5~T5)セルにタイトルが入っているのでそこを基準に 設定したいのですがどうすればそこを基準にしてくれるのかがわかりません。 何度やってもタイトル行が消えてしまいます。 HとL、IとM、JとN行目を、上記と同じように作業します。 1行目~4行目までは、その他の情報が入っていて5行目にタイトル行があります。 担当者別で、合計4つの表が一つのシートに入り担当者が現在7名です。 担当者別なので、「担当者マスタ」を作成し回すのがいいのかなと考えています。 どのようなコードになるのか困っています。
退会済みユーザー

退会済みユーザー

2016/08/16 01:19

追加の質問ですが、質問にあるコードとは別物でしょうか? 下記のようにExcelで操作してみましたが、タイトルが消えることはありませんでした。 コードがないと助言は難しいです。 ①A1~D4まで適当に値を入力 ②A5~T5まで「タイトルn」を入力 ③A6~T8まで適当に値を入力 ④5行目にオートフィルタを設定 ⑤フィルタを掛ける →5行目は消えませんでした。
cat_junko

2016/08/16 10:49

動くときと、動かない時の理由は良く分からないけど動いていました。 上記に、加えてのコードがほしいと思い追加質問しました。 <code> Sub 担当別一覧() Dim shrow Dim list '----------------------------------------------- With Worksheets("ローデータ") .Rows("5:5").Select Selection.AutoFilter .Range("D5").AutoFilter _ Field:=4, Criteria1:="=ISAKA" .Range("E5").AutoFilter _ Field:=5, Criteria1:="=フォロー中", Operator:=xlOr, Criteria2:="=挨拶待ち" .Range("G5").AutoFilter _ Field:=7, Criteria1:=">=1" .Range("O5").AutoFilter _ Field:=15, Criteria1:="=" '1~4行目を非表示 Rows("1:4").Hidden = True 'H~N列,P~T列を非表示 Columns("H:J").Hidden = True Columns("L:T").Hidden = True Range("A5").CurrentRegion.Copy Sheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Offset End With 'オートフィルタを解除する '1~4行目を非表示 Rows("1:4").Hidden = False 'H~N列,P~T列を非表示 Columns("H:J").Hidden = False Columns("L:T").Hidden = False '手順②------------------------------------------------- With Worksheets("ローデータ") .Rows("5:5").Select Selection.AutoFilter .Range("D5").AutoFilter _ Field:=4, Criteria1:="=ISAKA" .Range("E5").AutoFilter _ Field:=5, Criteria1:="=フォロー中", Operator:=xlOr, Criteria2:="=挨拶待ち" .Range("H5").AutoFilter _ Field:=8, Criteria1:=">=1" .Range("P5").AutoFilter _ Field:=16, Criteria1:="=" '1~4行目を非表示 Rows("1:4").Hidden = True 'H~N列,P~T列を非表示 Columns("G:G").Hidden = True Columns("I:J").Hidden = True Columns("K:K").Hidden = True Columns("M:T").Hidden = True shrow = Sheets("sheet1").Cells(Rows.Count, 1).End(xlUp) + 2 .Range("A5").CurrentRegion.Copy Sheets("sheet1").shrow 'オートフィルタを解除する Worksheets("ローデータ").AutoFilterMode = False Worksheets("ローデータ").Columns("G:G").Hidden = False Worksheets("ローデータ").Columns("I:J").Hidden = False Worksheets("ローデータ").Columns("K:K").Hidden = False Worksheets("ローデータ").Columns("M:T").Hidden = False end with end sub </code>
cat_junko

2016/08/16 11:01

上記は、①、②のみですが③と④があります。 ①の条件で、抽出しシートに書き出したあと②を①の表の2行下くらいに貼り付けたい のですがどうも動作してくれません。 ついでに、シートを追加してシート名を担当者名に変更しながら動作すると良いのですが。 宜しくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問