• ベストアンサー

エクセルのシート毎に日付

fujillinの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.6

式をコピーしたり31シートを作成したりするのも面倒なので、1シートだけ作成すればコピーまで行うマクロにしてしまいました。 (できあがるシート名を1~31としています。) 準備:下のマクロをマクロのモジュールにコピペ     (投稿の都合上でインデントを全角ブランクにしています) 1)シートのフォーマットの雛型となるものを作成し、シート名は1(英数字の1)として、他にシートが無い状態にしておく。 2)この状態のものを雛型のブックとして保存 [ ある1ヶ月分を作成するとき ] 1)雛型のブック(上のブック)のコピーを作成 2)シート1のA1に日付を入力する(日にち形式のものならOK 例:08/8/1) 3)セットしておいた、マクロを実行。 注)マクロは原型のみなので、入力された値(日にち)のチェックや、シート名が正しいかなどのチェックは一切行っていません。   (実際に使用するには、この辺のチェックを入れておかないと、誤操作の時にエラーが出ます) ------------------------------------------ Option Explicit Dim s1 As Worksheet, s2 As Worksheet Dim d_date As Date Dim m_str As String, d_str As String, w As String Dim d As Integer Const L_week = "日月火水木金土" Sub BookSet() Set s1 = Sheets("1") d_date = s1.Cells(1, 1).Value m_str = Str(Format(d_date, "yyyy")) & "年" & Str(Format(d_date, "m")) & "月" d = 1 d_str = m_str & Str(d) & "日" While IsDate(d_str)   If (d = 1) Then     Set s2 = s1   Else     s1.Copy after:=Worksheets(Worksheets.Count)     Set s2 = ActiveSheet     s2.Name = Str(d)   End If   With s2.Cells(1, 1)     .NumberFormatLocal = "@"     .HorizontalAlignment = xlLeft     .Value = d_str & "(" & Mid(L_week, Weekday(d_str), 1) & ")"   End With   d = d + 1   d_str = m_str & Str(d) & "日" Wend s1.Activate End Sub

bunkenbunken
質問者

お礼

ありがとうございます! 私はマクロがわからないので・・・勉強してみます!

関連するQ&A

  • ワードにエクセルのシート機能ないのですか

    ワードを使用して日報を作成しています。出来ればエクセルのシート機能がワードにあれば、一つのシートに一日分の日報を書き込み、一ヶ月分をすぐ開けて、一つのファイルで管理が、しやすいかと思いますが・・・ワードでそんな機能はないのでしょうか。又出来ないのでしょうか。よろしくお願いします。

  • エクセルの操作

    エクセルで日付を入力する方法(連続で) 1シート1日の日付を 2つ目のシートに翌日の日付を続けて入力したいのですが。(たとえば1つ目のシート平成20年4月1日 2つ目のシート平成20年4月2日と・・・)365日分作りたいので1日1日入力するのはかなり面倒くさいのでなにかよい方法はないでしょうか。 1シート内だと日付を入力してセルをドラッグすると連続した日付が入力されるのはわかるのですがシートにまたがってやる方法がわかりません。教えてください。 ちなみに日報を作っています。

  • 【エクセル】データ用シートを作成し、すでにあるフォーマットへデータを反映させたい。

    お世話になります。 日報を簡単に作成できないか?と言われ、試行錯誤をしている最中です。 日報へは 当日の出荷数・今月の出荷累計・当日の入荷数・今月の入荷累計等 を入力しないといけません。 入力は、PCに触ることがあまりない人もいて、 「データ入力用のシートがあって、それを入力するだけで、 日報ができたら嬉しいんですが」とのリクエストが・・・。 日報にはすでにフォーマットがあります。 新しく「データ入力用」というシートを作成し、そこへ1日から31日までの 出入荷量等の表を作成し、累計も計算できるようにし、 それらのデータを例えば6月1日とフォーマットに日付を入力すると 6月1日のデータが日報のフォーマットへ自動で入力されるというような ことはできるのでしょうか? また、できるのであれば、どのようにしたらいいのか、アドバイスいただけると嬉しいです。 説明が上手にできずに申し訳ありませんが、よろしくお願いいたします。

  • エクセルの日付

    毎月の資料に=TODAY()をいれて日付を自動で表示させています。 資料は、毎月1日か2日(月初)に作成しますので仮に4月分とすると4月1日から毎日 日付が変わります、この日付を月末の日付になったところで(4月30日)月末の日付で のままにしたいのですが(5月1日以降になっても資料の日付は4月30日)。 当方、PC初心者で申し訳ありませんが宜しくおねがいします。

  • エクセルで日付を自動入力したい…

    エクセル2003にて自動で日付、曜日が入力できる方法を教えください。 現在、日曜、祭日除く27(←MAX営業日数分)の日報の台紙シートを、12ファイル(12ヶ月分)作っています。 (1)A1のセルに日付   例;平成19年9月10日 (2)A2のセルに曜日   例;(月) (3)シート名に     例;10月 ←日付+曜日をこの形式。次は11火        という形式で日々入力しています。 シート一枚ずつに上記の作業をしています。         マクロや数式の設定等で手順を簡略化できませんでしょうか??? 毎日の作業なので効率化したく色々勉強したつもりですが改善できずに困っています。 わかる方教えて下さい。よろしくお願いします。

  • EXCELシート内のセルのシート間コピー

    エクセル2003を使用しております。 業務で日報を毎日書いているのですが 日付ごとにシートが変わります。 前日分の引継ぎ事項を本日分のシートに というように1つ前のシートの1部を常に コピーしたいのですが何か良い方法が あれば教えていただきたいです。 ちなみにコピーしたものは編集可能で なければいけません。 よろしくお願い致します。

  • エクセルで同フォーマットの過去の日報を参照する日報ファイルを作りたい

    こんにちは。 皆さんの力をお貸しください。 現在業務で作成している日報があり、日報ファイルには「1」から「31」のシートがあります。本年分の日報の昨年データに昨年のまったく同じフォーマットの日報の数値を参照させています。しかしながら、現状では1日ごとに式を別々に入力しなければならず(参照するシート名を変えています)、作業グループで編集すると当然すべてのシートが同じ式になってしまいます。 できることならば1のシートに式を入れ、それ以降のシートは「過去ファイルの次のシートを参照する」のような参照ができれば、毎月の日報作成が非常に便利になるのですが、何かよい方法はありませんでしょうか? 宜しくお願いします。

  • エクセルでシートの振り分けを自動的にする方法

    初心者です。宜しくお願いいたします。 業務の1日のスケジュールをエクセルで管理しております。 主にお客様との相談や打ち合わせを管理しているのですが、 (1)シート1で1日のスケジュールを入力していきます。 (列)   AB   CD    E     F (行)  日付  時間  氏名   相談内容 ※(日付、時間、氏名は入力規則を使用して入力できるようにしています。) (2)シート2以降では、氏名ごとにシートを作成して、シート1に入力すると、自動的にシート2以降へ振り分けができるようにしたいのです。 (列)   AB   CD    E       (行) 日付  時間  相談内容 できるだけわかり易く教えていただければ幸いです。 宜しくお願いいたします。

  • エクセルでシートをコピーしたら日付が進んでしまいました

    エクセルで日付を2009/04/01のように入力していたシートを シートでコピーところ、 そのシート内のどの日付も 4年と1日進んでしまった日付になってしまいました。 2009/4/1 は、2013/4/2 に 1969/11/20 は、1973/11/21 に それぞれなってしました。 書式を和暦での表示にしてあっても同様なことが起こるのですが、 これを防ぐにはどうしたらよいのでしょうか?  

  • エクセルで 関数 TODAYではないものを探しています。

    エクセルで、業務日報を作っています。 F1のセルに、その日の「日付」が入力されるようにしたいのですが、どうすれば良いでしょうか…。 TODAYのように自動で入ってくれるのが理想です。 始め、TODAYで表示されたので、大喜びしていたのですが、次の日開けると、他のsheetも、全部本日になっていました(ToT)/~~~ ※翌日そのファイルを開いた際には、  前日の日報の日付は「そのままの状態(前日の日付のまま)」になっているようにしたいのです… 状態は、1月分が1つのファイルにあって、31枚 31日分sheetがあります。 次の日は、隣のsheetの移って入力という形です。 関数かVBAのようなものでするのかと思うのですが、過去の質問を調べ、真似をしてみたのですが、私には出来ませんでした(>_<)もう2時間位調べてます…。 ちなみにVBAとかは出来ないのですが…。 もしも、もしも、ご親切な方<(_ _)> これを、ここに貼り付けて、という具合に教えていただけたら助かります。 初心者ですいません....(*_*;