アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

こんにちは。



個人用マクロブックの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

ではいかがでしょう?
    • good
    • 0

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

と訂正させて下さい。

この回答への補足

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

補足日時:2007/01/01 20:14
    • good
    • 0

>すべてのシートが縮小になるように設定できませんか?



ということであれば以下のようにして下さい。

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

この回答への補足

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

補足日時:2007/01/03 01:34
    • good
    • 0

もっと簡単に


VBE画面のVBAProjectエクスプローラーで
ThisworkbookのWorkbookのSheetActivateイベントを選び

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveWindow.Zoom = 75
End Sub
でどうですか。

この回答への補足

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

補足日時:2007/01/03 01:32
    • good
    • 0

>起動後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はアクティブになりません。
状況によって、使い分けて下さい。
    • good
    • 0

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