
No.3ベストアンサー
- 回答日時:
「日付は昇順」、「基準日より古い日付は必ず存在」が必ず満たされているのであれば、こんな感じで十分だと思います。
Sub sample()
Dim r As Range
Dim m As Variant
Set r = Range(Cells(1, "L"), Cells(1, Columns.Count))
m = WorksheetFunction.Match(Range("A1"), r, 1)
Cells(1, "L").Resize(, m).EntireColumn.Delete
End Sub

No.4
- 回答日時:
ではsheet1 A1セルに基準日、列削除したいシートはsheet2として作ります。
合致する列が無い事も考慮する必要がありますので、ロジック処理が必要です。
その為、if then else endif ロジックで組みます。
このサイト、字下げが出来ないので、後で字下げを行なって下さい。
Sub WK()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim 基準 As Date
Set Sh1 = Worksheets("Sheet1")
Set Sh2 = Worksheets("Sheet2")
基準 = Sh1.Range("A1").Value '基準日取得
最終列 = Sh2.Range("A1").End(xlToRight).Column '最終列番号行取得
'基準日より前の最右列を計算
For i = 12 To 最終列
If Sh2.Cells(2, i) >= 基準 Then
Exit For
End If
Next i
'列範囲削除(L列~最終列前までが削除対象かをチェック&GO)
If (i > 12) And (i < 最終列) Then
Sh2.Range(Columns(12), Columns(i - 1)).Delete '列削除
End If
Application.StatusBar = False
End Sub

No.2
- 回答日時:
確認が数点有ります。
1.基準日
プログラムで自動でやる訳なので、基準日をどうやって求めるか、が必要になります。
どこかに有るのですか?
それともプログラム内に持つのですか?
2.基準日と合致しない場合
基準日以前の列が削除対象ですか?
1.基準日
ありがとうございます。
基準日は下記ですでにセルに事前に入力しておきます。
今回は例としてsheet1 A1セルに日付データが入力されているでお願いします。
⇒ > (基準日:ワークシートの特定のセルに基準日が入力されている)
2.基準日と合致しない場合
下記でお願いします。つまり基準日以前の列は全て削除対象となります
⇒ > 基準日が2018/12/23の場合、L列~N列までを削除
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- その他(Microsoft Office) 【スプレッドシート】指定の日付より2か月前、1か月半前に書式設定でアラートを出したい。 3 2023/02/13 09:37
- Visual Basic(VBA) 範囲を指定して別シートにコピペ 2 2022/09/15 07:32
- Visual Basic(VBA) VBAでセル同士を比較して色付け 4 2023/03/06 19:57
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
今日の日付が過ぎたらその行を削除したい
Visual Basic(VBA)
-
エクセル マクロ 特定の日付"以降を削除"
セキュリティソフト
-
-
4
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
5
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
6
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
7
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
8
エクセルVBA 今日の日付行を削除
Excel(エクセル)
-
9
Excel VBAでn行毎に行の選択
Excel(エクセル)
-
10
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
11
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
12
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
13
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
14
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
15
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
16
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
17
VBA 指定した列にある日時データから時間を削除する方法について
Excel(エクセル)
-
18
VBA 空白行に転記する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
オートフィルターの絞込みをし...
-
【VBA】特定列に文字が入ってい...
-
A列とB列を1行ごとに比較してB...
-
エクセル(勝手に太字になる)
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセルの項目軸を左寄せにしたい
-
Excelで半角の文字を含むセルを...
-
エクセルで計算した数値のコピ...
-
オートフィルターをかけ、#N/A...
-
エクセルで最初のスペースまで...
-
エクセルの表から正の数、負の...
-
文字を入力したら数値が自動入...
-
Excel 別ファイルに自動的に反...
-
VBAで特定の文字を探して隣のセ...
-
「B列が日曜の場合」C列に/...
-
ExcelVBA でリストリストボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
エクセルで、列の空欄に隣の列...
-
Excel 文字列を結合するときに...
-
Excel、市から登録している住所...
-
【VBA】特定列に文字が入ってい...
-
エクセルのセル内の文字の一部...
-
エクセル 同じ値を探して隣の...
-
お店に入るために行列に並んで...
-
エクセルの並び変えで、空白セ...
-
文字列に数字を含むセルを調べたい
-
エクセルの項目軸を左寄せにしたい
おすすめ情報