ここから本文です

EXCEL初心者です。 マクロをわからないながらも調べながら組んでいます。 現在、...

gan********さん

2018/2/2119:17:29

EXCEL初心者です。
マクロをわからないながらも調べながら組んでいます。
現在、ある日数データがあり、それから一週間連続した日数でデータを習得するというマクロを組んでいます。

データの習得の方法としては、データの塊を日にち指定(セル値)でフィルターをかけて、というのを一週間分(5回)繰り返すというものです。この繰り返しはセル値に+1をしていき5回繰り返すというものです。
しかし、この方法では日数が月末になると、#N/Aを返してきます。
なのでマクロの途中で日付の判定を入れることにしました。
しかし、うまくいきません。
下記にマクロの内容を記述します。
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+y
'
ActiveCell.FormulaR1C1 = Range("G2")
If Range("G2") = Format(DateSerial(Year(Date), Month(Date) + 1, 0,"yyyymmdd"))Then Range("G2") = Format(DateSerial(Year(Date), Month(Date) + 1, 1,"yyyymmdd")

End Sub

G2が指定日で20180228のように数値で日付が入っています。
なので、月末と月初も20180228と20180301となるようにFormatをかけてなるかと思い書いてみました。
しかし、コンパイルエラーで動かすことができません。
どのようにしたら、動かすようにできるでしょうか?
どうかお教えください。宜しくお願いします

閲覧数:
56
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

tar********さん

2018/2/2120:21:39

カッコの位置がおかしいのでしょう。

(誤)
Format(DateSerial(Year(Date), Month(Date) + 1, 0,"yyyymmdd"))

(正)
Format(DateSerial(Year(Date), Month(Date) + 1, 0),"yyyymmdd")


(誤)
Format(DateSerial(Year(Date), Month(Date) + 1, 1,"yyyymmdd")

(正)
Format(DateSerial(Year(Date), Month(Date) + 1, 1),"yyyymmdd")

スマホから入力しているので間違いがあるかもしれませんが、とりあえず気がつきましたので回答しました。失礼いたしました。

  • 質問者

    gan********さん

    2018/2/2120:31:16

    tarosun21さん
    ありがとうございます。
    カッコの位置を修正してみました。
    しかし、実行しても、セルG2の20180228が20180301になりません。
    IF関数の組み方等などが悪いのでしょうか?
    本当にわかりません。ご教授願います。

  • その他の返信(4件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/2/21 21:26:13

分かりやすく教えて頂きありがとうございます。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tra********さん

2018/2/2120:55:49

日付を扱うときには、Date型へ変換して処理するのがスマート。
強力な日付関数を利用できます。


Sub sample()
Dim xDate As Date
Range("G2").Value = 20180228
xDate = CDate(Format(Range("G2").Value, "@@@@/@@/@@")) + 1
Range("G2").Value = Format(xDate, "yyyymmdd")
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

tac********さん

2018/2/2120:15:54

直接の回答では有りません。

日付は数値ではなく日付型で扱うべきです、エクセルには日付を扱う便利な関数が用意されています。
数値ではそんな関数が使えません。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる