
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
質問は始めてらしいが、質問には簡単なシートの模擬実例を挙げること。
あなたしかシートは見えてないのだ。関係ない事項と、コードを決定する事項と切り分けられる訓練をしないと。
さらっと読むとコードは単純で出来るように見えるが、
>空白部分も非表示になってしまいます
とはどういうデータ状態か。
それが判らないと、見当ハズレの回答をしてしまう。
プログラムの適否にばかり気を取られないで、あくまでプログラムは
データの有様+プログラムの組み方、なんだ。
No.3
- 回答日時:
詳細がやや曖昧なので、コードは書きませんが、
まず、おおまかな考え方として・・・
1)作業対象を把握する
A列のデータのある最終行を取得する
(対象は1行目からその最終行まででOKか不明ですが)
2)対象のセルに対してループさせ、値が今日より以前ならその行を
非表示にする。
基本的には↑で可能です。(多分現状のコードがこんな感じ?)
データが全て日付なのかどうか不明ですが、(あるいは文字列の日付か?)目的とする日付データかどうかをチェックして、関係ない場合は処理をスキップするなども必要となります。
(スキップなのか他の処理が必要なのかは、ご質問文からはわかりま
せんが、空白セルもこれで省くことが可能になります)
例えば、vをバリアント型にしておいて、セルの値を代入し
If TypeName(v) = "Date" Then
などで判別が可能です。(データが日付型の場合の例です)
そのセルの書式を判定したり、あるいはデータを日付に変換できるかから判断しても良いでしょう。
また、非表示にする処理を1行ずつ処理するとやたらと時間がかかるので、ループ内では選択だけしておいて、最後にまとめて非表示にする方が処理速度が速く効率的です。
さらに、既に非表示の行がある場合は、それを対象から省いてしまった方が効率的だと考えられます。
例えば、rngがRange型の変数として、
Set rng = Cells(1, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1)
Set rng = Intersect(Cells.SpecialCells(xlCellTypeVisible), rng)
とすることで、A列の最終行までのセルのうち可視セルのみを選択できますので、この後は、この範囲内だけを処理対象として
For Each c In rng
などとすることで、対象のセルだけを捜査することが可能になります。
もっとも、対象行数が少ない場合は、あまり効率などを気にする必要はないと思いますが…
No.2
- 回答日時:
ワークシートのレイアウトと、用途にもよろうかと存じますが、オートフィルタのオプションを利用するというのはいかがでしょうか?
Sub Test()
Range("A1").AutoFilter 1, ">=" & Date
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで特定の日付以降の非表示
Excel(エクセル)
-
エクセルで。
Excel(エクセル)
-
【Excel】日付によって、セルの非表示と表示を自動にする方法を教えてください。
Excel(エクセル)
-
-
4
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
5
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
6
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
7
VBAで文字列を数値に変換したい
Excel(エクセル)
-
8
エクセルVBA 今日の日付行を削除
Excel(エクセル)
-
9
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
10
エクセルで特定の数字等を表示させない方法ってあるのでしょうか?
Excel(エクセル)
-
11
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
12
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
13
難問 VBA 今日の日付より前に対するイベント処理
Visual Basic(VBA)
-
14
今日の日付が過ぎたらその行を削除したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
A1に入力された文字列と同じ文...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
結合されたセルをプルダウンの...
-
チェックボックスをクリックし...
-
エクセルVBAのEntireRow.Hidden...
-
エクセルのセルに指定画像(.jpg...
-
Excelで結合されたセルの間に列...
-
Excel 時刻の並び替え
-
エクセル 上下で列幅を変えるには
-
excelのデータで色つき行の抽出...
-
色付き行の非表示について
-
[EXCEL]ボタン押す→時刻が表に...
-
アクティブになっている行をマ...
-
EXCELでセルの数値をすべて小数...
-
VBAのプロシージャの記述について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
EXCELで最後の行を固定
-
Excel ウインドウ枠の固定をす...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
連続データが入った行の一番右...
-
エクセル2016で時間を入力して...
-
チェックボックスをクリックし...
おすすめ情報