Excel VBAでSheetの表示位置を左端にする。
今回は、Microsoft Excel の Book 下部に並ぶ Worksheetの見出し表示をVBAを使って常に左端が見える様にする方法について紹介します。
Sheetの表示位置
この記事でいうSheetの表示位置というのは、Excel Book下部のシートの見出しが並んでいる部分の表示の事です。
何故表示位置を左端にしたいと思ったか
一番左の「Main」Sheetで選択したWorksheetをVBAマクロでアクティブにしつつも、すぐに「Main」Sheetに戻ってこれる様に一番左にある「Main」Sheetを常に表示させておきたいと考えたためです。
実現方法
VBAコード ActiveWindow.ScrollWorkbookTabs を使って実現できます。このメソッドには Sheets または Position のパラメーターを渡すことができ、一見 Positionパラメーターを使って xlFirst を指定すれば、左端のWorksheetを表示させておくことができると思ったのですが、そう上手くはいきませんでした。
ActiveWindow.ScrollWorkbookTabs Sheets:=ThisWorkbook.Worksheets.Count * (-1)
Positionパラメーターの指定では、Sheetの表示位置が変わらなかったのです。原因は分かりませんが、Sheets パラメーターの方であればうまく行きました。
現在選択しているSheetから左の方が見える様にスクロールするためにはマイナスの値とSheetいくつ分左に進むかをマイナスの数で指定する必要があります。
ただ、左に進めるシート数よりも多い数を指定してもエラーとならず、大きな値を指定する分には一番左まで戻ることが確認できたので、単純にThisWorkbook.Worksheets.Countにマイナス1を書けることで、どのシートを選択していようとも、一番左のシートを表示できる様になりました。