エクセルVBAでのオートフィルター後の再実行方法

このQ&Aのポイント
  • エクセルVBAのマクロにおいて、オートフィルターを実行後に一時停止し、選択したセルに直接入力を行った後、マクロを再実行したい場合の方法を解説します。
  • エクセルVBAのマクロでオートフィルターを使用する際、特定の条件で一時停止させ、選択したセルに直接入力した後、マクロを再実行させたい場合の手順を紹介します。
  • エクセルVBAのマクロでオートフィルターを実行した後、一時停止し、選択したセルに直接入力を行った後にマクロを再実行させたい場合の方法をご紹介します。
回答を見る
  • ベストアンサー

エクセルVBAの一時停止後、 入力し再実行したい

エクセルVBAでオートフィルター実行後に一時停止し、オートフィルターで選んだエクセルシート上のセルに直接入力た後、マクロを再実行させたい。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/3/2 '製品コードより枠番を選ぶ Selection.AutoFilter Field:=12, Criteria1:="=?????1*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい Selection.AutoFilter Field:=12, Criteria1:="=?????2*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい Range("A1").Select End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

下記でどうですか?。 最初に Macro1を実行する。 次に Macro2を実行する。 Dim Flt As AutoFilter Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/3/2 Set Flt = ActiveSheet.AutoFilter If Flt Is Nothing Then ' AutoFilterがOFFなら何もしない Else ' AutoFilterがON であれば、OFF(解除する) Selection.AutoFilter End If '製品コードより枠番を選ぶ  Range(("A1"), ("D1")).Select ' 例 AutoFilterをかけるセルを指定する Selection.AutoFilter Field:=12, Criteria1:="=?????1*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい END Range("A1").Select End Sub Sub Macro2() ' ' Macro1 Macro ' マクロ記録日 : 2008/3/2 Set Flt = ActiveSheet.AutoFilter If Flt Is Nothing Then ' AutoFilterがOFFなら何もしない Else ' AutoFilterがON であれば、OFF(解除する) Selection.AutoFilter End If Range(("A1"), ("D1")).Select '例 AutoFilterをかけるセルを指定する Selection.AutoFilter Field:=12, Criteria1:="=?????2*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい Range("A1").Select END End Sub

KAREI468
質問者

お礼

ありがとうございます。 マクロについて、まだまだ理解できなくて(Tマクロで悪戦苦闘しています)アドバイス頂きましたので早速、試してみます。 また、教えてください!! 

関連するQ&A

  • EXCELのVBAを実行したら止まってしまいます。。。

    お世話になります。 下記のマクロを作ってみたのですが、シート「読込」にコピーされたところまで確認できるのですが、その後マウスが砂時計になって、動かなくなってしまいます。オートフィルタを解除する部分を削って実行してみましたが、同じところで止まりますので、貼付のところに問題があるようなのですが、何がいけないのでしょうか? また、なんかもっとスマートなプログラムになりませんでしょうか? 宜しくお願いします。 Sub test() Sheets("Normal").Select Range("A2").Select Selection.AutoFilter Field:=1, Criteria1:=Sheets("読込").Range("B2"), _ Operator:=xlAnd, Criteria2:=Sheets("読込").Range("C2") Selection.SpecialCells(xlVisible).Copy Sheets("読込").Select Range("C3").Select ActiveSheet.Paste Sheets("Normal").Select Application.CutCopyMode = False ActiveSheet.ShowAllData Selection.AutoFilter End Sub

  • EXCEL2000のVBAでオートフィルタの条件について

    いつもお世話になります。 VBAでオートフィルタの条件を、4/1~4/30まで指定する時に、 AutoFilter Field:=1, Criteria1:=">=2003/4/1", _ Operator:=xlAnd, Criteria2:="<=2003/4/30" というような式になると思うのですが、この日付の条件「>=2003/4/1」と「<=2003/4/30」をあらかじめシートのA1とB1セルに入力しておき、 AutoFilter Field:=1, Criteria1:="A1", _ Operator:=xlAnd, Criteria2:="B1" としたいのですが、このままでは、当然検索条件自体が「A1」「B1」となってしまいますよね。。。 セルを指定することって、できますでしょうか? 宜しくお願いします。

  • エクセルのオートシェイプでセルに入力した日付以上を検索をするマクロをつくりたい

    エクセル2003を使用しています。 Bの列に2008/1/1,2008/2/2,2008/3/3というように日付が入力されているのですが、A1に2008/1/10などで入力された日付以上を検索するオートシェイプのマクロがうまく動きません。 Selection.AutoFilter Field:=1, Criteria1:=>Cells(1,1), Operator:=xlAnd と、いうように記述してもエラーとなります。 どのように記述すればよろしいでしょうか。

  • エクセルVBA

    日誌を作成してて、月毎に印刷しなければならないために下記のようなコードを自動マクロで作成しました。 Sub 並び替え4月() 並び替え4月 Selection.AutoFilter Field:=2, Criteria1:=">=2007/4/1", Operator:=xlAnd, _ Criteria2:="<=2007/4/30" Application.Run "日誌.xls!登録" End Sub Sub 並び替え5月() 並び替え5月 Selection.AutoFilter Field:=2, Criteria1:=">=2007/5/1", Operator:=xlAnd, _ Criteria2:="<=2007/5/31" Application.Run "日誌.xls!登録" End Sub これで、1年分作ったのですが、2008年4月からに応用できません。任意のセルに年度を入力するだけでコードが置き換わるようにするにはどうすれば良いのか見当もつかない状況です。ネットで色々調べてみたんですが、参考になる例題も見つけられず困っております。どうぞ、宜しくお願いいたします。

  • Excelでマクロを繰り返したい。

    Excelでマクロを記録したら以下のようになりました このマクロを以下の条件で繰り返したいのですが。 Sub Macro1() '------------- '----------------------- ' Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=5*", Operator:=xlAnd, _ Criteria2:="<>5@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=6*", Operator:=xlAnd, _ Criteria2:="<>6@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=7*", Operator:=xlAnd, _ Criteria2:="<>7@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=8*", Operator:=xlAnd, _ Criteria2:="<>8@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 条件= Field:は4~35位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • EXCEL VBAでのオートフィルター

    EXCELのVBAで日付のデータを 過去1日、過去1週間、過去1ヶ月などのボタンを作成し クリックしたらオートフィルター機能で各条件に 合ったデータを表示するにようにしようと思っています。 しかし、フィルターがない状態でクリックすると 正常に機能するのですが連続してボタンを クリックするとうまくいきません。(表示がかわらない) 良い対策方法、または正しいやり方を教えてください。 よろしくお願いします。 EXCEL2000 Sub ボタン_クリック() Rows("3:3").Select Selection.AutoFilter Selection.AutoFilter Field:=1, _ Criteria1:=">=" & , 条件日,Operator:=xlAnd End Sub

  • Excel VBA 任意の日付から1週間分抽出

    VBA素人です。 シート1  A   B   C   D   E 1任意の日付 2日付 曜日 内容 氏名 備考 3 4 5 6 このようなデータ入力です マクロ記録でオートフィルタを用い日付抽出をするマクロを吸出し、ネットで知った今日から前後4日間のマクロを入力し,改変し応用しようと考えたのですが、やはり素人には壁が高くうまいこと行きません。 皆さんに教えていただきたいのは以下の式 Range("A2:E2").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$E$5").AutoFilter Field:=1, Operator:= _ xlFilterValues, Criteria1:=">=" & Date - 4, Operator:=xlAnd, Criteria2:="<=" & Date + 4 の↓この部分 xlFilterValues, Criteria1:=">=" & Date - 4, Operator:=xlAnd, Criteria2:="<=" & Date + 4 の & Date - 4 を、どう変更すれば A1に入力した任意の日付に出来るのか?です。 きっと基本的な事だとは思うのですが、教えてくださいお願いします。

  • VBAによるフィルターについて

    VBAによるフィルターについて 表のフィールドから指定したセルの値を含む行をフィルターにかけるVBAを作成しています。 下記のように作成したのですが,うまくいきません。 表の上に検索値を入力するところを設定しました。 (C1=検索値です。)お願いします。 Sub Macro2() ' ' Macro2 Macro ' ' ActiveSheet.Range("$A$4:$L$425").AutoFilter Field:=3, Criteria1:="range(*c1*)", _ Operator:=xlAnd End Sub

  • エクセルの変数について

    お世話になります。 下のマクロについてどうしてもわからないので教えてください。 開始日、最終日をinputboxにて日付を入れてオートフィルターで結果をだしたいのですが、どうしてもオートフィルター内のmyfirstdateとmylastdateに変数の値が入りません。 どこが間違っていますでしょうか? お願いします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2006/12/7 ユーザー名 : AAAAAA ' Dim myfirstdate As Date Dim mylastdate As Date myfirstdate = InputBox("開始日を入力してください。" & vbCrLf & "例)12/1") mylastdate = InputBox("最終日を入力してください。" & vbCrLf & "例)12/31") Selection.AutoFilter Field:=2, Criteria1:=">=myfirstdate", Operator:=xlAnd, _ Criteria2:="<=mylastdate" ' End Sub

  • エクセルのマクロでフィルタを判別するマクロ

    いつもお世話になっております。 エクセル2000で オートフィルタを使用した表があります。 やりたいことは以下の通りです。 AutoFilter Field:=1(一番左側のフィルタ)が、 なんらかのフィルタリングがされている (フィルタの▼が青い状態)のときはそのままで、 なにもフィルタリングされていない (フィルタの▼が黒い状態)のときは Selection.AutoFilter Field:=1, Criteria1:="<>#N/A", Operator:=xlAn を実行させたいのです。 どのようなマクロを記述すればいいか ご教示ください。 よろしくお願いします。