Excel VBA質問箱 IV

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

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


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

【28381】日付から検索 雨男 05/9/5(月) 0:04 質問[未読]
【28382】Re:日付から検索 MOON 05/9/5(月) 0:15 発言[未読]
【28383】Re:日付から検索 雨男 05/9/5(月) 0:26 質問[未読]
【28384】Re:日付から検索 awu 05/9/5(月) 0:55 回答[未読]
【28385】Re:日付から検索 雨男 05/9/5(月) 1:05 お礼[未読]
【28386】Re:日付から検索 MOON 05/9/5(月) 1:11 回答[未読]
【28391】Re:日付から検索 awu 05/9/5(月) 12:03 回答[未読]
【28410】Re:日付から検索 Komo 05/9/5(月) 22:56 発言[未読]
【28485】Re:日付から検索 awu 05/9/7(水) 19:34 回答[未読]
【28387】Re:日付から検索 Statis 05/9/5(月) 9:35 回答[未読]
【28411】Re:日付から検索 ponpon 05/9/5(月) 23:47 発言[未読]
【28421】Re:日付から検索 Jaka 05/9/6(火) 12:19 回答[未読]
【28422】Re:日付から検索 ponpon 05/9/6(火) 12:48 発言[未読]
【28661】EXCEL2000SR1のバグ?仕様とはとても思えな... Jaka 05/9/12(月) 9:55 発言[未読]
【28691】Re:EXCEL2000SR1のバグ?仕様とはとても思... ponpon 05/9/13(火) 0:17 発言[未読]

【28381】日付から検索
質問  雨男  - 05/9/5(月) 0:04 -

引用なし
パスワード
   初めて質問させてもらいます。

A列に商品名
B列に日付

当日の日付からB列を検索し、オートフィルタで抽出する。
いろいろ試しては見たのですが、うまくいきません。

初心者なもので宜しくお願いします。

【28382】Re:日付から検索
発言  MOON  - 05/9/5(月) 0:15 -

引用なし
パスワード
   ▼雨男 さん:
もう少し具体的に、どんなことを試して、
どのようにうまくいかないのか、
また、どこまでなら出来ているのかなどを
説明してもらえると回答しやすいのですが・・・。

【28383】Re:日付から検索
質問  雨男  - 05/9/5(月) 0:26 -

引用なし
パスワード
   ▼MOON さん:
>▼雨男 さん:
>もう少し具体的に、どんなことを試して、
>どのようにうまくいかないのか、
>また、どこまでなら出来ているのかなどを
>説明してもらえると回答しやすいのですが・・・。

早速の返信ありがとうございます。
すみません、説明が足りなくて・・・

Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1")
で当日の商品を取得して確認する、といった感じです。
(A列に”商品名” B列に”日付”を入力)

本日の日付の設定がおかしいのかな、と思っています。
1.C1セルには"=today"で本日の日付を設定。
2.Range("C1") = Date 
と試してみましたが、うまくいきませんでした。

以上ですが、アドバイスお願いします。

【28384】Re:日付から検索
回答  awu  - 05/9/5(月) 0:55 -

引用なし
パスワード
   Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1").Value

Valueプロパティを省略しないようにしましょう。
これで、どうですか。

【28385】Re:日付から検索
お礼  雨男  - 05/9/5(月) 1:05 -

引用なし
パスワード
   ▼awu さん:
>Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1").Value
>
>Valueプロパティを省略しないようにしましょう。
>これで、どうですか。

aweさん、ありがとうございます。
試してみましたが、だめでした・・・
他にもあれば教えてください。

【28386】Re:日付から検索
回答  MOON  - 05/9/5(月) 1:11 -

引用なし
パスワード
   ▼雨男 さん:
日付が対象だと、普通にやってもうまくいかないみたいですね。
こんな感じでやると出来るみたいです。

Sub test()
Columns(2).NumberFormatLocal = "m月d日"
Range("C1").NumberFormatLocal = "m月d日"
Range("A1").AutoFilter Field:=2, _
Criteria1:=Format(Range("C1").Value, "m月d日")
End Sub

【28387】Re:日付から検索
回答  Statis  - 05/9/5(月) 9:35 -

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

こんな感じで如何かな?

Range("A1").AutoFilter Field:=2, _
  Criteria1:=Format(Range("C1").Value, Range("B2").NumberFormat)

【28391】Re:日付から検索
回答  awu  - 05/9/5(月) 12:03 -

引用なし
パスワード
   ▼雨男 さん:
>▼awu さん:
>>Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1").Value
>>
>>Valueプロパティを省略しないようにしましょう。
>>これで、どうですか。
>
>aweさん、ありがとうございます。
>試してみましたが、だめでした・・・
>他にもあれば教えてください。

当方は、Win XP と Excel2003 SP1 を使っていますが、ちゃんと 動作しますよ。

念のため、お使いのOS とExcelのバージョンは、何ですか?。

こちらでは、.Value が無ければ何も抽出されませんが・・・
「だめでした・・・」とは、どうなることなのでしょうか?

あと、 Range("A1").AutoFilter とA1を指定していますので

・ 1行目が、「列見出し」になっていますか?
  セルA1から連続したセル範囲にデータがあることが必要です。
  つまり、セル A2、B1、B2 が、空きになっているとだめです。

  ちなみに、B列だけにフイルタを掛けるのであれば、
  Range("B:B").AutoFilter Field:=1, Criteria1:=Range("C1").Value

・ B列のデータおよびC1は、日付形式になっておりますか?

 もし、セルC1が、文字列形式で、年月日を入力していた場合は、

 Range("A1").AutoFilter Field:=2, Criteria1:=DateValue(Range("C1").Text)

 のようになりますが・・・

 

【28410】Re:日付から検索
発言  Komo  - 05/9/5(月) 22:56 -

引用なし
パスワード
   ▼awu さん:
Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1").Value

Valueプロパティの省略と関係がありませんでした。98やMEでは、この現象が
出てきません。

・・・多分MEか98で2000で試しましたが、オートフィルターが上手く働かないです。
フィルターをかけたところが全て何も無しの状態になります。

日付の処理は一工夫が必要な感じです。
Range("A3").AutoFilter Field:=2, _
  Criteria1:=Format(Range("C1").Value, Range("B4").NumberFormat)
のコードが分かりやすように思います。このコードですと、正しくフィルターが
かかります。

>こちらでは、.Value が無ければ何も抽出されませんが・・・
ME,89ともにValueのあるなしはこのコードに関しては影響が出ません。

>「だめでした・・・」とは、どうなることなのでしょうか?
オートフィルターがかからず、全てフィルラターの中に隠れて、一切文字が
隠れた状態になっていると思います。
>
>あと、 Range("A1").AutoFilter とA1を指定していますので
>
>・ 1行目が、「列見出し」になっていますか?
>  セルA1から連続したセル範囲にデータがあることが必要です。
>  つまり、セル A2、B1、B2 が、空きになっているとだめです。
ハイ。その通りですね。

>  ちなみに、B列だけにフイルタを掛けるのであれば、
>  Range("B:B").AutoFilter Field:=1, Criteria1:=Range("C1").Value

これも同じ結果です。(正しい結果が得られません。)

>
>・ B列のデータおよびC1は、日付形式になっておりますか?
>
> もし、セルC1が、文字列形式で、年月日を入力していた場合は、
>
> Range("A1").AutoFilter Field:=2, Criteria1:=DateValue(Range("C1").Text)
>
> のようになりますが・・・
>
>

【28411】Re:日付から検索
発言  ponpon  - 05/9/5(月) 23:47 -

引用なし
パスワード
   こんばんは。
もうすぐ台風がやってきます。
今度のはとても大きいので心配です。

○月×日、m/d、yyyy/mm/dd、mm/dd/yyyy、yyyy年mm月dd日・・・

いろいろ試しましたが、
B列の表示形式と、Criteria1:=Range("C1").Valueの表示形式が同じでないと
抽出できないみたいですね。
雨男さんが、B列にどのような形で入力しているのかが分からないので、

>Range("A1").AutoFilter Field:=2, _
>  Criteria1:=Format(Range("C1").Value, Range("B2").NumberFormat)

のように表示形式を合わせてやらないと無理なようです。

今回のことでいろいろ勉強になりました。

【28421】Re:日付から検索
回答  Jaka  - 05/9/6(火) 12:19 -

引用なし
パスワード
   表示形式が日本形式になってませんか?
特にA列のフィルタ対象セルの方。(C1も場合によっては)
H17.9.1
平成17年9月6日
2005年9月6日

どんな表示形式にでも対応させたかったら、こうしてください。
Range("A1").AutoFilter Field:=2, Criteria1:=">=" & Range("C1").Value, _
      Operator:=xlAnd, Criteria2:="<=" & Range("C1").Value

気づかないで見てないのか、無視しているのか解んないけど....。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=102;id=FAQ

【28422】Re:日付から検索
発言  ponpon  - 05/9/6(火) 12:48 -

引用なし
パスワード
   こんにちは。
台風が真上にいます。まだ、停電になってないので

>'1日分の抽出でもxlAndで、2つ指定する。
> Range("A1:A" & ALast).AutoFilter Field:=1, Criteria1:=">=" & 年月日, _
> Operator:=xlAnd, Criteria2:="<=" & 年月日

2つ指定すると、どんな表示形式にも対応するんだ。w('o')w オオー!!

ちゃんと、目安箱チェックすればよかった。

【28485】Re:日付から検索
回答  awu  - 05/9/7(水) 19:34 -

引用なし
パスワード
   あれっ! 何か変ですね。 Komaさんと質問者の雨男さんは、同じ方ですか?

>>「だめでした・・・」とは、どうなることなのでしょうか?
> オートフィルターがかからず、全てフィルラターの中に隠れて、一切文字が
> 隠れた状態になっていると思います。

ちょっと表現が、変ですね。
フィルターが、掛かっている状態では?

> Range("A3").AutoFilter Field:=2, _
>  Criteria1:=Format(Range("C1").Value, Range("B4").NumberFormat)
> のコードが分かりやすように思います。このコードですと、正しくフィルターが
> かかります。

何でA3なの? まぁ、いいけど・・・
それにFormat関数は、内部処理形式 String の Variantになりますので、B列が日付形式
になっていないのでは??
他のセルの NumberFormat を使うということは、形式があっていないのでは??

肝心のB列データが、日付形式になっているかについて応えていませんが・・・


新しいブックの任意のシートでシート名タブを右クリックして、「コードの表示」で
開いたコードウィンドに次のコードを貼り付けて実行してみてください。

今日の日付だけ抽出されませんか?


Sub test()
Dim Rw As Long
ActiveSheet.AutoFilterMode = False
Cells.Delete
Range("A1:B1").Value = Array("商品名", "日付")
For Rw = 2 To 12
  Cells(Rw, 1).Value = Chr(63 + Rw)
  Cells(Rw, 2).Value = Date - 5 + Rw
Next Rw
Range("C1").Value = Date
Range("A1").AutoFilter Field:=2, Criteria1:=Range("C1").Value
'Range("A1").AutoFilter Field:=2, Criteria1:=Date '  こちらでもいいけど
End Sub

【28661】EXCEL2000SR1のバグ?仕様とはとても思え...
発言  Jaka  - 05/9/12(月) 9:55 -

引用なし
パスワード
   一昨日、2000SR1で試してたら、抽出値が日付の場合セルを参照すると動かない事がわかりました。
これはもうバグとしか思えませんね!仕様とはとても思えない。
ノーマル2000やSR2、3などは出来るのかもしれませんが....。
EXCEL2000ってほんとにバグが多いですね!

97 OK、2000SR1 NG
Range("A1").AutoFilter Field:=2, Criteria1:=">=" & Range("C1").Value, _
      Operator:=xlAnd, Criteria2:="<=" & Range("C1").Value

2000SR1だと、いちいち文字にしないとだめ。
97 OK、2000SR1 OK
Range("A1").AutoFilter Field:=2, Criteria1:=">=" & Format(Range("C1").Value, "yyyy/mm/dd"), _
      Operator:=xlAnd, Criteria2:="<=" & Format(Range("C1").Value, "yyyy/mm/dd")

【28691】Re:EXCEL2000SR1のバグ?仕様とはとても...
発言  ponpon  - 05/9/13(火) 0:17 -

引用なし
パスワード
   こんばんは。
試してみました。


Sub test2()
  Range("A1").AutoFilter Field:=2, Criteria1:=">=" & Range("C1").Value, _
      Operator:=xlAnd, Criteria2:="<=" & Range("C1").Value
End Sub

WIN98 Excel2000SP3
だめでした。

WIN2000 Excel2002
OKです。

WIN XP Excel2003
OKです。

報告終わり。

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