[[20180727144628]] 『オートフィルタで今月と来月のデータを絞る』(TAKA) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルタで今月と来月のデータを絞る』(TAKA)

初めて質問させていただきます。
どなたかご教授いただけたらうれしいです。

VBAで日付を絞る際、今月 Or 来月 で絞るにはどうしたらいいでしょうか?

Sub Filter_1()

    With ThisWorkbook.Sheets("Sheet1").Range("A1")
        .AutoFilter Field:=1, Criteria1:=xlThisMonth, Operator:=xlFilterDynamic '今月だけ絞る
        .AutoFilter Field:=1, Criteria1:=xlLastMonth, Operator:=xlFilterDynamic '来月だけ絞る
    End With
End Sub

それぞれ単体で絞るときはいつも上のように書きますが、
xlThisMonth などは Operator に xlFilterDynamicを指定しないと使えませんよね?

Sub Filter_2()

    With ThisWorkbook.Sheets("Sheet1").Range("A1")
        .AutoFilter Field:=1, Criteria1:=Array(xlThisMonth, xlLastMonth), Operator:=xlFilterValues    End With
End Sub

のように複数絞るときはどのように書いたらいいのでしょうか、、
(このマクロでは何も絞れませんでしたが、やりたいことを伝えるために掲載しました)

名前つき引数Operator に
xlFilterDynamic を使ってしまったら xlOr や xlFilterValues は使えませんよね、、

Month(Date)やMonth(Date)+1 を使っても出来るのでしょうか、、
どなたか教えてください。

< 使用 Excel:Excel2013、使用 OS:unknown >


xlThisMonth なんて初めてみましたが、とりあえず今月or来月で絞り込む方法

Sub Filter_1()

    With ThisWorkbook.Sheets("Sheet1").Range("A1")
        .AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(1, DateSerial(Year(Now), Month(Now), 1), 1, DateSerial(Year(DateAdd("m", 1, Now)), Month(DateAdd("m", 1, Now)), 1))
    End With
End Sub

もっとスマートなやり方があるかもしれませんが、他の誰かに期待します。
(名無し) 2018/07/27(金) 15:07


 普通に今まで通りのこんな感じだとまずいんですか?
 日付と不等号の文字は、自分で作ってください。

 Criteria1:=">=2018/7/1", Operator:=xlAnd, Criteria2:="<2018/8/1"
(BJ) 2018/07/27(金) 16:44

回答ではないですが、気づきの点で。
少なくともmougとこちらでマルチポストしていますよね。
どちらのサイトも禁止しているわけではありませんが、そのような行為を嫌う回答者さんもいらっしゃいますから、マルチポストするならするで、明示しておいたほうがいいとおもいます。
また、どちらのサイトにも回答付いているので、それぞれもう一方に責任持ってフィードバックしておくと、おなじ悩みを持ってたどり着いた方の助けになるとおもいます。
(もこな2) 2018/07/27(金) 19:58

名無しさんありがとうございます。
希望の結果が得られました。

勉強不足で理解できない箇所があるのですが、教えてもらえないでしょうか、、

Array(1, DateSerial(Year(Now), Month(Now), 1), 1, DateSerial(Year(DateAdd("m", 1, Now)), Month(DateAdd("m", 1, Now)), 1))

を日本語にすると

配列(1,今月の初日,1,来月の初日)

という意味ですよね?

1 二回出てくる 1 は何なのか
2 初日で絞っているはずなのに何故月ごと絞れているのか
3 Criteria1 では何故絞れないのか

以上の三点がわかりません、、
よろしかったら教えてください。すみません。
(TAKA) 2018/07/30(月) 18:42


すみません、調べたら出てきて、初めて知りました。
理解できました。ありがとうございました!
(TAKA) 2018/07/30(月) 19:02

もこな2さんご指摘ありがとうございます。
そうだったんですね、、
すみませんあまりこういう掲示板の常識を知らず、不快にさせた方がいらっしゃったら申し訳ありませんでした。

フィードバックのためにコードをあげておきます。

Sub 今月と来月で絞る()

    Dim Tuki(3)
    Tuki(0) = 1
    Tuki(1) = Format(Date, "M/D/YYYY")
    Tuki(2) = 1
    Tuki(3) = Format(DateAdd("M", 1, Date), "M/D/YYYY")

    ThisWorkbook.Sheets("Sheet1").Range("A1").AutoFilter _
    FIELD:=1, Operator:=xlFilterValues, Criteria2:=Tuki

    '参考----------Criteria2に指定された配列内で、以下の数字が持つ意味
    '0 年を取得
    '1 月を取得
    '2 日を取得
    '3 時を取得
    '4 分を取得
    '5 秒を取得
    '---------------
End Sub

(TAKA) 2018/07/30(月) 19:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.