Excel VBA質問箱 IV

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

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


390 / 13645 ツリー ←次へ | 前へ→

【80669】セルから日付を取得して、その日から2日前までを非表示にしたい ぐら 19/4/1(月) 7:16 質問[未読]
【80670】Re:セルから日付を取得して、その日から2日... マナ 19/4/1(月) 14:15 発言[未読]
【80671】Re:セルから日付を取得して、その日から2日... ぐら 19/4/1(月) 14:31 お礼[未読]
【80672】Re:セルから日付を取得して、その日から2日... マナ 19/4/1(月) 14:40 発言[未読]

【80669】セルから日付を取得して、その日から2日...
質問  ぐら  - 19/4/1(月) 7:16 -

引用なし
パスワード
   はじめまして。
仕事でマクロを使うことになり、勉強しながら組んでみたのですが躓いてしまいました。
A列の最終行のセルを読み取り、そのセルが今日より3日以前を非表示にするマクロを組んだのですが、
要望によりそのセルの日付より3日以前を非表示にできないかということになりました。
作業日にかかわらず2日前を消したいとのことです。


Sub Meas()
'
' Meas Macro
'

'  
  Dim i As Integer
  
  For i = 5 To Range("A65536").End(xlUp).Row
  If Range("A" & i).Value < Date - 2 Then
  Rows(i & ":" & i).EntireRow.Hidden = True
  End If
  
  Next i


Date - 2を該当セルの日-2にすれば良いと思うのですが、思い当たる関数を入れてもエラーしか起きません。
たとえば、先にセルから日付を取得しておいて、その値をDate-2のところに入れるとValue <が成り立つというふうにはできるのでしょうか?

【80670】Re:セルから日付を取得して、その日から...
発言  マナ  - 19/4/1(月) 14:15 -

引用なし
パスワード
   ▼ぐら さん:
-
>
>Date - 2を該当セルの日-2にすれば良いと思うのですが、思い当たる関数を入れてもエラーしか起きません。
>たとえば、先にセルから日付を取得しておいて、その値をDate-2のところに入れるとValue <が成り立つというふうにはできるのでしょうか?


Dim 最終セル As Range

Set 最終セル = Range("A65536").End(xlUp)

こんな感じで、変数を使えば、
Date-2 のかわりに、最終セル.Value-2とできます。

【80671】Re:セルから日付を取得して、その日から...
お礼  ぐら  - 19/4/1(月) 14:31 -

引用なし
パスワード
   .Value-2でよかったのですね!
ありがとうございます。無事動きました。
30になってエクセルをちゃんと使う仕事についたので四苦八苦しております

【80672】Re:セルから日付を取得して、その日から...
発言  マナ  - 19/4/1(月) 14:40 -

引用なし
パスワード
   ▼ぐら さん:

本題とは別ですが

 
>  For i = 5 To Range("A65536").End(xlUp).Row

実際には、65535個もデータがないだろうから

Range("A10000").End(xlUp).Row

でも、よいです。
意味もわからず使うくらいであれば、
想定されるデータ数より大きい数字にしておけばよいです。

>  Rows(i & ":" & i).EntireRow.Hidden = True

間違いではありませんが、

Rows(i).Hidden = True

のほうが、簡単でわかりやすいです。

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