• ベストアンサー

VBA、セルに入力された日付からシート名を変更

あるセルに日付(例「2014/8/17」)と入力してあり、そのセルから日付を拾い、 日付が入力してあるシートではないシートのシート名を 日だけの名前(例「17日」)に変更したいのですが、どのように考えていいかわかりません。 よろしくお願いします。

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

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

>どのように考えていいかわかりません ○所定のシートの所定のセルに日付のデータが記入されていることを確認する ○日付の値から「17日」のように算出する ○目的のシートを特定する ○目的のシートのシート名を変更する で。 具体的に。 どのシートのどこ番地のセルの値を調べて、それをどのシートの名前にしたいのですか。 sub macro1()  if isdate(worksheets("Sheet1").range("A1").value) then  on error goto errhandle  worksheets("Sheet2").name = format(worksheets("Sheet1").range("A1").value, "d日")  else  msgbox "不適切なデータ"  end if  exit sub errhandle:  msgbox "不適切なシート名" end sub

mmm-aio
質問者

お礼

教えていただいたものを組み込んだらうまくできました!ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セルに入っている日付を変更し、変更した日付でシートを作る

    セルA1に21年3月31日という日付が入っています。 このシートのセルA1に、20日後の、21年4月20日に変更し 新たにシートを作りたいです。これをマクロにしたいのです。 よろしくお願いします。

  • カレンダーコントロールからセルとシート名に日付を入力

    エクセルVBAコードについてですが、マクロを実行すると、カレンダーコントロールが表示され、選択したカレンダーの日付をクリックすると、任意に指定したセルとシート名にその日付を表示させたいのですが、どのようなコードを書けばよいのか教えてください(><) ちなみに、今はインプットボックスから日付を入力する方法をとっていますが、都度「2008年○月○日」と入力しなくてはいけませんので、効率が悪く困っています。 どうぞ宜しくお願い致します。

  • セルへの日付入力で指定期間のみ入力できるようにしたいのです。

    セルへの日付入力で指定期間のみ入力できるようにしたいのです。 2つの方法を知りたいのですが、 一つ目は A11-A12と並んだセルで両方とも任意の日付入力欄となっています。 まずA12に任意の日付を入力した場合A11に入力できる日付をA12より前は打てないようにしたい。 (例)A12に2010/01/20--A11には2010/01/19---× (例)A12に2010/01/20--A11には2010/01/25---○ (例)A12に2010/01/20--A11には2010/02/25---○ 二つ目は 指定のセルに入力当日の前月以前は打てないが入力日(月も)以降は打てる (例)セルへの入力日2010/01/20--実際に入力する任意の日付2010/12/30---× (例)セルへの入力日2010/01/20--実際に入力する任意の日付2010/01/21---○ (例)セルへの入力日2010/01/20--実際に入力する任意の日付2010/02/11---○ こんな制限はできるのでしょうか。 ご教授をお願い致します。

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

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

  • 日付を入力したセルをファイル名にして保存するには

    こんにちは。VBA 初心者です。 あるセルに日付を入力しています。 そのセルは書式設定の表示形式・日付で「2001/3/14」と入力した時に、「2001年3月14日」と表示される様に設定しています。 そしてこのファイルをマクロで名前をつけて保存するとき、上記のセル(の値)をファイル名したいのですが、2001\3\14と認識され、エラーが出ます。 セルに日付を入力する時に、出来るだけかな入力はせず、日付をファイル名にして保存するにはどういう方法があるでしょうか。 わかりにくい説明で申し訳ありません。ウィンドウズXP・エクセル2003です。よろしくお願いします。

  • エクセルで、セルの日付をシート名にしたい

    セルA1に、別のブックのセルから=の式で引張って来た日付表示のデータ(H19.10.10)が入っています。 その日付を常にそのシート名に反映させるにはどうしたら良いでしょうか?宜しくお願いします。

  • Excelでセル入力してEnterを押せば同時にシート名も変える方法は

    Excelでセル入力してEnterを押せば同時にシート名も変える方法は? Excelのシート名を下記のような式をコマンドボタンに入力して、C6に日付を入力後、コマンドボタンを押してシート名を変更しています。それを、C6セルに入力し、Enterを押した時点でシート名を変更するにはどういう式を入れれば良いのでしょうか? ご教授お願いいたします。 Private Sub CommandButton1_Click() ' ' Macro1 Macro ' マクロ記録日 : 2010/6/21 ユーザー名 : ○○○○ ' Range("C6").Select Application.CutCopyMode = False Selection.NumberFormatLocal = "yyyy""年""m""月""d""日"";@" Sheet1.Name = Range("C6").Text & "~" End Sub

  • 複数のセルに入力された文字を使ってシート名を変更するには?

    たとえば、シート1には○山の2月出勤表、シート2には△田の2月出勤表 というように、個人別の出勤表がそれぞれのシートにあります。 それぞれのシートのA1のセルに、何月かを表す数字「2」(2月の場合) 同じく、B2のセルに苗字「○山」(シート1の場合) が入力されています。 B2のセルに入る苗字は固定、A1は月が変わるごとに数字が変わります。 月が変わるときに(例:2月から3月)、複数のシートを選択した状態で A1に数字(3)を入力し、選択したすべてのシート名を "A1の数字"月("B2の苗字")⇒ 例:シート1なら『3月(○山)』 のように一括で変更できる方法をお教えください。 http://okwave.jp/qa523785.html の回答を参考にしましたが、複数のセルを参照するやり方がわかりません。 どなたか宜しくお願いします。

  • VBAでシート名を自動入力時のINDIRECT

    C1セルに日付を入れています。それがVBAで自動でシート名に入力されるようにしています。 例えば、「2014年 9月1日」と入れていると、シート名も「2014年 9月1日」となります。 そのようなシートを集計シートで値を合計していきたいと思っているのですが、INDIRECT関数を使って、シート名を参照しようとしてもエラーになってしまします。 例えば、集計シートのA1セルに、「2014年 9月1日」と入力しておいて、、「2014年 9月1日」シートのB1セルに「20」といれているとします。通常は、=INDIRECT(A1&"!B1")という関数を集計シートのA2セルにいれると、「20」と表示されますが、VBAでシート名を取得している場合はエラーになってしまいます。この場合、無理なのでしょうか? また、もう1件、VBAのシート名取得で、「2014年 9月1日」は問題ないのですが、9月の9の前に半角スペースがあるのでそれを消すと、実行時エラー’1004’:が表示されて、C3セルの表示が###となります。C3セルの列幅を広げると、 、「           2014年9月1日」このような表示になっています。しかし、スペースが先頭に入力されているわけではありません。、「2014年9月1日」というシート名は手入力でいれても問題ないのですが、VBAで自動で入れた場合、エラーになるのは、プログラムに問題があるのでしょうか?下記プログラムを入力しています。 If Target.Address = "$C$1" Then Sh.name = Target.Range("A1").Value End Sub すいませんが、よろしくお願いいたします。

  • マクロでシート名を日付に変更したい

    アクティブなシートの名前が”0209”だとすると、マクロでその左のシート名を”0210”に変えたい。(1日後の日付にしたい) (参考)0209は2月9日の意味です。

専門家に質問してみよう