
月の集計の表を作っています。
31日分の列(複数列から構成)をテンプレートにしているため、
各セルに日付を入れていくと、小の月の末に次の月の日付が入ってしまいます。
次月の日付が表示される列自体が削除されるよう、以下のように書いてみました。
当然でしょうが、エラーになりました。
F2セルにはシリアル値を入れました。
ご教示お願いします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub deleteAfterEOM()
'28のとき
If Day(EoMonth(Range("F2"))) = Range("EK1") Then
Range("EP1:FC41").EntireColumn.delete
'29のとき
ElseIf Day(EoMonth(Range("F2"))) = Range("EP1") Then
Range("EU1:FC14").EntireColumn.delete
'30のとき
ElseIf Day(EoMonthRange(("F2"))) = Range("EU1") Then
Range("EZ1:FC14").EntireColumn.delete
End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
No.3ベストアンサー
- 回答日時:
ワークシート関数の「EoMonth」に手がかりを掴んでいたようでしたので、
こちらを使うようにすると・・・
先の回答に書いた 「EOM = 」の行をこちらに置き換えて見てください。
EOM = Day(Application.WorksheetFunction.EoMonth(Range("F2"), 0))
WorksheetFunction ワークシート関数の・・・
EoMonth を使います。
という具合にちょっと特殊な書き方になります。
ありがとうございます。
EoMonthと唐突に書いてもダメなんですね。
Application…から指定してやらないと辿れないとわかりました。
No.2
- 回答日時:
F2には今日の日付か何かが入ってるんですよね?
質問内容に書かれてた、ご自身で考えられた内容を完全無視でつくってみました。
お試しください。
処理では、削除ではなく「削除対象を選択状態」としています。
実際に動作を確認してみて、問題が無いようでしたら、
「.Select」 → 「.Delete」
と書き換えてください。
Sub deleteAfterEOM()
'EOM に F2の月の最終日を入れます
Dim EOM As Long
EOM = Day(DateSerial(Year(Range("F2")), Month(Range("F2")) + 1, 0))
'29日 EP列 は Colunm146
'30日 EU列 は Colunm151
'31日 EK列 は Colunm156
'月末日以降に消す先頭列は以下の式になる
' 161 - ( 31 - [月末日] )×5
'削除最終列 FC列 は Column159
'なので・・・
If EOM < 31 Then
Range(Columns(161 - (31 - EOM) * 5), Columns(159)).Select
End If
End Sub
No.1
- 回答日時:
すみません。
'28のとき
If Day(EoMonth(Range("F2"))) = Range("EK1") Then
の文を日本語で説明していただけませんでしょうか。
EK1には、どのような値が設定されていますか。
F2にはシリアル日付ということですが、F2がどのような値で、
EK1がどのような値の時、この条件が成立しますか?
"f2"はその月の1日のシリアル値を入れてあります。
読み下すと、「もし、シリアル値で入れた日を含む月の月末日と、EK1(28という数値が入っているセル)が同じ値なら」という意味で書いたんですけど…。
あまり基本を勉強はしていませんので、文法やら間違っていると思います。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
日付を入力したセルをファイル...
-
入力後に日付順になるように自...
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
Excelで8/26等の日付を全てその...
-
エクセルで1年後の月末を表示さ...
-
エクセルでENTERを押すと数式が...
-
Excelで半年後の日付を計算したい
-
エクセルのセルにカレンダーを...
-
日誌を作るため印刷時に日付を...
-
VBAでセルに入っている日付をシ...
-
excelでの月の自至の表示
-
EXCELで同時アクセス数をカウン...
-
ファイルのオープン時に今日の...
-
エクセルの日付(改;スピンボ...
-
西暦や和暦の表示をyyyymmdd表...
-
エクセル セルに109と入力する...
-
excelで月末日を判定したい
-
word、日付選択コンテンツの隣...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
入力後に日付順になるように自...
-
31:30:00が1900/1/1 7:30:0
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
Excelで8/26等の日付を全てその...
-
日付の照合でFALSEになります。
-
エクセル関数で日付かどうかの...
-
エクセル 当番表の作り方 エク...
-
エクセルで数字列の間に『/』を...
-
EXCELで直近の日付を抽出する関数
-
エクセルのセルにカレンダーを...
-
日付を入力したセルをファイル...
-
ファイルのオープン時に今日の...
-
WORDで翌日や翌々日の日付を表...
-
エクセルで1年後の月末を表示さ...
-
エクセルで日付入力欄を作成し...
-
エクセル グラフ 軸の日付表記...
-
エクセル セルに109と入力する...
おすすめ情報