- ベストアンサー
エクセル:ブックを開くとき、自動で任意のシートで開きたい。
よろしくお願いします。 ある、エクセルファイル(ブック)に、 「月」、「火」、「水」、・・・(←「 」内はシート名)、というシートをあらかじめ、作っています。 そのエクセルファイルを開くとき、そのファイルを開く当日が、 月曜日ならば、「月」、 火曜日ならば、「火」、 水曜日ならば、「水」・・・ というように、自動でそのシートを出すように開きたいのです。 マクロだと思いますが、ご指導をお願いいたします。
- みんなの回答 (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 以上です。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。補足について Private Sub Workbook_Open() sn = Format(Month(Date), "0月") MsgBox sn Worksheets(sn).Activate Range("A1").Select End Sub
お礼
さっそくの補足をありがとうございます。 いろいろな方法、コードがあってどう勉強に手をつけていいのかわからない面があります。 でも、今回もとっても勉強させていただきありがとうございました。今後ともご指導お願いいたします。 先着順のポイント発行になりましたことをあわせてお詫びさせていただき、心からの御礼を申し上げます。
- merlionXX
- ベストアンサー率48% (1930/4007)
No1です。 > 1月には「1月」、2月には「2月」という > あらかじめ作られたシートを開く方法もご指導お願いできないでしょうか はい、どうぞ。 Sub Auto_Open() Dim m As String m = Format(Date, "m月") Sheets(m).Activate End Sub
お礼
ご回答に引き続き早速の補足をありがとうございます。少しコードの意味が分かってきました。今後ともご指導お願いいたします。
- imogasi
- ベストアンサー率27% (4737/17069)
Private Sub Workbook_Open() sn = Format(Date, "aaa") MsgBox sn Worksheets(sn).Activate Range("A1").Select End Sub でやってみると、それらしく動く。 しかし、例えば土曜日は1回ではない。次の土曜には、同じ「土」 シートが開けばよいのかな。このブックには月ー土(日)まで1つずつのシートしかないのかな。 その辺の事情によっては、複雑化する。
補足
ご回答ありがとうございます。 ご指摘の通り、毎回、土曜日に同じ土曜シートが開けばよいという設定です。 また、もしよろしければ、応用編として、 1月には「1月」 2月には「2月」というあらかじめ作成されたシートが開く同様のマクロも教えていただけないでしょうか? よろしくお願いいたします。
補足
ご回答ありがとうございます。 できました。驚きです^^バッチリです。 なんてシンプルなVBAでできるのでしょう。感動です。 少し内容(VBAの意味)を勉強したいのですが、 たとえば、今回のように週ではなく、 1月には「1月」、2月には「2月」という あらかじめ作られたシートを開く方法もご指導お願いできないでしょうか?よろしくお願いいたします。