[[20140222152934]] 『シート毎に日付を入れたい』(キク) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート毎に日付を入れたい』(キク)

会社で日誌を入力しているのですが、シート毎に日付け自動入力したくて今までの
質問の中から色々試してみましたが完成させる事ができません
シートを一度に31日分作成する事は出来てます
そこからが、できずA1セルにどうしたら日付けの連番が入るでしょうか

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 やりたいことの説明も大切ですが、ご自身のやったことを只「できませんでした」
 というのではなく、何を、どのようにやったけれど、どこがうまくいかなかった。
 ということを説明してはどうでしょうか。

 そうすれば、躓いた点に対する回答もできますし、やり方をこう変えたらどうか、
 という提案もできます。

 >シートを一度に31日分作成する事は出来てます。
 はどのようにやっているのでしょうか。
 そのタイミングで、日付を入れるだけのような気もしますが。

(Mook) 2014/02/22(土) 16:08


済みません
初めての投稿でどう説明するかわからないのです
先ずシートはこのコードをコピーして作成しました
Sub copysheet()
Dim Start_Num As Long
Dim End_Num As Long
Dim i As Long
Start_Num = 1
End_Num = 31
For i = Start_Num To End_Num
Sheets("Sheet1").Copy After:=ActiveSheet
ActiveSheet.Name = "3月" & i
Next i
End Sub
一度保存して次に
=DATE(YEAR(Sheet1!$A$1),MONTH(Sheet1!$A$1),RIGHT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),2))
このコードを貼り付けしたのです 左に1枚のシートがありA1セルに2014/3/1の入力してます  その後
シート全部選択して、シートのA1セルに貼り付けました その作業が間違っているのでしょうか
 本当に済みません よろしくお願いします。
(キク) 2014/02/22(土) 17:16

 提示の方法は 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

ありがとうございました
本日実施してみます
(キク) 2014/02/24(月) 11:49

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.