- 締切済み
VBAのAutoFilterのFieldに名前
VBA(EXCEL)のAutoFilterについて質問します。 Fieldに列番号ではなく、列につけた名前を設定することはできないでしょうか? Sub Macro1() Selection.AutoFilter ActiveSheet.Range("$A$1:$B$9").AutoFilter Field:=1, Criteria1:="山田" End Sub 列番号で設定すると、列が増えた時に、改めてAutoFilterの列番号設定を変更する必要があり煩雑に感じています。 名前設定以外に適切な方法があれば教えて下さい。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17068)
- HohoPapa
- ベストアンサー率65% (454/692)
- SI299792
- ベストアンサー率48% (721/1492)
- tanakanono
- ベストアンサー率24% (134/553)
関連するQ&A
- VBAによるフィルターについて
VBAによるフィルターについて 表のフィールドから指定したセルの値を含む行をフィルターにかけるVBAを作成しています。 下記のように作成したのですが,うまくいきません。 表の上に検索値を入力するところを設定しました。 (C1=検索値です。)お願いします。 Sub Macro2() ' ' Macro2 Macro ' ' ActiveSheet.Range("$A$4:$L$425").AutoFilter Field:=3, Criteria1:="range(*c1*)", _ Operator:=xlAnd End Sub
- ベストアンサー
- その他MS Office製品
- Excel2003VBA
お世話になっております。 手作業マクロの記録で下記作業を行い、一部修正をして一度はうまく動作していたのですが 1点 問題が御座いまして独自に色々試していたのですが、どうにもうまくいかないので どなたかご教授いただけませんでしょうか。 Sub ●●用() ' ' ●●用 Macro ' 12月1月の店舗を抽出し新しいブックに移動する。 ' Selection.AutoFilter Field:=3, Criteria1:="=12月", Operator:=xlOr, _ Criteria2:="=1月" Selection.AutoFilter Field:=8, Criteria1:="(店名)" Range("A4:W2076").Select Selection.Copy Sheets.Add ActiveSheet.Paste Application.CutCopyMode = False Worksheets("Sheet1").Select Worksheets("Sheet1").Move Workbooks("営業部まとめ.xls").Sheets("全件表示").Activate Selection.AutoFilter Field:=3 Selection.AutoFilter Field:=8 Range("A5").Select ActiveWorkbook.Save End Sub まず、 >Worksheets("Sheet1").Move ここだけあれば >Worksheets("Sheet1").Select こっちは必要ないでしょうか? あと、上記の中で > Worksheets("Sheet1").Select この部分なのですが、毎回「Sheet1」とは限らないので「アクティブシート」にしたいと思い色々試してみましたが 全てエラーとなり、結局元にもどしてしまいました。 > Worksheets("Sheet1").Move あと出来ればこれも移動させた後でデスクトップに名前を付けて保存までしたいのですが どのようなコードを追加すればよろしいでしょうか。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- マクロ AutoFilter・・Criterial
ActiveSheet.Range("$A$2:$P$5000").AutoFilter Field:=9, Criteria1:="1" というオートフィルターのマクロがあります。 Criteria1:= の次にある ”1” はどういう意味ですか?
- ベストアンサー
- Excel(エクセル)
- Excel2003VBAご教示ください。
お世話になっております。 今 扱っている資料に手作業でマクロを登録しました。 _______________________________ Option Explicit Sub ●●用() ' ' ●●用 Macro ' 12月1月の店舗を抽出し新しいブックに移動する。 ' ' Selection.AutoFilter Field:=3, Criteria1:="=12月", Operator:=xlOr, _ Criteria2:="=1月" Selection.AutoFilter Field:=8, Criteria1:="(店名)" Range("A4:W2076").Select Range("A86").Activate Selection.Copy Sheets.Add ActiveSheet.Paste Application.CutCopyMode = False Sheets("Sheet1").Select Sheets("Sheet1").Move End Sub ________________________________ 上記は見たままのフィルタを使って 条件を2つ付けて絞って表全体を選択してコピーをし新しいシートを挿入して、そこに貼り付け そのシートを新しいブックに移動するという 見たまんまの作業ですが よくよく考えたら「フィルタを絞ったまま広げてないなぁ」と思い、 _____________________________ Option Explicit Sub フィルタ解除() ' ' フィルタ解除 Macro ' ●●用に抽出したフィルタの解除 ' ' Selection.AutoFilter Field:=3 Selection.AutoFilter Field:=8 Range("A5").Select ActiveWorkbook.Save End Sub ________________________________ 2つ目のマクロとして、これもまた見たままなのですが広げてセルをホームポジション(?)に移動させ、 上書き保存をするというマクロを別のモジュールで作成しました。 そこで質問なのですが、 ・上記2つのマクロは1つにまとめる事は可能でしょうか。 というのも1つめのマクロで新しいブックがアクティブになっているようで その直後に2つめのマクロをそのまま貼り付けたら 「実行時」か「コンパイル」どちらかのエラーがでそうだな。 と思い質問させていただきました。 2つ目の質問として ・新しいブックに名前を付けてデスクトップに保存までしておけば良かったなぁ と思いましたので それも合わせてご教示いただければと思いました。 まだVBAの勉強を始めたばかりですが 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL2003のVBAで AutoFilter で 「名前付き引数
EXCEL2003のVBAで AutoFilter で 「名前付き引数が見つかりません」 のエラーが出ます。解決方法をご教示下さい。 Private Sub CommandButton14_Click() Dim myStr Workbooks("***.xls").Activate myStr = Sheet1.Range("F9").Value Range("F2:F17").AutoFilter Field:=1, Criterial:=myStr End Sub
- ベストアンサー
- Windows XP
- エクセル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
- ベストアンサー
- Windows XP
- マクロのAutoFilter Fieldについて
初めての質問のため、足りない情報などあるかもしれませんので、 その際はご指摘いただけますと幸いです。 マクロのAutoFilter Fieldの場所を可変させたい。 調べ方が甘いだけだと思いますが、AutoFilter Fieldの値を可変させる方法を教えてください。 縦軸に製品、横軸に日付の情報を持つ計画表に対し、 とある日の製品計画情報を抽出したいと考えています。 マクロサンプル記載 Range("$A$2:$z$100").AutoFilter Field:="A1", Criteria1:="製品名" ※A1にはフィルタをかけたい列番号が引数として入っています。 上記の"A1"部分を1や2などの定数にすれば問題ないのですが、 日付によって計画が違うため、可変させたいと考えています。 何か良い方法があれば教えていただけますと幸いです。
- ベストアンサー
- Visual Basic
- 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
- ベストアンサー
- オフィス系ソフト
- エクセルマクロVBAについて
エクセルマクロVBAについて、こんなこと出来ますか? ■A列からAS列の1行目にヘッダー情報をもつデータベース ■A列に担当者名 ■A列にオートフィルタをかけて各担当ごとにデータを抽出したものを別シートに貼り付けて自動印刷したい ■担当者は都度変わるので、Criteria1:="xxx"というようには直接書けない(担当名を自動で抽出したい) ■担当者の数も都度変わる ■補足 一行のデータを特定の雛形に転記する必要があるので別シートに出したいです ちなみに、アナログで記録したコードは以下です。 Sub test1() Sheets("データ抽出シート").Select ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="山田" Range("$A$1:$AS$300").Select Selection.Copy Sheets("抽出データ貼付シート").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("データ抽出シート").Select ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="斉藤" Range("$A$1:$AS$300").Select Selection.Copy Sheets("抽出データ貼付シート").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("データ抽出シート").Select ActiveSheet.Range("$A$1:$AS$300").AutoFilter Field:=1, Criteria1:="田中" Range("$A$1:$AS$300").Select Selection.Copy Sheets("抽出データ貼付シート").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub これ、担当者の抽出を自動でなんとかなりませんか?
- 締切済み
- オフィス系ソフト
- オートフィルター VBAでの設定について
オートフィルターで0以外のものに絞って、 コピーしたいのですが、 値が0しかない場合にすべてのものをコピーするように なってしまうので、 コピーすることがないようにさせたいです。 例) Sub test() Sheets("Sheet1").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$A$10").AutoFilter Field:=1, Criteria1:="<>0" Range("A2:A10").Select Range(Selection, Selection.End(xldown)).Select Selection.Copy End Sub このようなコードの場合にA2:A10の値が0しかなかった場合に コピーしている状態をなくしたいのですが、 どこのコードを変えたらいいでしょうか。 回答よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
お礼
回答ありがとうございます。 対象範囲は入力された値のある範囲を設定しています。