• 締切済み

VB.netでのオートフィルタについて

VB.netでプログラミングをしてるのですが、 xlapp.Selection.autofilter(field:=9, criteria1:="",operator:=xlor, Criteria2:="*予") でエラー(xlorが宣言されてません)で出てしまいます。 どうしたらいいのですか?

みんなの回答

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> エラー(xlorが宣言されてません)で出てしまいます。 「xlor」は、VB.NETの定数ではなく、Excelの定数ですから、 (方法1)Excelへの参照を追加する。  「Microsoft Excel ?.? Object Library」を参照追加し、  「Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlOr」で指定。 (方法2)VB.NET側で自分で宣言する。  コードの適切な位置に「Const xlOr = 2」を記述 のどちらかを行う必要があります。

回答No.1

お世話になります。 Excel や .NET のバージョンが解らないので何とも言えませんが、 とりあえず、Excel 上で .NET からやりたい操作を行って マクロで記録し、Excel の Visual Basic Editor 上で 自動生成された VBA コードを参考にしてみてはいかがでしょうか。

関連するQ&A

  • オートフィルタ 検索

    オートフィルタで三つの条件でデータを抽出するマクロを作っています 以下のような記述は誤りでしょうか? ActiveSheet.Range("$B$2:$D$114").AutoFilter Field:=1, Criteria1:="=02722*" _ , Operator:=xlOr, Criteria2:="=02729*" _ , Operator:=xlOr, Criteria3:="=02737*" 表はこのようなものです ↓キー 番号      名前      値 027**     **     * 027**     **     * 027**     **     * ・ ・ ・

  • オートフィルタ マクロについて

    質問です。 オートフィルタで複数列を1つの条件で抽出したいのですが、教えてください。 たとえばA列が納品書No.・B列が受注No.・C列が商品No.なのですがすべて数字の為、出来ればInBox一回でA-C列を検索してほしいです。 指定納品書NO 受注NO 元品番 21812 3252608 77 21880 3307989 32B 22053 3389769 95414A 22050 3389770 67312H 22052 3389771 67312H 22050 3389773 67118H 以下の様なマクロを作ってみましたが、 A-C列全てに一致しないと抽出しないようです。 どなたかご教授いただけないでしょうか? マクロ '条件1 の設定 Dim 検索NO As Variant '抽出キーの入力指示 検索NO = InputBox("検索NOを入力てください。") 'キャンセルした場合の処理 If 検索NO = Empty Then Exit Sub End If 'オートフィルタがかかっていなかったらかける 'かかっていたら念の為一度解除し再設定 If ActiveSheet.AutoFilterMode = False Then Range("A2:O2").Select Selection.AutoFilter Else Selection.AutoFilter Range("A2:O2").Select Selection.AutoFilter End If Selection.AutoFilter Field:=1, _ Criteria1:=">=" & 検索NO, Operator:=xlAnd, Criteria2:=" " & 検索NO Selection.AutoFilter Field:=2, _ Criteria1:=">=" & 検索NO2, Operator:=xlAnd, Criteria2:=" " & 検索NO2 Selection.AutoFilter Field:=3, _ Criteria1:=">=" & 検索NO3, Operator:=xlAnd, Criteria2:=" " & 検索NO3 AutoFilterMode = False Application.ScreenUpdating = True End Sub よろしくお願いいたします。

  • excel2000のオートフィルタマクロ

    マクロ記録の簡単な編集程度の知識しかありません。 C1に入っている文字列を、完全一致ではなく、”含む”状態でオートフィルタしたいのですが、 どの様に記述すればいいですか? 現状、下記のようになっています。 Selection.AutoFilter Field:=2, Criteria1:="C1", Operator:=xlAnd よろしくお願いいたします。

  • EXCELマクロでワイルドカードを使ったオートフィルタ処理の方法がわからない

    エクセルのマクロがうまく動かないので、教えてください。 あるセルにカーソルをおいて、そのセルの文字を含んだ文字で(ワイルドカードを使って)オートフィルタ処理をしたいのですが、 「構文エラー」となってしまいます。 Dim num As String num = ActiveCell.Value Sheets("リスト").Select Columns("AN:AN").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="=*"&num&"*", Operator:=xlAnd ActiveWindow.ScrollColumn = 2 Range("A1").Select Criteria1:="=*"&num&"*"の部分で 「構文エラー」になっているようなのですが… お分かりになる方教えてください。よろしくお願いします。

  • 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」となってしまいますよね。。。 セルを指定することって、できますでしょうか? 宜しくお願いします。

  • マクロ オートフィルタで困っています。

    マクロ オートフィルタで困っています。 1列目と2列目からそれぞれ条件をフィルタで抽出し、抽出された行を削除するマクロを組んだのですが(下記)、Bの条件が表にない場合に2行目から下が全て削除されてしまいます。 元の表は毎週変わるため、抽出する条件があるかないかはその時次第です。 オートフィルタにこだわってはいませんが、その他の抽出方法もいまいち分からず……。 どのようにすればよいのか、教えていただけますでしょうか。 宜しくお願い致します。 <マクロ> Sub Macro() Selection.AutoFilter Field:=1, Criteria1:="A" Selection.AutoFilter Field:=2, Criteria1:="B", Operator:=xlAnd Dim gyou(1) As Long gyou(0) = 2 gyou(1) = Range("A1").CurrentRegion.Rows.Count Rows(gyou(0) & ":" & gyou(1)).Select Selection.Delete Shift:=xlUp End Sub

  • オートフィルターの条件指定

    こんばんは。 セルA1に入力した値で始まる値を検索したく困っています。 素直にオートフィルターのオプションから指定すれば出来るのですが、 誰でも処理できるよう「セルA1に条件を入力。集計ボタンをクリック。」で済ませたいのです。 Selection.AutoFilter Field:=1, Criteria1:="=@@@* ", Operator:=xlAnd 上記@@@をセルA1に指定させる記述を教えて下さい。 よろしくお願いします。

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

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

  • オートフイルターで選んだデータを連続で印刷したい

    マクロの初心者です。自動マクロでオートフイルターで該当する番号のデータを選んで印刷するという作業を登録しましたが、実は同じ作業を 7回から8回繰り返すことになり、つど登録のボタンを押すのは大変なので連続で印刷できないか考えました。   (1)Sheets("Sheet1").Select   (2)Range("G3").Value = "2"   (3)Selection.AutoFilter Field:=1, Criteria1:="2"   (4)ActiveWindow.SelectedSheets.Printout   (5)Selection.AutoFilter Field:=1 (2)と(3)の入力する番号を変えて(5)の前に以下のように印刷する回数だけ書き加えて実行したら、動きましたが印刷には結構時間がかかりました。別の書き方で印刷時間が短縮されるような方法はありませんか。  Range("G3").Value = "3"    Selection.AutoFilter Field:=1, Criteria1:="3"  ActiveWindow.SelectedSheets.Printout    Range("G3").Value = "4"   Selection.AutoFilter Field:=1, Criteria1:="4"  ActiveWindow.SelectedSheets.Printout さらに、できればデータのない番号の時は印刷しないようにしたいのですがどうしたらよいのでしょうか。 G3とオートフイルターで選ぶ番号とは同じ番号です。G3に入れた番号で G4にあて先が入るように関数を設定してあります。 どうぞよろしくお願いします。 Windows XP Excel2000 を使っています。                                

  • Excelマクロでオートフィルターからコピペ

    ファイルのB列の値から0以外の値をオートフィルターで抽出し、値を、別のファイルのD列の一番下に貼りつけるマクロを作っていますがうまくいきません。 今作ったのは Sub macro1() If ActiveSheet.AutoFilterMode = False Then Range("A:G").Select Selection.AutoFilter Else Selection.AutoFilter Range("A:G").Select Selection.AutoFilter End If Selection.AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd Range("A1").Select Range("B2", Range("B2").End(xlDown)).Select Selection.Copy Windows("貼りつけるファイル名").Activate Cells(Rows.Count, 4).End(xlUp).Offset(1).Select ActiveSheet.Paste End Sub です。 フィルターで0以外の値を抽出しコピーまではできていますが、貼りつけるところでエラーがでます。 Microsoft Visual Basic 400 というエラーです。 何が悪いのか分かりません・・・。 分かる方いましたらご教授ください。よろしくお願いします。

専門家に質問してみよう