• ベストアンサー

Excel起動時に画面表示縮小を自動的にさせるには?

Excel起動時(Excelファイルを開いた時)には、通常画面は100%で表示されます。これを例えば75%や80%で自動的に表示させたいのですが、どのようにすればよいのでしょうか?ご教示ください。 マクロを使う場合、コマンドや設定等教えていただけると助かります。マクロの基礎知識は理解しております。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

>起動後sheet1の画面を表示させたいのですが... それならば、コードの最後に Sheet1をアクティブにするコードを追加すればよいです。 Private Sub xlApp_WorkbookActivate(ByVal Wb As Workbook) Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In Wb.Worksheets ws.Activate ActiveWindow.Zoom = 75 'ActiveWindow.Zoom = 80 Next Wb.Sheets(1).Activate '←追加 Application.ScreenUpdating = True End Sub 追加した1行は Wb.Sheets("Sheet1").Activate でも良いが、 Sheet1の名前が変更されていたりした場合に エラーになるので、一番左のシートという意味で、 Sheets(1)という書き方にしてあります。 ですから、Sheet1が左から2番目にある場合は 当然ですがSheet1はアクティブになりません。 状況によって、使い分けて下さい。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

もっと簡単に VBE画面のVBAProjectエクスプローラーで ThisworkbookのWorkbookのSheetActivateイベントを選び Private Sub Workbook_SheetActivate(ByVal Sh As Object) ActiveWindow.Zoom = 75 End Sub でどうですか。

wenti
質問者

補足

設定したところ、1度はうまくいきました。 しかし、その後Excelを起動すると100%に戻ってしまいました。 どこか設定をいじってしまったのでしょうか?

回答No.3

>すべてのシートが縮小になるように設定できませんか? ということであれば以下のようにして下さい。 Option Explicit Private WithEvents xlApp As Application Private Sub Workbook_Open() Set xlApp = Application End Sub Private Sub xlApp_WorkbookActivate(ByVal Wb As Workbook)  Dim ws As Worksheet  Application.ScreenUpdating = False  For Each ws In Wb.Worksheets   ws.Activate   ActiveWindow.Zoom = 75   'ActiveWindow.Zoom = 80  Next  Application.ScreenUpdating = True End Sub

wenti
質問者

補足

ありがとうございました。うまくいきました。 もう一つ付け加えさせていただくなら、起動後sheet1の画面を表示させたいのですが、いかがでしょうか?現状は最終シートで起動しています。

回答No.2

No.1です。 ActiveWindow.Zoom = 75 を書くイベントを間違えました。 Option Explicit Private WithEvents xlApp As Application Private Sub Workbook_Open() Set xlApp = Application End Sub Private Sub xlApp_WorkbookActivate(ByVal Wb As Workbook) ActiveWindow.Zoom = 75 'ActiveWindow.Zoom = 80 End Sub と訂正させて下さい。

wenti
質問者

補足

回答ありがとうございます。ご教示いただいた内容で設定しました。望んでいた内容でした。さらにもう1点教えていただければと思います。ご教示いただいた設定では、sheet1は縮小した表示になるのですが、sheet2、sheet3は100%のままです。すべてのシートが縮小になるように設定できませんか?よろしくお願いいたします。

回答No.1

こんにちは。 個人用マクロブックのThisWorkBookモジュールに Option Explicit Private WithEvents xlApp As Application Private Sub Workbook_Open() Set xlApp = Application End Sub Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook) ActiveWindow.Zoom = 75 'ActiveWindow.Zoom = 80 End Sub ではいかがでしょう?

関連するQ&A