Excel VBA質問箱 IV

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

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


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

【62827】セル範囲の日付データの入っているセルを条件に従って塗りつぶす。 ぽてちん 09/9/8(火) 8:54 質問[未読]
【62832】Re:セル範囲の日付データの入っているセル... りおりお 09/9/8(火) 11:39 発言[未読]
【62835】Re:セル範囲の日付データの入っているセル... ぽてちん 09/9/8(火) 13:30 お礼[未読]
【62838】Re:セル範囲の日付データの入っているセル... りおりお 09/9/8(火) 13:52 発言[未読]
【62858】Re:セル範囲の日付データの入っているセル... ぽてちん 09/9/9(水) 17:21 お礼[未読]
【62878】Re:セル範囲の日付データの入っているセル... ぽてちん 09/9/11(金) 13:23 質問[未読]
【62879】Re:セル範囲の日付データの入っているセル... りおりお 09/9/11(金) 14:22 発言[未読]
【62881】Re:セル範囲の日付データの入っているセル... ぽてちん 09/9/11(金) 17:27 お礼[未読]

【62827】セル範囲の日付データの入っているセルを...
質問  ぽてちん  - 09/9/8(火) 8:54 -

引用なし
パスワード
   任意のセル範囲に日付データが入っていたら、
今日より前の場合は塗りつぶす。というVBAを考えています。

1.セル範囲は、InputBoxで入力してもらえばよいと思うのですが、
2.セル範囲のセルのデータの取得(順番に?)
3.日付データかどうかの判別。
4.塗りつぶし。(これは質問箱に回答がありました。)

複数の質問内容になってはいけないと思うのですが、
だめならご指摘ください。削除します。
そのうえでできれば、
任意のセル範囲のデータの判別方法をご教示ください。
よろしくお願いいたします。

【62832】Re:セル範囲の日付データの入っているセ...
発言  りおりお  - 09/9/8(火) 11:39 -

引用なし
パスワード
   ヘルプより

---------------------------------------------------------------
IsDate 関数の使用例
次の例は、IsDate 関数を使って、数式が日付に変換できるかどうかを調べます。

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = "1969,2,12": YourDate = #2/12/69#: NoDate = "こんにちは"
MyCheck = IsDate(MyDate)      ' True を返します。
MyCheck = IsDate(YourDate)    ' True を返します。
MyCheck = IsDate(NoDate)      ' False を返します。
---------------------------------------------------------------

If文でTrueになったら塗りつぶしをするのはどうでしょう。

【62835】Re:セル範囲の日付データの入っているセ...
お礼  ぽてちん  - 09/9/8(火) 13:30 -

引用なし
パスワード
   りおりおさん!ありがとうございました。
iF文でTrueなら塗りつぶしを指定すればよいですね。

あとは、セル範囲のセルの値をどのように取得するかですね。
複数の質問になってしまいすみません。

▼りおりお さん:
>ヘルプより
>
>---------------------------------------------------------------
>IsDate 関数の使用例
>次の例は、IsDate 関数を使って、数式が日付に変換できるかどうかを調べます。
>
>Dim MyDate, YourDate, NoDate, MyCheck
>MyDate = "1969,2,12": YourDate = #2/12/69#: NoDate = "こんにちは"
>MyCheck = IsDate(MyDate)      ' True を返します。
>MyCheck = IsDate(YourDate)    ' True を返します。
>MyCheck = IsDate(NoDate)      ' False を返します。
>---------------------------------------------------------------
>
>If文でTrueになったら塗りつぶしをするのはどうでしょう。

【62838】Re:セル範囲の日付データの入っているセ...
発言  りおりお  - 09/9/8(火) 13:52 -

引用なし
パスワード
   ▼ぽてちん さん:
>りおりおさん!ありがとうございました。
>iF文でTrueなら塗りつぶしを指定すればよいですね。
>
>あとは、セル範囲のセルの値をどのように取得するかですね。
>複数の質問になってしまいすみません。

Sub try()
Dim r As Range
Dim rr As Range

On Error Resume Next
Set rr = Application.InputBox("セル範囲をマウスで指定して", Type:=8)
If rr Is Nothing Then Exit Sub
On Error GoTo 0

For Each r In rr
   Debug.Print r.Value
Next

Set rr = Nothing
End Sub

こう言った感じの事でしょうか?

【62858】Re:セル範囲の日付データの入っているセ...
お礼  ぽてちん  - 09/9/9(水) 17:21 -

引用なし
パスワード
   りおりおさん。早速のご回答ありがとうございます。

マウスの指定ができるなんて知りませんでした。(感激!)
試してみます。m(_ _)m

▼りおりお さん:

>▼ぽてちん さん:
>>りおりおさん!ありがとうございました。
>>iF文でTrueなら塗りつぶしを指定すればよいですね。
>>
>>あとは、セル範囲のセルの値をどのように取得するかですね。
>>複数の質問になってしまいすみません。
>
>Sub try()
> Dim r As Range
> Dim rr As Range
>
> On Error Resume Next
> Set rr = Application.InputBox("セル範囲をマウスで指定して", Type:=8)
> If rr Is Nothing Then Exit Sub
> On Error GoTo 0
>
> For Each r In rr
>   Debug.Print r.Value
> Next
>
> Set rr = Nothing
>End Sub
>
>こう言った感じの事でしょうか?

【62878】Re:セル範囲の日付データの入っているセ...
質問  ぽてちん E-MAIL  - 09/9/11(金) 13:23 -

引用なし
パスワード
   りおりおさん。

早速、試してみて、セルのデータを取得することができました。
ありがとうございました。
if文を入れるのはいいのですが・・。

今日 = DateValue(Date)

Debag.Print r.Value の次に
 if r <= 今日 Then
r.Interior.Color = RGB(255.255.130)

ではうまくいきません。
初心者なのですみませんが、今日より前の日付データを
選んで塗りつぶすには、どう書いたらよいのでしょうか。

もう少しなので、よろしくお願いいたします。
誰にも聞けず本当に感謝いたしております。
▼ぽてちん さん:
>りおりおさん。早速のご回答ありがとうございます。
>
>マウスの指定ができるなんて知りませんでした。(感激!)
>試してみます。m(_ _)m
>
>▼りおりお さん:
>
>>▼ぽてちん さん:
>>>りおりおさん!ありがとうございました。
>>>iF文でTrueなら塗りつぶしを指定すればよいですね。
>>>
>>>あとは、セル範囲のセルの値をどのように取得するかですね。
>>>複数の質問になってしまいすみません。
>>
>>Sub try()
>> Dim r As Range
>> Dim rr As Range
>>
>> On Error Resume Next
>> Set rr = Application.InputBox("セル範囲をマウスで指定して", Type:=8)
>> If rr Is Nothing Then Exit Sub
>> On Error GoTo 0
>>
>> For Each r In rr
>>   Debug.Print r.Value
>> Next
>>
>> Set rr = Nothing
>>End Sub
>>
>>こう言った感じの事でしょうか?

【62879】Re:セル範囲の日付データの入っているセ...
発言  りおりお  - 09/9/11(金) 14:22 -

引用なし
パスワード
   Sub try()
Dim r As Range
Dim rr As Range

On Error Resume Next
Set rr = Application.InputBox("セル範囲をマウスで指定して", Type:=8)
If rr Is Nothing Then Exit Sub
On Error GoTo 0

For Each r In rr
   If IsDate(r.Value) Then
    If r <= Date Then
      r.Interior.Color = RGB(255, 255, 130)
    End If
   End If
Next

Set rr = Nothing
End Sub

こうゆう感じでよいのかな?

【62881】Re:セル範囲の日付データの入っているセ...
お礼  ぽてちん  - 09/9/11(金) 17:27 -

引用なし
パスワード
   りおりおさん。
ありがとうございました。
うまくいきました。m(_ _)m

日付の管理をしている同僚に喜んでもらえそうです。
これからも頑張って勉強していきたいと思います。
面倒を見ていただき感謝です。

解説書はあっても、目的達成への道がわからないことが多いですね。
今回はとても助かりました。

▼りおりお さん:
>Sub try()
> Dim r As Range
> Dim rr As Range
>
> On Error Resume Next
> Set rr = Application.InputBox("セル範囲をマウスで指定して", Type:=8)
> If rr Is Nothing Then Exit Sub
> On Error GoTo 0
>
> For Each r In rr
>   If IsDate(r.Value) Then
>    If r <= Date Then
>      r.Interior.Color = RGB(255, 255, 130)
>    End If
>   End If
> Next
>
> Set rr = Nothing
>End Sub
>
>こうゆう感じでよいのかな?

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