プロが教えるわが家の防犯対策術!

質問させてください。
excelマクロで新しいシート(シート名 yyyy/mm/dd)を作成したいと思っています。
以下のようにマクロを作成したのですが、エラーが出てしまいます。
本件について対応がお分かりになられる方教えていただけないでしょうか。

--------------------------------------
Sub 集計開始_Click()

'宣言開始
Dim newsheet As Worksheet
'シート追加
Set newsheet = Worksheets.Add

today = Date
MsgBox today 'テスト用

'シート名記入
With newsheet
.Name = Date ←【ここでエラーがでてしまいます】

End With

End Sub
--------------------------------------

大変お手数をお掛けいたします。
宜しくお願い致します。

A 回答 (3件)

copysheet.Copy After:=.Item(.Count)


が実行されて新しいシート(複製)が作成されると、新しいシートがアクティブになっています。
ですから、この行の直後に
ActiveSheet.Name = Format(Date, "yyyymmdd")
とすると、名前を設定出来ます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいた内容で作成することができました。

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

お礼日時:2006/08/11 16:27

>シート名 yyyy/mm/dd



シート名には、"/" 等の記号は使えません。
表示されるエラーメッセージにもその記載があるかとおもいますが?

.Name = Format(Date, "yyyymmdd")
.Name = Format(Date, "yyyy-mm-dd")
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご教授いただいた内容で作成することができました。

大変申し訳ないのですが
その後いくつか変更したい点がありマクロを作成したのですが
うまくいきません。
こちらについて知っていらっしゃる場合教えていただけないでしょうか。

内容は以下になります。
---------------------------------------------------------------
【sampleシートをコピーし、コピーしたシート名をsample_yyyymmddにしたい】
<内容>
Sub 集計開始_Click()
'##############################################
'ファイルコピー(集計結果_雛形)
'##############################################
Dim copysheet As Worksheet
Set copysheet = sample
With Worksheets
copysheet.Copy After:=.Item(.Count)
End With
Set copysheet = Nothing

End Sub

上記の内容で実行したところ、ファイル名がsample(1)になるため、
yyyymmddを導入したいのですが、
どのタイミングで導入したらよいのでしょうか。
(".Count”に教えていただいた日時を導入したのですがエラーになってしまいました)

大変お手数ですがご教授宜しくお願い致します。

お礼日時:2006/08/11 13:40

今確認できないのですが



Date を Date$ に変えたらできませんかね
    • good
    • 0
この回答へのお礼

お忙しい中回答ありがとうございました。
hana-hana3さんに教えていただいた方法で作成することができました。

大変申し訳ないのですが、要件が変更になり以下作成しています。
対応の仕方が分からず困っているため、ご存知の場合教えていただけないでしょうか。
内容は以下になります。
---------------------------------------------------------------
【sampleシートをコピーし、コピーしたシート名をsample_yyyymmddにしたい】
<内容>
Sub 集計開始_Click()
'##############################################
'ファイルコピー(集計結果_雛形)
'##############################################
Dim copysheet As Worksheet
Set copysheet = sample
With Worksheets
copysheet.Copy After:=.Item(.Count)
End With
Set copysheet = Nothing

End Sub

上記の内容で実行したところ、ファイル名がsample(1)になるため、
yyyymmddを導入したいのですが、
どのタイミングで導入したらよいのでしょうか。

大変お手数ですがご教授宜しくお願い致します。

お礼日時:2006/08/11 13:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!