VBA(Visual Basic for Applications)で業務アプリケーションを作っているような方から、
「アクティブセルを左上に表示することはできないのでしょうか?」
「ファイルを開いたときにアクティブセルを左上に表示するにはどうしたらいいのでしょう?」
といったご質問をいただくことがあります。
例えば、
「Range("Z400").Activate」
「Range("Z400").Select」
といったコードを実行すれば、
Z400セルを、アクティブにしたり選択したりといったことは可能です。
しかしこのZ400セルはExcelウィンドウの真ん中に表示されてしまいます。
これを真ん中に表示させるのではなく、左上に表示させるにはどうしたらいいのか、というご質問です。
Activateメソッド・Selectメソッドは、アクティブにしたり選択したりといったことはできますが、どこに表示するかといった指示はできません。
※ファイルを開いたときにSheet1シートを選択し、Z400セルを左上に表示する例
Sub Auto_Open()
Worksheets("Sheet1").Select
Application.Goto Range("Z400"), True
End Sub
「Worksheets("Sheet1").Select」は、「Sheet1」シートを選択するコードです。
VBAをお使いの方にとってお馴染みのコードのはずで、特に問題ないでしょう。
ポイントは
「Application.Goto Range("Z400"), True」
です。
Activateメソッドや、Selectメソッドではなく、Gotoメソッドを利用します。
Gotoメソッドの第2引数:Scrollに「True」を指定することで、第1引数:Referenceに指定されたセルが左上に表示されるようになります。
このコードを、ファイルを開いたときに自動的に実行されるAuto_Openマクロに記述しておけば、ファイルを開いたときに指定されたセルが左上に表示されるようになります。
▼サンプルファイル(003407.xls 40KByte)ダウンロード
サンプルファイルには上記のAuto_Openマクロを作成してありますので、ご確認ください。
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » アクティブセルを左上に表示するには?−Gotoメソッド・Scroll:=True