dポイントプレゼントキャンペーン実施中!

エクセル2003で勤務表を作ったのですが同じ形状のシートを1ヶ月分(ワークシート30枚)を一つのブックに保存しています。
それぞれシート名を日付にしているのですが本当の日付と関連付ける事は可能でしょうか?
例えば15日にエクセルのこのブックを立ち上げるとシート15が開き、次の日(16日)にこのブックを開くとシート16が一番に開くようにしたいです…何か方法があれば宜しくお願いします。

A 回答 (1件)

エクセルマクロ(VBA)はわかりますか?



ThisWorkBookに下記のマクロを埋め込めば可能です。

sSheetName変数の書式はあわせてください。
とりあえず、該当シート名が「"シート"+日」で開くように書いてあります。
また、該当シートがない場合は、保存したとき開いていたシートを開きます。

Private Sub Workbook_Open()
Dim shtSheet As Worksheet
Dim sSheetName As String

'日が半角数字の場合("シート"+半角の日)
'sSheetName = "シート" & DateTime.Day(Now)
'日が全角数字の場合("シート"+全角の日)
sSheetName = "シート" & StrConv(DateTime.Day(Now), vbWide)

For Each shtSheet In Me.Worksheets
If shtSheet.Name = sSheetName Then
shtSheet.Activate
Exit For
End If
Next
End Sub

この回答への補足

何度もすみません!!
できました!!よく見直すとDAYがDATEになってました!!
本当ありがとうございました!!
これで明日から楽ができてさらにみんなのミスも減ります。
本当ありがとうございました!!

補足日時:2007/06/27 01:38
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます!
さっそく試してみたんですがマクロがうまくいきません…
デバックしてみるとどうも
If shtSheet.Name = "勤務表" & DateTime.Date(Now) Then
この部分に間違いあがあるようなんですが僕の知識じゃどこが間違ってるのか分かりません。失礼ですがどこが駄目なのか時間が空いてる時でいいので教えて頂ないでしょうか?何度も本当にすみません。
シート名は勤務表24 ←(半角)
みたいな感じです… 

お礼日時:2007/06/27 01:28

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