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

よろしくお願いします。

ある、エクセルファイル(ブック)に、
「月」、「火」、「水」、・・・(←「 」内はシート名)、というシートをあらかじめ、作っています。
そのエクセルファイルを開くとき、そのファイルを開く当日が、
月曜日ならば、「月」、
火曜日ならば、「火」、
水曜日ならば、「水」・・・
というように、自動でそのシートを出すように開きたいのです。

マクロだと思いますが、ご指導をお願いいたします。

A 回答 (4件)

はい、マクロになりますね。



1.Altキー+F11キーでVBE画面を出します。
2.メニューの挿入、標準モジュール
3.以下をコピーペ

Sub Auto_Open()
Dim wd As String
wd = Left(WeekdayName(Weekday(Date)), 1)
Sheets(wd).Activate
End Sub

以上です。

この回答への補足

ご回答ありがとうございます。
できました。驚きです^^バッチリです。
なんてシンプルなVBAでできるのでしょう。感動です。

少し内容(VBAの意味)を勉強したいのですが、
たとえば、今回のように週ではなく、
1月には「1月」、2月には「2月」という
あらかじめ作られたシートを開く方法もご指導お願いできないでしょうか?よろしくお願いいたします。

補足日時:2006/05/06 18:46
    • good
    • 0

#2です。

補足について
Private Sub Workbook_Open()
sn = Format(Month(Date), "0月")
MsgBox sn
Worksheets(sn).Activate
Range("A1").Select
End Sub
    • good
    • 1
この回答へのお礼

さっそくの補足をありがとうございます。
いろいろな方法、コードがあってどう勉強に手をつけていいのかわからない面があります。
でも、今回もとっても勉強させていただきありがとうございました。今後ともご指導お願いいたします。
先着順のポイント発行になりましたことをあわせてお詫びさせていただき、心からの御礼を申し上げます。

お礼日時:2006/05/06 20:37

No1です。



> 1月には「1月」、2月には「2月」という
> あらかじめ作られたシートを開く方法もご指導お願いできないでしょうか

はい、どうぞ。

Sub Auto_Open()
Dim m As String
m = Format(Date, "m月")
Sheets(m).Activate
End Sub
    • good
    • 0
この回答へのお礼

ご回答に引き続き早速の補足をありがとうございます。少しコードの意味が分かってきました。今後ともご指導お願いいたします。

お礼日時:2006/05/06 20:34

Private Sub Workbook_Open()


sn = Format(Date, "aaa")
MsgBox sn
Worksheets(sn).Activate
Range("A1").Select
End Sub
でやってみると、それらしく動く。
しかし、例えば土曜日は1回ではない。次の土曜には、同じ「土」
シートが開けばよいのかな。このブックには月ー土(日)まで1つずつのシートしかないのかな。
その辺の事情によっては、複雑化する。

この回答への補足

ご回答ありがとうございます。

ご指摘の通り、毎回、土曜日に同じ土曜シートが開けばよいという設定です。

また、もしよろしければ、応用編として、
1月には「1月」
2月には「2月」というあらかじめ作成されたシートが開く同様のマクロも教えていただけないでしょうか?
よろしくお願いいたします。

補足日時:2006/05/06 18:39
    • good
    • 0

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