
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) VBAで列の再表示設定 1 2023/04/25 10:19
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで特定の日付以降の非表示
Excel(エクセル)
-
【Excel】日付によって、セルの非表示と表示を自動にする方法を教えてください。
Excel(エクセル)
-
エクセルで。
Excel(エクセル)
-
-
4
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
5
エクセルで特定の値を含む列のみVBAで非表示にしたい
Excel(エクセル)
-
6
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
7
VBAで文字列を数値に変換したい
Excel(エクセル)
-
8
エクセルVBA 今日の日付行を削除
Excel(エクセル)
-
9
今日の日付が過ぎたらその行を削除したい
Visual Basic(VBA)
-
10
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
11
エクセルで特定の数字等を表示させない方法ってあるのでしょうか?
Excel(エクセル)
-
12
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
13
難問 VBA 今日の日付より前に対するイベント処理
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
エクセルのマクロで意図しない...
-
Excelで○をクリックのみでつけたい
-
VBAで色の付いているセルの行削除
-
結合されたセルをプルダウンの...
-
Excelでカタカナ・ひらがな・英...
-
エクセルマクロで偶数行(又は...
-
A1に入力された文字列と同じ文...
-
エクセル 時間の表示形式AM/PM...
-
Excel グラフのプロットからデ...
-
excelで特定のセルだけ結合でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報