プロが教えるわが家の防犯対策術!

EXCEL(2003) VBA ユーザー定義 yyyy/mm/dd で mm は AutoFilter にかからない?

生年月日の表示を セルの書式設定で ユーザー定義 yyyy/mm/dd にしています。

例 1935/08/07 (標準にすると 13003 となります)

例えば 8月生まれを検索するため */08/*(注含む検索) で AutoFilter にかけても検索されません。

ちなみに 1935/08/07(注完全一致検索) や これを基にした 別の列で 昭和10年 8月 7日 の *8月*(注含む検索)

では検索できます。

yyyy/mm/dd で 1935*(先頭一致検索) や前記の */08/*(注含む検索) のコーディングが可能でしょうか?

宜しくお願いします。  
 

A 回答 (3件)

No.2です!


たびたびごめんなさい。
質問文をよく読まずに投稿してしまいました。

VBAでのオートフィルタですね!
前回の画像の配置でのコードになりますが・・・
↓のコードを操作したいSheet見出し上で右クリック → コードの表示 を選択し、コピー&ペーストしてマクロを実行してみたください。

Sub test()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
With Cells(i, 4)
.Value = Cells(i, 2).Value
.NumberFormatLocal = "m"
End With
Next i
Range("A1:D1").Select
Selection.AutoFilter
Selection.AutoFilter field:=4, Criteria1:=Cells(1, 6)
End Sub

前回同様、F1セルにフィルタ条件の月の数値を入力してのマクロ実行になります。

特定の日付限定や同年度の月のでのオートフィルタならもう少し簡単だと思いますが、
複数年の中で、「月」でのフィルタだとこの程度しか思いつきませんでした。
VBAでもD列を作業用の列として使ってしまいました。

他に良い方法があれば読み流してくださいね。m(__)m
    • good
    • 0
この回答へのお礼

tom04 さん 有難うございました。

yyyy/mm/dd ではAutoFilter にかからず 
これを基にした 別の列で 昭和10年 8月 7日 の *8月*(注含む検索)
では、かかったので不思議に思っていました。ご指摘のとおり他のソフトとから
csvで変換したデータです。ただ、何故か Mid関数が使えたのでこれを使って
文字列に変換し、無事目的を果たせました。

tom04 さんはじめ皆さん有難うございました。(Mid がきいてAutoFilter が
きかない疑問は残りましたが)

お礼日時:2010/08/21 11:36

こんばんは!


外していたらごめんなさい。

たぶんですが・・・
元データの表示形式をユーザー定義で変えても、見た目だけの問題で
あくまでシリアル値が入っています。
という訳で「8月」のような検索条件ではフィルタはかけれないと思います。
(もし出来るのであれば当方の認識不足ですので、ごめんなさい。)

という訳で無理やりって感じの方法ですが、↓の画像のような感じではどうでしょうか?

別列に検索したい月(数値のみ)を入力するとそのデータを別列に表示される方法です。
作業用の列を1列設けています。
作業列D2セルに
=IF(A2="","",IF(MONTH(B2)=$F$1,ROW(),""))
という数式をいれ、フィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へコピーします。

そして結果のF4セルに
=IF(COUNT($D:$D)<ROW(A1),"",INDEX(A:A,SMALL($D:$D,ROW(A1))))
という数式をいれ、H4セルまでオートフィルでコピーします。
最後にF4~H4セルを範囲指定し、H4セルのフィルハンドルで下へコピーすると
画像のような感じになります。
尚、生年月日の列はシリアル値で表示されますので、
ユーザー定義から表示形式を変更する必要があります。

以上、この程度ですが
参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
「EXCEL(2003) VBA ユーザー」の回答画像2
    • good
    • 0

8月生まれを検索なら */8/*でしょうか。

この回答への補足

早速有難うございます。桁数を揃えるため 1935/08/07 のようにしていますので

それと1935* でも検索できなかったのですが ?

補足日時:2010/08/20 11:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!