• 締切済み

エクセル マクロでシート自動作成と日付入力

マクロでシートの自動作成するのに悩んでいます。 下記の二つを条件を入れるにはどうしたらいいですか? 1、コピーしたシートの日付を明日の設定する。 2、過去のシートを開いても日付を変えたくない。 コピー元のシートを"原本"という名前にしてます。 アドバイスよろしくお願いします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#02です VBAは久方ぶりだったのでミスしました。4行目は  nmSheet = Format(Date + 1, "YYYY-MM-DD") が正しいです。 すみません

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>コピーしたシートの日付を明日の設定する。 どういう意味? シート名に日付文字列を入れたいのか? ブックには作成日付などあるが、シートには無い。セルの値を日付を入れたいのか。 しっかり質問内容を表現してください・ シートの名前のことなら下記のコードを実行すればわかるだろう。 Sub test01() MsgBox Date MsgBox Date + 1 MsgBox Format(Date + 1, "yymmdd") a = #12/31/2009# MsgBox a MsgBox a + 1 MsgBox Format(a + 1, "yymmdd") End Sub わざと年末の例も挙げておいた。 シートの何処かのセルの値のことなら、やはり上記で判るだろう。 >過去のシートを開いても日付を変えたくない これも可笑しな表現。 将来そのシートを見てもその日に変わらない、というべき。 マクロでセルの値を設定すれば(関数と違って)セルの値は変わらないよ。 ただしイベントプロシージャ(自動実行)の中でDateを使うと、将来その日に変わる。 >コピー元のシートを"原本"という名前にしてます 何の関係があるのかな。 コピー元のシート名と、コピー先のシート名は関係ないはず。 関係持たせたいなら、質問に層初めから書くこと。 ーーー 明日の名前のシートを自分が指定するVBAの中で作るなら Sub test02() Worksheets.Add.Name = Format(Date + 1, "yymmdd") End Sub これで良いのか。 ーーー しかし挿入の操作の都度ということになると難しい。 シートを挿入するとき ThisWorkookのイベントの Private Sub Workbook_NewSheet(ByVal Sh As Object) MsgBox "AAA" End Sub は反応するが、シートの移動またはコピーのコピーでは反応しないようだ。 だから別途コピー以下をボタンのクリックイベントなどで、自分のコードで面倒を見ないと(記述し実行しないと)ダメかもしれない。操作者がシートをコピーしたとき、というイベントがエクセルに無い。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

とりあえず新しいブックに「原本」という名前のシートを作成して、以下のマクロを実行してみてください。 「原本」シートを複写して、シート名が「実行した日+1」のシートを作成しますが、既に同名のシートがある場合は何もしません。 もし解釈が違っていたらごめんなさい。 Sub Macro1() Dim nmSheet As String Dim idx As Integer  nmSheet = Format(today + 1, "YYYY-MM-DD")  For idx = 1 To ThisWorkbook.Worksheets.Count   If Worksheets(idx).Name = nmSheet Then Exit Sub  Next idx  Worksheets("原本").Copy after:=Worksheets("原本")  ActiveSheet.Name = nmSheet End Sub ただしシート数が多くなったときなどのエラー処理は組み込んでいませんから、ずっと使っているとエラーになる可能性はあります。 エラー処理は必要に応じて適宜組み込んでください。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

質問内容がよくわかりません。 >1、コピーしたシートの日付を明日の設定する。 シートの日付というのはシート名ということでしょうか? 単純にDate+1にすれば明日の日付が取得できると思うのですが・・・ >2、過去のシートを開いても日付を変えたくない。 どうしてシートを開くと日付が変わってしまうのでしょうか? 現在どのようなマクロが設定されていて、どの部分が問題になっているのか、ポイントを絞って、シート構成やセル位置などを含め、できる限り具体的に質問するようにして下さい。

関連するQ&A