エクセル:シートを増やす際の日付更新について

このQ&Aのポイント
  • エクセルのテクニックはほぼ素人の者ですが、日報や顧客管理シートを作成するためにマクロを利用し始めました。日報管理では、原本シートを作成し、シート追加ボタンを使って新しいシートを蓄積する方法が良いと考えます。しかし、日付の更新に関して困っています。シート名を日付に合わせた形で設定しようとしても、上手くいきません。シート名を変更する方法があれば教えてください。
  • エクセルで日報管理をするために、原本シートを作り、日々新しいシートを追加しています。しかし、日付の更新に困っています。シート名を日付に合わせた形で設定しようとしてもうまくいきません。手打ちでシート名を変更する方法があれば教えてください。
  • エクセルの日報管理で問題になっているのは、新しいシートの日付更新です。日報を蓄積するためには新しいシートを追加していく必要がありますが、シート名を日付に合わせるのがうまくいきません。シート名を手動で変更する方法があれば教えてください。
回答を見る
  • ベストアンサー

エクセル:シートを増やす際の日付更新について

エクセルのテクニックはほぼ素人の者ですが、 上司より日報や顧客管理シートを作るよう指示されたため、マクロを少しずつ利用し始めました。 本題の質問なのですが、日報管理に関しては「原本」シートを作成し、「シート追加」のボタンを日々押して新たなシートを作成して蓄積する方法が良いと考え、なんとかそこまでは初心者ながら作成出来ました。 が、日付に関して困っています。 原本には「TODAY関数」を入れており、追加されたシートで関数の入ったセルをコピー → 値として保存の操作で希望の形に出来るのですが、シート名も日付に合わせた形→ActiveSheet.Name = Range("A3") のように設定しても、そもそも(/)が残っているので上手くいきません。 ただの文字列にしようとしてもシリアル値に変わってしまうため、これまた上手くいきません。 追加したシートのシート名を手打ちで打ち直す方法をとればいいだけの話ですが、方法があればご教授頂きたく存じます。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

マクロに「今日の日付」を生データとして記入させます。 sub macro1() ’シートを複写し、日付を記入する  worksheets("原本").copy after:=worksheets(worksheets.count)  range("A3") = date ’以下は原本シートに最初から指定しておけば不要  range("A3").numberformatlocal = "yyyy/mm/dd" ’シート名を変更する  on error goto errhandle  activesheet.name = format(date, "yyyymmdd")  exit sub errhandle: ’例えば「今日のシート」を2回作成しようとした  msgbox "ERROR" end sub

ken19730126
質問者

お礼

ご丁寧にありがとうございました。 もの凄く分かり易かったです♪ おかげさまで全て上手くゆきました(^_^)v

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>原本には「TODAY関数」を入れており ですので、最初からA3セルに =TEXT(TODAY(),"yyyy年mm月dd日") と入れておいて文字列にしておく。 話が変わりますが、毎日(あるいは毎月)シートが増えていくことになっているのでしょうが、 これは、お勧めできないシート構成です。 シート数にも限界がありますし、仮に、過去の何年何月の日報を印刷してと頼まれた場合 シート数が多いと、探すだけでも一苦労になります。 初心者が、最初に失敗して、後から苦労するパターンの一つです。 シートの構成は、以下の2枚で考えてみてください。 1 データのシート  A   B 日付  内容・・・ といったように日付とデータをひたすら縦方向に入力していきます。 2 原本のシート を一枚だけ準備して、日付を入れると必要な内容が表示される仕組みを 作ります。

ken19730126
質問者

お礼

回答ありがとうございます! 関数で解決、非常に分かり易く初心者には有難い限りでしたm(__)m シートのアドバイスですが、2の原本のシートの日付入力欄に日付を入力するとデータのシートの内容を引っ張ってくるという認識でよいでしょうか? 頭の中のイメージではデータシートのB列以降の入力は行数が複数になり、 一日分が複数行に渡るイメージです。 その場合もA列の日付入力セルから次の日の入力欄までの空白の部分を認識してその日だけのデータを引っ張ってくることも可能でしょうか? 超初心者の質問ですみません。 またお時間のある時にお返事頂ければ幸いです。 どうぞよろしくお願いいたします。

  • f272
  • ベストアンサー率46% (8016/17133)
回答No.2

こういうこと? ActiveSheet.Name = Format(Range("A3"), "yyyymmdd")

ken19730126
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセルのシートのデーターの所がTODAY関数の日付なんですがシートの

    エクセルのシートのデーターの所がTODAY関数の日付なんですがシートのデーター変更などした時の日付が残るようにしたいのですが何か良い関数か方法がありますか

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

    業務日報を作成しています。 1シート1日なので、1ヶ月30シート~31シートあります。 1ヶ月1ファイルです。 この全シートのA1に日付を入れたいのですが、毎日入力するとも 限らないので、最初から 2008年8月1日(金)のような日付を 入力したいのです。 その場合、1日分を入力したら2日以降31日まで入力になるような 方法はないでしょうか?

  • ExcelでTODAY関数を更新させない方法

    こんにちは。 ExcelのTODAY関数について質問です。 例えば、 Sheet1 …x日作成 Sheet2 …y日作成 Sheet3 …z日作成 と順番に作成した際、全てにTODAY関数を使っていると、 Sheet1~3全てz日の日付になってしまいます。 TODAY関数を使って、特定のシートのみ更新させ、 過去に作成したものを更新させないことは可能でしょうか? よろしくお願いします。

  • エクセルVBAで、特定のシートからボタンで別シートへ指定行より下へ順番

    エクセルVBAで、特定のシートからボタンで別シートへ指定行より下へ順番に転記し、蓄積していく方法を教えてください。 ☆特定シート(日報報告) ----------------------------------   日付 銘柄  合計 1  1/1 りんご  5 2  1/1 みかん  8 ----------------------------------- ※日報報告は毎日入力し報告すれば削除します ↓↓日報報告を毎日入力し月締め報告へ蓄積していきます ☆転記シート(月締め報告) ------------------------------------    日付 銘柄 合計 1  1/1 りんご 5 2  1/1 みかん 8 3  1/2 りんご 7 ← 同じ日報報告シートより日付順で蓄積 4  1/2 ばなな 3 5  1/3 りんご 6 ← 同じ日報報告シートより日付順で蓄積 ------------------------------------- ※月締め報告は、転記した日報報告の蓄積をしていきます。 上記表で、日報報告を月締め報告へ転記することは マクロを使用して出来たのですが、 蓄積していく方法がわかりません。 VBAも初心者です。 説明等足りない部分もあるかと思いますが、 みなさまの知恵をお借りできたらと思っております。 エクセルバージョンは2003です。 宜しくお願いいたします。

  • エクセルVBA シートの追加と名前の変更

    エクセルに「原本」シートがあり、マクロを実行すると原本シートを5シート(5日分)追加し、 (1)一つ目に追加したシートのB2のセルに「追加する日の日付け」を入力し、 シート名にその日付をyymmdd形式で名前を付け、 (2)二つ目に追加したシートのB2のセルに「追加する日の次の日の日付け」を入力し、 ・・・同様の処理・・・ (6)一つ目の追加したシートをアクティブシートにする。 というように、連続した5日分のシートを追加したいと考えています。 VBAの全くの初心者ですので教えていただけると大変助かります。 そんな素晴らしいことが短時間で教えていただけるものなのでしょうか。

  • excel 手打ち日付が勝手に今日の日に変わる。

    excel 手打ち日付が勝手に今日の日に変わる。 会社のパソコンがXPからwindows7に変わりました。 それに伴いofficeも2010に変わりました。 でっ、およっ?と思うことがexcelで発生して困っています。 今まで、とあるセルに日付を手打ちしていました。 ところが新しいexcelでそのファイルを開くと、今まで手打ち をしていた日付が「自動的に今日の日付」に変わっているの です。もちろん、today()などの関数を使用していません。 「便利になったじゃん」と思うでしょうが、、、。 このファイルは毎日コピーして作成していて、過去の分は全部 残してあります。つまり、過去のファイルを開くと手打ちの日 付が今日になってしまうのです。 つまり、手打ちした日付から自動計算していた表などが、今日 の日付に変わっているので頓珍漢な内容になってしまうのです。 しかーしっ、全部のセルの日付に変わるわけではないのです。 「んじゃ」ということで、、日付が変わらないセルからコピー して問題のセルにペーストしても同様の現象が発生するのです。 この現象の解決方法をご存知の方がいらっしゃいませんか。

  • エクセルの自動日付入力

    エクセルで、=today()を使い日付が勝手に入るようにしています。 しかし、このtoday関数は、日付が翌日になると、その翌日の日付になるほか、後日そのファイルを開くとその開いた日で表示されてしまいます。 そこで、ファイル作成日の日付をそのまま残しておくためにどのような方法がありますか? 分かる方がいらっしゃいましたら、よろしくお願いいたします。

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

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

  • Excel:日付で選択するシートを選ぶ方法

    今仕事で作りながら質問しています。 日報みたいなものを作っており、 1、2、3…31という感じで、31個のシートに名前をつけ、 別シートから日付によってそのシートの内容を引っ張るような表を作りたいのですが、 シートの選択をどのようにすればいいのか迷っています。 ='1'!A1 の'1'の部分が日付により'2'になったり'3'になったり することはできないのでしょうか? できれば、関数で処理したいのですが、 VBAでも構いません。 すみませんが、よろしくお願い致します。

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

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

専門家に質問してみよう