アクティブシート以外のWindowを設定できるWorksheetView
VBAの中でも非常に分かりづらいオブジェクトにWindowオブジェクトがあります。
Windowオブジェクトは、ブックやシートの見方を変えることのできるものです。
つまり、WindowオブジェクトはWindowsコレクションのメンバーです。

枠線や行列見出しは、どのVBAサンプルを見ても大抵はActiveWindowに対して設定しているはずです。
これは、ActiveWindowのActiveSheetに対して設定していることになります。
では、ActiveSheet以外のシートにこれらを設定する方法は無いのでしょうか。
ここでは、シートをアクティブにすることなく表示(Window)に関する設定を行う方法と、設定可能なプロパティを紹介します。
Windowオブジェクトのメソッドとプロパティ
Windowオブジェクトのメソッド
名前 | 説明 |
Activate | ウィンドウを Z オーダーの前面に移動します。 |
ActivateNext | 指定されたウィンドウをアクティブにし、次にそのウィンドウを Z オーダーで一番後ろに移動します。 |
ActivatePrevious | 指定されたウィンドウをアクティブにし、次に Z オーダーで一番後ろにあるウィンドウをアクティブにします。 |
Close | オブジェクトを閉じます。 |
LargeScroll | 指定されたページ数分だけ、ウィンドウの文字列をスクロールします。 |
NewWindow | 新しいウィンドウ、または指定されたウィンドウのコピーを作成します。 |
PointsToScreenPixelsX | 横方向の長さの値をポイント (ドキュメント座標) からピクセル (画面座標) に変換します。変換された値を長整数型 (Long) の値で返します。 |
PointsToScreenPixelsY | 縦方向の長さの値をポイント (ドキュメント座標) からピクセル (画面座標) に変換します。変換した値を長整数型 (Long) の値で返します。 |
PrintOut | オブジェクトを印刷します。 |
PrintPreview | オブジェクトの印刷プレビュー (印刷時のイメージ) を表示します。 |
RangeFromPoint | 画面座標で指定された x と y の位置にある Shape オブジェクト、または Range オブジェクトを返します。指定の座標に図形が存在しない場合は、Nothing を返します。 |
ScrollIntoView | ドキュメント ウィンドウまたはペインの左上隅、右下隅のどちらかに、指定された四角形領域の内容が表示されるようにドキュメント ウィンドウをスクロールします。表示位置は引数 Start の値で異なります。 |
ScrollWorkbookTabs | ウィンドウ下部のシート見出しをスクロールします。ただし、ブック内のシートはアクティブな状態に保持されます。 |
SmallScroll | 指定された行数分または列数分だけ、ウィンドウの文字列をスクロールします。 |
Windowオブジェクトのプロパティ
名前 | 説明 |
ActiveCell | 最前面に表示されている、アクティブ ウィンドウ (一番手前のウィンドウ) または指定されたウィンドウでのアクティブ セルを表す Range オブジェクトを返します。ウィンドウに表示されているシートがワークシートでないときは、このプロパティは失敗します。値の取得のみ可能です。 |
ActiveChart | アクティブなグラフ シートまたは埋め込みグラフを表す Chart オブジェクトを返します。埋め込みグラフは、アクティブにされている状態だけではなく、選択されただけの状態でもアクティブと見なされます。アクティブなグラフがないときは、Nothing を返します。 |
ActivePane | ウィンドウ内のアクティブなペインを表す Pane オブジェクトを取得します。値の取得のみ可能です。 |
ActiveSheet | 作業中のブック、および指定されたウィンドウまたはブックのアクティブ シート (一番手前のシート) を表すオブジェクトを返します。アクティブ シートが存在しないときは Nothing を返します。 |
ActiveSheetView | 指定されたウィンドウでのアクティブ シートの表示モードを表すオブジェクトを返します。値の取得のみ可能です。 |
Application | 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。値の取得のみ可能です。 |
AutoFilterDateGrouping | True に設定すると、データ グループのオート フィルターが指定されたウィンドウに表示されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
Caption | ドキュメント ウィンドウのタイトル バーに表示される名前を表すバリアント型 (Variant) の値を取得、または設定します。 |
Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
DisplayFormulas | True の場合、ウィンドウは数式を表示します。False の場合、数値が表示されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayGridlines | True の場合、枠線を表示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayHeadings | 行と列の両方の見出しを表示する場合は True に設定し、見出しを表示しない場合は False に設定します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayHorizontalScrollBar | True の場合、水平スクロール バーを表示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayOutline | True の場合、アウトライン記号を表示します。値の取得および設定が可能です。ブール型 (Boolean ) の値を使用します。 |
DisplayRightToLeft | True の場合、指定されたウィンドウの表示が右から左の表示方向になります。False の場合、オブジェクトは左から右に表示されます。値の取得のみ可能です。ブール型 (Boolean) の値を使用します。 |
DisplayRuler | True に設定すると、指定したウィンドウにルーラーが表示されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayVerticalScrollBar | True の場合、垂直スクロール バーを表示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayWhitespace | True に設定すると空白領域が表示されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayWorkbookTabs | True の場合、シート見出しを表示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayZeros | True の場合、ゼロ値を表示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
EnableResize | True の場合、ウィンドウの大きさを変更できます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
FreezePanes | True の場合、分割ウィンドウ枠を固定します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
GridlineColor | 枠線の色を RGB 値で設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
GridlineColorIndex | 枠線の色を、現在のカラー パレットのインデックス値または定数で設定します。値の取得および設定が可能です。XlColorIndex クラスの定数を使用します。 |
Height | ウィンドウの高さをポイント単位で表す倍精度浮動小数点型 (Double) の値を取得、または設定します。 |
Index | 類似するオブジェクトのコレクション内でのオブジェクトのインデックス番号を表す長整数型 (Long) の値を返します。 |
Left | クライアント領域の左端から、ウィンドウの左端までの距離をポイント単位で表す倍精度浮動小数点型 (Double) の値を取得、または設定します。 |
OnWindow | ウィンドウがアクティブにされたときに実行するプロシージャの名前を設定します。値の取得および設定が可能です。文字列型 (String) の値を使用します。 |
Panes | 指定されたウィンドウのすべてのペインを表す Panes コレクションを返します。値の取得のみ可能です。 |
Parent | 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。 |
RangeSelection | 指定されたウィンドウのワークシートで選択されているセル範囲を表す Range オブジェクトを返します。このオブジェクトはワークシートで描画オブジェクトがアクティブになっていたり、選択されていたりしても返されます。値の取得のみ可能です。 |
ScrollColumn | ウィンドウ枠 (ペイン) 内またはウィンドウ内で左端に表示される列の番号を設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
ScrollRow | ウィンドウ枠 (ペイン) 内またはウィンドウ内で上端に表示される行の番号を設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
SelectedSheets | 指定されたウィンドウで選択されているすべてのシートを表す Sheets コレクションを返します。値の取得のみ可能です。 |
Selection | Windows オブジェクトの指定されたウィンドウを返します。 |
SheetViews | 指定されたウィンドウの SheetViews オブジェクトを取得します。値の取得のみ可能です。 |
Split | True の場合、ウィンドウを分割します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
SplitColumn | ウィンドウの左右分割位置を示す列数 (垂直分割線の左側にある列の数) を設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
SplitHorizontal | ウィンドウの左右分割位置をポイント?(ポイント: 印刷する文字のサイズ (高さ) を指定する基本単位。1 ポイントは、約 0.0353 cm (1/72 インチ) です。)単位で設定します。値の取得および設定が可能です。倍精度浮動小数点型 (Double) の値を使用します。 |
SplitRow | ウィンドウの上下分割位置を示す行数 (水平分割線の上側にある行の数) を設定します。値の取得および設定が可能です。長整数型 (Long) の値を使用します。 |
SplitVertical | ウィンドウの上下分割位置をポイント?(ポイント: 印刷する文字のサイズ (高さ) を指定する基本単位。1 ポイントは、約 0.0353 cm (1/72 インチ) です。)単位で設定します。値の取得および設定が可能です。倍精度浮動小数点型 (Double) の値を使用します。 |
TabRatio | ウィンドウのシート見出し領域と水平スクロール バーの幅の比率を設定します。使用できる比率の範囲は 0 ~ 1 で、既定値は 0.6 です。値の取得および設定が可能です。倍精度浮動小数点型 (Double) の値を使用します。 |
Top | ウィンドウの上端から使用可能領域 (メニュー、固定ツールバー、数式バーの下の領域) の上端までの距離を表す倍精度浮動小数点型 (Double) の値を設定します。値の取得および設定が可能です。 |
Type | ウィンドウの種類を表す XlWindowType クラスの定数を取得および設定します。 |
UsableHeight | アプリケーション ウィンドウ領域内で、ウィンドウが使うことのできる範囲の最大限の高さをポイント?(ポイント: 印刷する文字のサイズ (高さ) を指定する基本単位。1 ポイントは、約 0.0353 cm (1/72 インチ) です。)単位で返します。値の取得のみ可能です。倍精度浮動小数点型 (Double) の値を使用します。 |
UsableWidth | アプリケーション ウィンドウ領域内で、ウィンドウが使うことのできる範囲の最大限の幅をポイント?(ポイント: 印刷する文字のサイズ (高さ) を指定する基本単位。1 ポイントは、約 0.0353 cm (1/72 インチ) です。)単位で返します。値の取得のみ可能です。倍精度浮動小数点型 (Double) の値を使用します。 |
View | ウィンドウに表示するビューを設定します。値の取得および設定が可能です。XlWindowView クラスの定数を使用します。 |
Visible | オブジェクトを表示するかどうかを表すブール型 (Boolean) の値を設定します。値の取得および設定が可能です。 |
VisibleRange | ウィンドウ内またはウィンドウ枠 (ペイン) 内に表示されているセルの範囲を表す Range オブジェクトを取得します。一部しか表示されていない列や行も対象になります。値の取得のみ可能です。 |
Width | ウィンドウの幅をポイント単位で表す倍精度浮動小数点型 (Double) の値を取得、または設定します。 |
WindowNumber | ウィンドウ番号を返します。たとえば、BOOK1.XLS:2 の場合、ウィンドウ名の後に続く 2 がウィンドウ番号になります。通常、最初に開かれるウィンドウ番号は 1 です。値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
WindowState | ウィンドウの状態を設定します。値の取得および設定が可能です。XlWindowState クラスの定数を使用します。 |
Zoom | ウィンドウの表示サイズを、パーセント単位 (100 は通常の大きさの表示、200 は 2 倍の大きさの表示、など) で表すバリアント型 (Variant) の値を取得、または設定します。 |
アクティブシート以外の表示(Window)に関する設定
Dim v1 As Window
Set v1 = Windows(1)
Dim v2 As SheetViews
Set v2 = v1.SheetViews
Dim v3 As WorksheetView
Set v3 = v2.Item(1) '1番目のシート
また、シート名でも指定できます。
上記であれば、
v2(1)
v2("シート名")
┗SheetViews
┗WorksheetView ・・・ Itemで指定したシート
SheetViews
読み取り専用です。
SheetViewsのプロパティ
名前 | 説明 |
Application | オブジェクト修飾子を指定せずに使用した場合、Microsoft Excel アプリケーションを表すApplication オブジェクトを返します。 オブジェクト修飾子を指定した場合、指定したオブジェクトを作成した Application オブジェクトを返します。 値の取得のみ可能です。 |
Count | コレクションに含まれるオブジェクトの数を返します。値の取得のみ可能です。 長整数型 (Long) の値を使用します。 |
Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
Item | ブックでのビューを表す SheetView オブジェクト(WorksheetView)を返します。 値の取得のみ可能です。 |
Parent | 指定されたオブジェクトの親オブジェクトを取得します。 値の取得のみ可能です。 |
WorksheetView
WorksheetViewのプロパティ
名前 | 説明 |
Application | オブジェクト修飾子を指定せずに使用した場合、Microsoft Excel アプリケーションを表す Application オブジェクトを返します。 オブジェクト修飾子を指定した場合、指定したオブジェクトを作成した Application オブジェクトを返します。値の取得のみ可能です。 |
Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
DisplayFormulas | 現在のワークシート ビューで数式を表示するか非表示にするかを設定します。 値の取得および設定が可能です。 ブール型 (Boolean ) の値を使用します。 |
DisplayGridlines | True の場合、枠線を表示します。 値の取得および設定が可能です。 ブール型 (Boolean) の値を使用します。 |
DisplayHeadings | 行と列の両方の見出しを表示する場合はTrueに設定し、見出しを表示しない場合はFalseに設定します。 値の取得および設定が可能です。 ブール型 (Boolean) の値を使用します。 |
DisplayOutline | True の場合、アウトライン記号を表示します。 値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
DisplayZeros | True の場合、ゼロ値を表示します。 値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
Parent | 指定されたオブジェクトの親オブジェクトを取得します。 値の取得のみ可能です。 |
Sheet | 指定された WorksheetView オブジェクトのシート名を返します。 値の取得のみ可能です。 |
アクティブシート以外の表示(Window)を設定するVBA

With Windows(1).SheetViews.Item(1)
.DisplayFormulas = False
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayOutline = False
.DisplayZeros = False
End With
Windows(1)は、通常はActiveWindowで良いでしょう。
Windows(1)は、ウインドウが1つならActiveWindowと同じになります。
.Item(1)としているので先頭シートになりますがItemは省略できます。
SheetViews(1)
また、シート名で指定できますので、
先頭シートが"Sheet1"であれば、以下のように書くことが出来ます。
ActiveWindow.SheetViews("Sheet1")
残念ながら、WorksheetViewで設定できるものは、Windowオブジェクトのプロパティのごく一部に限られています。
ですが、シートをアクティブにすることなく設定できるのはとても便利です。
覚えておけば、場合によっては便利に使える場合もあると思います。
全ウィンドウの全シートのWorksheetViewを設定するVBA
Sub sample()
Dim wd As Window
Dim sv As WorksheetView
For Each wd In Application.Windows
For Each sv In wd.SheetViews
With sv
.DisplayFormulas = False
.DisplayGridlines = False
.DisplayHeadings = False
End With
Next
Next
End Sub
同じテーマ「マクロVBA技術解説」の記事
ユーザーに絶対に停止させたくない場合のVBA設定
列幅・行高をDPI取得しピクセルで指定する
VBAでWMIの使い方について
アクティブシート以外のWindowを設定できるWorksheetView
LSetとユーザー定義型のコピー(100桁の足し算)
省略可能なVariant引数の参照不可をラップ関数で利用
ブックのいろいろな開き方(GetObject,参照設定,アドイン)
入力規則への貼り付けを禁止する
Select Caseでの短絡評価(ショートサーキット)の使い方
RangeオブジェクトのFor EachとAreasについて
画像が行列削除についてこない場合の対処
新着記事NEW ・・・新着記事一覧を見る
シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
シート関数のCOUNTIFS,SUMIFS,MAXIFSと同じ処理|Power Query(M言語)入門(2023-02-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門
- ホーム
- マクロVBA応用編
- マクロVBA技術解説
- アクティブシート以外のWindowを設定できるWorksheetView
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。