- 締切済み
Excelで指定したワークシートを開かせたい
Excelで指定したワークシートを開かせたいのですが、方法がわかりません。お知恵をお貸しください。 Excelを開いたときにメッセージボックスで開きたい日付のワークシートを指定して開かせるようにしたのですが方法がわかりません。 Excelのファイルは次のようになっています。 ワークシートは、1~31まで31のシートがあります。 Excelファイルを開いたときにどのファイルを開くか訪ね、該当するシートを開きたい。 日付入力が、「07月02日」ならワークシート名の2を、「07月05日」ならワークシート名の5を開かせたいのですが、方法がわかりません。 申し訳ありませんが、お力をお貸しください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
VBAで無いとできないでしょう。 質問は2つ問題を含んでいて (1)エクセルを起動したとき (2)特定のブックを開いたとき (2)を説明します。 VBEのVBAPojectのThisWorkbookをクリックして、 ObjectはWorkbook,ActionはOpenを選び 下記の中身をコピー張り付け。 Private Sub Workbook_Open() h = InputBox("日付=") d = Day(h) dw = StrConv(d, vbWide) MsgBox dw Worksheets(dw).Activate Worksheets(dw).Range("A1").Select End Sub MsgBox dw は確認用。削除して可。 ーー (1)は PERSONAL.XLS の標準モジュールに 下記をつくり、一旦保存します。 Sub auto_open() h = InputBox("日付=") d = Day(h) dw = StrConv(d, vbWide) MsgBox dw workbooks.Open "自動オープン.xls" Worksheets(dw).Activate Worksheets(dw).Range("A1").Select End Sub その後エクセルを起動すると、以下(2)と同じ。
「今日の日付のシートを開かせる」のならわりと簡単なんですが: Visual Basic Editorを立ち上げ、ThisWorkbookオブジェクトのマクロを開いて以下のように記入します。 |Sub Workbook_Open() | Sheets(CStr(Day(Date))).Select |End Sub 「ダイアログを開いて今日の日付を聞くようにする」のが割と面倒です。 今日の日付を入力させるためにはカレンダーコントロールが必要ですが、Excelには標準でカレンダーコントロールがありません。 Visual Basicなどが入っていればDTPickerというコントロールを使えるのですが・・・。
補足
アドバイスありがとうございます。 (1)参考に下記のようにしたのですが、ファイルを開くことができません。Fドライブの7月フォルダ内の7月4日フォルダの出欠黒板を開きたいのですが、workbooks.Openでストップしてしまいます。お手数ですが、アドバイスをいただけませんか? Sub auto_open() If MsgBox("自動実行を実施しますか", vbDefaultButton2 + vbYesNo, "自動作業") = vbNo Then Exit Sub h = InputBox("日付=") d = Day(h) dw = StrConv(d, vbWide) MsgBox dw today = Format(Now(), "m月dd日") Workbooks.Open "(f:\7月\7月04日\出欠黒板.xls)" Worksheets(dw).Activate Worksheets(dw).Range("A1").Select End Sub