Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8944 / 13644 ツリー ←次へ | 前へ→

【30174】月ごとのオートフィルター 琴葉 05/10/21(金) 10:29 質問[未読]
【30179】Re:月ごとのオートフィルター Jaka 05/10/21(金) 10:44 回答[未読]
【30184】Re:月ごとのオートフィルター 琴葉 05/10/21(金) 11:16 お礼[未読]
【30185】Re:月ごとのオートフィルター Jaka 05/10/21(金) 11:24 発言[未読]
【30186】Re:月ごとのオートフィルター 琴葉 05/10/21(金) 11:40 お礼[未読]

【30174】月ごとのオートフィルター
質問  琴葉  - 05/10/21(金) 10:29 -

引用なし
パスワード
   いつもお世話になります。
【29851】で教えていただいた記述をつかっています。
msgboxには 2005/10/1
      2005/10/31
など、ちゃんと返ってくるのですが、オートフィルターの方に反映されません
(該当なしで記入行が隠れている状態)
どこがいけないのでしょうか、よろしくお願いいたします。

Dim 年 As Long, 月 As Long, 月初 As String

With Sheets("【勘定元帳】")
  .AutoFilterMode = False
    With .Range("A1")
    If Combo月.Text = "ALL" Then
      Selection.AutoFilter Field:=1
    Else
      年 = Year(Now())
      月 = Combo月.List(Combo月.ListIndex)  '変数の型が数値型なので数字の場合、数値に変換してくれます。
      月初 = 年 & "/" & 月 & "/1"
      月末 = Format(DateSerial(年, 月 + 1, 1) - 1, "yyyy/m/d")
      MsgBox 月初 & vbLf & 月末
      Selection.AutoFilter Field:=1, Criteria1:=月初, Operator:=xlAnd, Criteria2:=月末
End If

【30179】Re:月ごとのオートフィルター
回答  Jaka  - 05/10/21(金) 10:44 -

引用なし
パスワード
   こんにちは。

Selection.AutoFilter Field:=1 等の
Selectionは、とった方がいいです。
何の為の
With .Range("A1") なのか解らなくなってしまうから...。

うまくフィルタされない理由
:=">=2005/10/1"

:=月初
の違いが解りますか....。

月末とかには、日付しか入っていないわけですよね。
文字連結して以上以下を付け加えてください。

【30184】Re:月ごとのオートフィルター
お礼  琴葉  - 05/10/21(金) 11:16 -

引用なし
パスワード
   Jakaさんいつもありがとうございます。
だいぶ悩みましたが、こんな感じでうまく動きました、いかがでしょうか
いままでVBAていやだな〜って思っていましたけど、一つずつ解決できると
不思議と楽しく感じてきますね^^

  Dim 年 As Long, 月 As Long, 月初 As String
  With Sheets("【勘定元帳】")
  .AutoFilterMode = False
    
    With .Range("A1")
    If Combo月.Text = "ALL" Then
      .AutoFilter Field:=1
    Else
      年 = Year(Now())
      月 = Combo月.List(Combo月.ListIndex)  '変数の型が数値型なので数字の場合、数値に変換してくれます。
      月初 = ">=" & 年 & "/" & 月 & "/1"
      月末 = "<=" & Format(DateSerial(年, 月 + 1, 1) - 1, "yyyy/m/d")
      MsgBox 月初 & vbLf & 月末
      .AutoFilter Field:=1, Criteria1:=月初, Operator:=xlAnd, Criteria2:=月末

    End If

【30185】Re:月ごとのオートフィルター
発言  Jaka  - 05/10/21(金) 11:24 -

引用なし
パスワード
   >月初 = ">=" & 年 & "/" & 月 & "/1"
      月末 = "<=" & Format(DateSerial(年, 月 + 1, 1) - 1, "yyyy/m/d")
>      .AutoFilter Field:=1, Criteria1:=月初, Operator:=xlAnd, Criteria2:=月末
別にいいと思いますよ....。
この辺の書き方は、好き好きだと思いますから...。

前にも書いたと思いますが、私の場合は。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=102;id=FAQ

【30186】Re:月ごとのオートフィルター
お礼  琴葉  - 05/10/21(金) 11:40 -

引用なし
パスワード
   .AutoFilter Field:=1, Criteria1:=">="&月初, Operator:=xlAnd, Criteria2:="<="&月末とするとフィルターしなくてずっと悩んでました。

Jakaさんのように、矢印が出なくするよう考え中です。
ではありがとうございました。

8944 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free