[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート毎に日付を入れたい』(キク)
会社で日誌を入力しているのですが、シート毎に日付け自動入力したくて今までの
質問の中から色々試してみましたが完成させる事ができません
シートを一度に31日分作成する事は出来てます
そこからが、できずA1セルにどうしたら日付けの連番が入るでしょうか
< 使用 Excel:Excel2010、使用 OS:Windows7 >
やりたいことの説明も大切ですが、ご自身のやったことを只「できませんでした」 というのではなく、何を、どのようにやったけれど、どこがうまくいかなかった。 ということを説明してはどうでしょうか。
そうすれば、躓いた点に対する回答もできますし、やり方をこう変えたらどうか、 という提案もできます。
>シートを一度に31日分作成する事は出来てます。 はどのようにやっているのでしょうか。 そのタイミングで、日付を入れるだけのような気もしますが。
(Mook) 2014/02/22(土) 16:08
提示の方法は Sheet1 を常に参照してしまいますが、それはそれでよいのでしょうか。 数式を使用して実装する方法もあるでしょうが、マクロでシートコピーしているなら 直接日付を入れても良いと思います。
Sheet1を1か月分コピーするというのであれば、Sheet1 のA1 のセルの書式を日付にして おいて、下記のようでどうでしょうか。
Sub CopySheets() Dim nextMonth As Date nextMonth = DateSerial(Year(Date), Month(Date) + 1, 1)
Dim y As Long y = InputBox("作成する年を入力してください", "年入力", Year(nextMonth))
Dim m As Long m = InputBox("作成する月を入力してください", "月入力", Month(nextMonth))
Dim dt As Date For dt = DateSerial(y, m, 1) To Application.EoMonth(DateSerial(y, m, 1), 0) Sheets("Sheet1").Copy After:=Worksheets(Worksheets.Count) With Worksheets(Worksheets.Count) .Name = Format(dt, "M月D日") .Range("A1").Value = dt End With Next End Sub
(Mook) 2014/02/22(土) 17:55
数式案をもう一度見てみましたが、日付が1桁の時にうまくいかなそうですね。 Sheet1 に毎回日付を入れておくのもちょっと大変そうです。 最初の提示されたコードだと 「xx月xx」なので日付だけを取り出すのであれば、 RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2) だけでなく、 SUBSTITUTE(RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2),"月","") にしたらできそうです。
ですから、最初に Sheet1 の A1に =DATE(2014,3,SUBSTITUTE(RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2),"月","")) としてから、最初のマクロを実行すればそれでもできるように思います。 (Mook) 2014/02/22(土) 18:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.