Excel VBA質問箱 IV

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

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


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

【33065】ある条件のセルを選択 サザエ 06/1/1(日) 18:20 質問[未読]
【33067】Re:ある条件のセルを選択 やっちん 06/1/1(日) 19:56 発言[未読]
【33070】Re:ある条件のセルを選択 サザエ 06/1/1(日) 21:43 発言[未読]
【33068】Re:ある条件のセルを選択 ponpon 06/1/1(日) 20:18 発言[未読]
【33069】Re:ある条件のセルを選択 サザエ 06/1/1(日) 21:35 発言[未読]
【33071】Re:ある条件のセルを選択 サザエ 06/1/1(日) 23:00 発言[未読]
【33073】Re:ある条件のセルを選択 やっちん 06/1/1(日) 23:08 発言[未読]
【33074】Re:ある条件のセルを選択 サザエ 06/1/1(日) 23:38 発言[未読]
【33075】Re:ある条件のセルを選択 やっちん 06/1/2(月) 0:01 発言[未読]
【33076】Re:ある条件のセルを選択 サザエ 06/1/2(月) 0:33 お礼[未読]
【33077】Re:ある条件のセルを選択 ponpon 06/1/2(月) 0:39 発言[未読]

【33065】ある条件のセルを選択
質問  サザエ  - 06/1/1(日) 18:20 -

引用なし
パスワード
   縦に連続して入っている日付データから、この日〜あの日まで選択
というやり方は無いのでしょうか。

Range(Range("A1":"A100").Specialcell(2005/10/1) _
,Range("A1":"A100").Specialcell(2005/12/1)).Select

みたいな感じで(上は適当です)。
繰り返しと、条件分岐で探し出すやり方ならわかります。
ただ、VBAぽいシンプルなやり方があるのではと思い質問しました。

【33067】Re:ある条件のセルを選択
発言  やっちん  - 06/1/1(日) 19:56 -

引用なし
パスワード
   ▼サザエ さん:
オートフィルタでどうでしょう?
可視セルを処理することになります。

もし日付が文字列だと違う方法を考える必要があるかもしれませんが。

【33068】Re:ある条件のセルを選択
発言  ponpon  - 06/1/1(日) 20:18 -

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

やっちんさんからすでに回答がついていますが、
Selectした後どうするのでしょうか?
処理によっては、Selectする必要がないかもしれませんので。

【33069】Re:ある条件のセルを選択
発言  サザエ  - 06/1/1(日) 21:35 -

引用なし
パスワード
   ▼ponpon さん:
>こんばんは。
>
>やっちんさんからすでに回答がついていますが、
>Selectした後どうするのでしょうか?
>処理によっては、Selectする必要がないかもしれませんので。

セレクト後は切り取りです。日付が入っている列の横の何列かと一緒に
切り取って他ののシートに移します。

【33070】Re:ある条件のセルを選択
発言  サザエ  - 06/1/1(日) 21:43 -

引用なし
パスワード
   ▼やっちん さん:
>▼サザエ さん:
>オートフィルタでどうでしょう?
>可視セルを処理することになります。
>
>もし日付が文字列だと違う方法を考える必要があるかもしれませんが。

セルには〜月〜日と出ていますが、数式バーには〜/〜/と表示されている
ので日付型だと思ったのですが。
でも、よく考えると僕が示した例のような場合、その列に同じ値が入っている
セルがあったとしたらおかしな事になってしまうので、あくまで日付の列の
様に、それぞれのセルに違う値が入っていることが前提になってくると思います。

【33071】Re:ある条件のセルを選択
発言  サザエ  - 06/1/1(日) 23:00 -

引用なし
パスワード
   ▼サザエ さん:
>▼ponpon さん:
>>こんばんは。
>>
>>やっちんさんからすでに回答がついていますが、
>>Selectした後どうするのでしょうか?
>>処理によっては、Selectする必要がないかもしれませんので。
>
Findメソッドが使えそうなのでやってみましたが日付だとうまく働きません。
でもこんな感で出来るものを探しています。AutoFilter以外にありませんか?

【33073】Re:ある条件のセルを選択
発言  やっちん  - 06/1/1(日) 23:08 -

引用なし
パスワード
   ▼サザエ さん:
「〜/〜/〜」でFINDできませんか?

【33074】Re:ある条件のセルを選択
発言  サザエ  - 06/1/1(日) 23:38 -

引用なし
パスワード
   ▼やっちん さん:
>▼サザエ さん:
>「〜/〜/〜」でFINDできませんか?
find(what := 2005/8/15)も find(what := "2005/8/15")も
だめでした。(what := バリアント型)なので、駄目なんだと思います。

この2005/8/15が日付型であることを教えてやるすべは無いのでしょうか。
一度2005/8/15を日付型の変数に格納してやればいいのですが、いちいち
データ型を指定するために変数を作るのは効率的ではないと思うので
find(what := 2005/8/15 As date)みたいな。

【33075】Re:ある条件のセルを選択
発言  やっちん  - 06/1/2(月) 0:01 -

引用なし
パスワード
   ▼サザエ さん:
>find(what := 2005/8/15 As date)みたいな。
find(what := DateValue("2005/8/15"))

【33076】Re:ある条件のセルを選択
お礼  サザエ  - 06/1/2(月) 0:33 -

引用なし
パスワード
   ▼やっちん さん:
>▼サザエ さん:
>>find(what := 2005/8/15 As date)みたいな。
>find(what := DateValue("2005/8/15"))
ついに求めていたものに、行き着きました。完璧です。
夜遅くまでつきあってくれて、どうもありがとうございました。

【33077】Re:ある条件のセルを選択
発言  ponpon  - 06/1/2(月) 0:39 -

引用なし
パスワード
   こんばんは。
参考になれば。excel2003(WINxp)、excel2002(WIN2K)で確認

Sheet1のA列にある日付をSheet2のA列にカットペースト

Sub test()
  Dim X As Range, Y As Range
  Dim A As Date, B As Date
  
  With Sheets("Sheet1")
'   A = #1/1/2005#
    A = "2005/1/1"
'   B = #12/1/2005#
    B = "2005/12/1"
    Set X = .Range("A:A").Find(what:=A, LookAt:=xlWhole)
    Set Y = .Range("A:A").Find(what:=B, LookAt:=xlWhole)
    .Range(X, Y).Cut Sheets("Sheet2").Range("A1")
  End With
End Sub

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