【Excel VBA】ウィンドウの分割(Split/SplitRow/SplitColumn)

はじめに

今回は、ウィンドウを分割する方法について解説します。
ウィンドウ枠の固定も便利ですが、ウィンドウを分割することで、分割後のそれぞれのウィンドウをスクロールすることも出来て便利です。
是非、最後までお付き合いください。

この記事を読むメリット
  • ウィンドウの分割をする 3つの方法が分かります。
  • ウィンドウの分割を解除する方法が分かります。
  • 分割後のイメージを画像付きで解説します。
  • コピペで使える実践的なサンプルコードを掲載しています。

前提

関連プロパティ

ウィンドウの分割には、以下の3つのプロパティで実施します。

#プロパティ説明
1SplitRow上側のエリアに表示する行数を指定し、ウィンドウを分割する
2SplitColumn左側のエリアに表示する列数を指定し、ウィンドウを分割する
3Splitアクティブセルを起点とし、ウィンドウを分割する
ウィンドウの分割を解除することも可能
ウィンドウの分割 – 関連プロパティ

基本情報

SplitRowプロパティ

上側のエリアに表示する行数を指定し、ウィンドウを分割する場合、WindowオブジェクトのSplitRowプロパティを使用します。

※文章だと分かりづらい為、サンプルコードに実行結果を掲載していますのでご参考にしてください。
(参考:サンプルコード – 行を指定してウィンドウを分割する

構文

構文

Windowオブジェクト.SplitRow = 設定値

設定値

上側のエリアに表示する行数を 数値で指定します。

SplitColumnプロパティ

左側のエリアに表示する行数を指定し、ウィンドウを分割する場合、WindowオブジェクトのSplitColumnプロパティを使用します。

※文章だと分かりづらい為、サンプルコードに実行結果を掲載していますのでご参考にしてください。
(参考:サンプルコード – 列を指定してウィンドウを分割する

構文

構文

Windowオブジェクト.SplitColumn = 設定値

設定値

左側のエリアに表示する列数を 数値で指定します。

Splitプロパティ

WindowオブジェクトのSplitプロパティでは、ウィンドウの分割やウィンドウの分割を解除することが可能です。
(参考:サンプルコード – アクティブセルを起点としてウィンドウを分割する

構文

構文

Windowオブジェクト.Split = 設定値

設定値

設定値によるSplitプロパティの挙動
  • Trueを指定した場合:アクティブセルを起点とし、ウィンドウを分割
  • Falseを指定した場合:ウィンドウの分割を解除

サンプルコード

行を指定してウィンドウを分割する

サンプル
Public Sub splitWindow()

    ' 上側のエリアに表示する行数を 3として分割
    ActiveWindow.SplitRow = 3
End Sub

実行結果

SplitRow - 実行結果イメージ
SplitRow – 実行結果イメージ

※上記キャプチャに使用されているデータは、Excelのテンプレート機能を使用して自動生成されたものです。

列を指定してウィンドウを分割する

サンプル
Public Sub splitWindow()

    ' 左側のエリアに表示する列数を 4として分割
    ActiveWindow.SplitColumn = 4
End Sub

実行結果

SplitColumn - 実行結果イメージ
SplitColumn – 実行結果イメージ

アクティブセルを起点としてウィンドウを分割する

サンプル
Public Sub splitWindow()

    ' E4セルをアクティブ化
    Range("E4").Activate

    ' アクティブセル(E4セル)を起点とし、ウィンドウを分割
    ActiveWindow.Split = True
End Sub

実行結果

Split - 実行結果イメージ
Split – 実行結果イメージ

ウィンドウの分割状態を解除する

サンプル
Public Sub splitWindow()

    ' ウィンドウの分割を解除する
    ActiveWindow.Split = False
End Sub

最後に

今回は、ウィンドウを分割する方法を解説しました。

冒頭でも説明しましたが、ウィンドウ枠の固定と使い分けをしましょう。
個人的には、2つの表がある場合に分割を実施することで互いの表を比較するために使用したりします。

この記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA