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

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

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

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

1回答

2910閲覧

VBScript Excelのフィルターの抽出条件

nekoyama771

総合スコア29

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2022/06/29 12:46

VBScriptでのExcelのフィルターの抽出条件の設定が分かりません。
' 前日以前の日付または日付が空白のデータのみ表示
book.WorkSheets("Sheet1").Range("A1").AutoFilter 2, Date

※日付列は2列目
の部分をどう表示すれば良いか困っています。
よろしくお願いします。

VBScript

1' Excel起動 2Set oXlsApp = CreateObject("Excel.Application") 3If oXlsApp Is Nothing Then 4 ' Excel起動失敗 5 MsgBox "Excel起動失敗" 6 WScript.Quit 7End if 8' Excel表示 9oXlsApp.Application.Visible = true 10' ブックを開く 11Set book=oXlsApp.Application.Workbooks.Open("C:\DATA\Test.xlsx") 12' フィルタが設定されていなければ設定 13If (book.Worksheets("Sheet1").AutoFilterMode = false) Then book.Worksheets("Sheet1").Range("A1").AutoFilter 14' 前日以前の日付または日付が空白のデータのみ表示 15book.WorkSheets("Sheet1").Range("A1").AutoFilter 2, Date 16' ファイルを保存 17book.save 18' ファイルを閉じる 19book.close 20' --Excel終了 21oXlsApp.Quit 22' --Excelオブジェクトクリア 23Set oXlsApp = Nothing 24

Excelデータ

ID日付
AA2022/6/1
BB2022/6/6
CC
DD2022/6/10
EE2022/6/18
FF2022/6/30

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

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

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

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

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

guest

回答1

0

ベストアンサー

オートフィルターの仕様は下記を参照ください。

オートフィルター(AutoFilter)|VBA入門

Range.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
という書式になります。

Criteria は抽出条件となる文字列を指定します。不等号も使えます。
日付の場合は表示されている書式に合わせる必要があります。

Operator は、AND条件の場合は1、OR条件なら2を指定します。

ということで、下記のようなコードでどうでしょう。

vb

1book.WorkSheets("Sheet1").Range("A1").AutoFilter 2, "<" & Format(Date,"yyyy/m/d"), 2, ""

投稿2022/06/29 14:06

hatena19

総合スコア33699

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

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

nekoyama771

2022/07/12 11:35

ありがとうございます。 VBSはVBAと一部書式が異なり、情報も少ないので困っていました。 >OR条件なら2 の通り、教えていただいたコードで動作しました。 ありがとうございました。
hatena19

2022/07/12 12:21

Excel.Application を開いて、それのメソッドを使うときは、VBAと書式は同じになります。ただし、定義済み定数はVBSで使えないので実際の数値で指定する必要があります。 OR条件を指定するとき、VBAでは xlOr とします。これは中身は2という数値です。 これを確認する簡単な方法は、イミディエイトウィンドウで、 ?xlOr と入力してEnterキーを押すと次行に2が表示されます。
nekoyama771

2022/07/24 01:12

定義済み定数の値を確認する方法もご教示いただきありがとうございます。 >イミディエイトウィンドウで、 >?xlOr >と入力 これから活用していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問