GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  ブック、ウィンドウの操作をマスターしよう!2
 
■ ブック、ウィンドウの操作をマスターしよう!2

前回に引き続き、Winodwオブジェクトの操作に関する解説を行います。開かれているウィンドウに対して操作を行うには、Windowオブジェクトを利用します。この場合、1つのブックで複数のウィンドウを開き、操作することもできます。

ウィンドウを操作する

■ウィンドウのコピーを開く

ウィンドウのコピーを開くにはNewWindowメソッドを使用します。[ウィンドウ]メニューの[新しいウィンドウを開く]と同じ処理を行うことができます。

[書式]
オブジェクト.NewWindow

オブジェクトには、WindowオブジェクトまたはWorkbookオブジェクトを指定します。開かれていないWindowオブジェクトまたはWorkbookオブジェクトを指定するとエラーが発生するので注意してください。

(例)
Windows("Book1.xls").NewWindow
この例では、「Book1.xls」ウィンドウのコピーを、新しいウィンドウで開きます。

※ ウィンドウのコピーを開くことで、元のウィンドウと並べて表示し、同じブック内の「Sheet1」シートと「Sheet2」シートを、同時に表示して比較したりすることができます。

■ウィンドウを整列する

ウィンドウを整列させるには、Windows.Arrangeメソッドを使用します。[ウィンドウ]メニューの[整列]と同じ処理を行うことができます。

[書式]
Windows.Arrange スタイル, アクティブ, 横同期, 縦同期

スタイルには、整列方法をXlArrangeStyleクラスの定数で指定します。定数の一覧は次の通りです。
定数 内容
xlArrangeStyleTiled (既定値) 並べて表示される
xlArrangeStyleCascade 重ねて表示される
xlArrangeStyleHorizontal 上下に並べて表示される
xlArrangeStyleVertical 左右に並べて表示される

アクティブには、TrueまたはFalseを指定します。Trueを指定するとアクティブウィンドウのみを、Falseを指定するとすべてのウィンドウを整列します。省略するとFalseが適用されます。

横同期には、TrueまたはFalseを指定します。Trueを指定すると横方向のスクロールを同期させます。この場合、引数アクティブにTrueが指定されている必要があります。省略するとFalseが適用されます。

縦同期には、TrueまたはFalseを指定します。Trueを指定すると縦方向のスクロールを同期させます。この場合、引数アクティブにTrueが指定されている必要があります。省略するとFalseが適用されます。

※ 最小化しているウィンドウは整列の対象外になります。

(例)
Windows.Arrange xlArrangeStyleCascade

この例では、現在開いている複数のウィンドウを重ねて表示させます。

(例)
Sub Test()
  ActiveWindow.NewWindow
  Windows.Arrange xlArrangeStyleVertical, True, , True
End Sub

この例では、アクティブなウィンドウのコピーを開いたあと、左右に整列させ、縦方向にスクロールを同期させます。

■ウィンドウを最大化/最小化表示する

ウィンドウを最大化/最小化表示させるには、WindowStateプロパティを使用します。

[書式]
オブジェクト.WindowState
オブジェクト.WindowState = 設定値

オブジェクトには、WindowオブジェクトまたはApplicationオブジェクトを指定します。Windowオブジェクトを指定した場合はウィンドウの状態を、Applicationオブジェクトを指定した場合はExcelウィンドウの状態を、取得/設定します。

設定値には、XlWindowState クラスの定数で指定します。定数の一覧は次の通りです。
定数 内容
xlMaximized 最大化表示
xlNormal 通常表示
xlMinimized 最小化表示

(例)
Sub Test()
  ActiveWindow.WindowState = xlNormal
  Application.WindowState = xlMaximized
End Sub

この例では、アクティブウィンドウを通常表示にしたあと、Excelウィンドウを最大化表示にします。

■ウィンドウのサイズを取得・設定する

ウィンドウの幅を取得・設定するにはWidthプロパティを、高さを取得・設定するにはHeightプロパティを使用します。

[書式]
オブジェクト.Width
オブジェクト.Width = 設定値
オブジェクト.Height
オブジェクト.Height = 設定値

オブジェクトには、WindowオブジェクトまたはApplicationオブジェクトを指定します。Windowオブジェクトを指定した場合はウィンドウの幅/高さを、Applicationオブジェクトを指定した場合はExcelウィンドウの幅/高さを、それぞれポイント単位で取得/設定します。

設定値には、ウィンドウの幅/高さに設定したい数値をポイント単位で指定します。

※ Widthプロパティ、Heightプロパティを使用して幅/高さに設定する場合、対象となるウィンドウを通常表示しておく必要があります。

(例)
Sub Test()
  With ActiveWindow
    .WindowState = xlNormal
    .Height = 300
    .Width = 300
  End With
End Sub

この例では、アクティブウィンドウを通常表示にしたあと、高さと幅をそれぞれ300ポイントに変更します。

■ウィンドウの表示位置を取得・設定する

ウィンドウの表示位置を取得・設定するにはTopプロパティとLeftプロパティを使用します。

[書式]
オブジェクト.Top
オブジェクト.Top = 設定値
オブジェクト.Left
オブジェクト.Left = 設定値

オブジェクトには、Windowオブジェクトを指定します。

設定値には、ウィンドウの表示位置に設定したい数値をポイント単位で指定します。Topプロパティはウィンドウ領域の上端からウィンドウまでの距離を、Leftプロパティはウィンドウ領域の左端からウィンドウまでの距離を、それぞれ取得/設定します。

※ Topプロパティ、Leftプロパティを使用して幅/高さに設定する場合、対象となるウィンドウを通常表示しておく必要があります。

(例)
Sub Test()
  With ActiveWindow
     .WindowState = xlNormal
    .Top = 100
    .Left = 100
  End With
End Sub

この例では、アクティブウィンドウを通常表示にしたあと、表示位置を上端・左端からそれぞれ100ポイントに変更します。

※ さらに詳細なウィンドウ座標の取得・設定に関しては「スクリーン座標を取得しよう!」の解説を参照してください。

■ウィンドウのサイズを変更不可にする

ウィンドウのサイズを変更できないようにするには、EnableResizeプロパティを使用します。

[書式]
オブジェクト.EnableResize
オブジェクト.EnableResize = 設定値

オブジェクトには、Windowオブジェクトを指定します。
設定値には、TrueまたはFalseを指定します。Trueを指定するとウィンドウのサイズが変更可能に、Falseを指定すると変更不可に設定されます。省略するとTrueが適用されます。

※ EnableResizeプロパティを使用する場合、対象となるウィンドウを通常表示しておく必要があります。

(例)
Sub Test()
  ActiveWindow.EnableResize = Not ActiveWindow.EnableResize
End Sub

この例では、コードを実行するたびに、アクティブウィンドウのサイズ変更の可/不可が切り替わります。

■ウィンドウの最大サイズを取得する

ウィンドウ領域で横方向に使用可能な領域のサイズを取得するにはApplication.UsableWidthプロパティを、縦方向に使用可能な領域のサイズを取得するにはApplication.UsableHeightプロパティを使用します。

[書式]
Application.UsableWidth
Application.UsableHeight


※ このプロパティは値の取得のみ可能で、設定をすることはできません。

(例)
Sub Test()
  With ActiveWindow
     .WindowState = xlNormal
    .Top = 0
    .Left = 0
    .Height = Application.UsableHeight
    .Width = Application.UsableWidth
  End With
End Sub

この例では、アクティブウィンドウを通常表示にしたあと、ウィンドウの位置を左上端に移動し、幅と高さをウィンドウ領域いっぱいに変更します。最大表示との違いは、あくまでウィンドウが通常表示の状態でウィンドウサイズを最大にしている部分です。

■ウィンドウの上端と左端を設定する

ウィンドウの上端の行を設定するにはScrollRowプロパティを、左端の列を設定するにはScrollColumnプロパティを使用します。

[書式]
オブジェクト.ScrollRow
オブジェクト.ScrollRow = 設定値
オブジェクト.ScrollColumn
オブジェクト.ScrollColumn = 設定値


オブジェクトには、Windowオブジェクトを指定します。
設定値には、上端/左端に設定する行/列の番号を数値で指定します。

(例)
Sub Test()
  With ActiveWindow
     .ScrollColumn = 5
     .ScrollRow = 10
  End With
End Sub

この例では、アクティブウィンドウの左上端のセルを、「E10」セルに変更します。

■ウィンドウの表示倍率を変更する

ウィンドウの表示倍率を変更するには、Zoomプロパティを使用します。

[書式]
オブジェクト.Zoom
オブジェクト.Zoom = 設定値

オブジェクトには、Windowオブジェクトを指定します。
設定値には、表示倍率をパーセントを表す数値で設定します。またTrueを指定すると現在の選択範囲に適した表示倍率に、Falseを指定すると100パーセントの表示倍率に、それぞれ自動的に設定されます。

※ 表示サイズが変更されるのはアクティブシートのみです。

(例)
ActiveWindow.Zoom = 200

この例では、アクティブウィンドウの表示倍率を「200%」に変更します。



以上、Excel上で、ブック、ウィンドウを操作する方法について解説しました。Excel上で複数のブックを開いて操作を行う場合、これらのテクニックが必須になります。また、機能に応じてマクロブックを分けることで、さらに保守のしやすい、システムを設計することが可能です。

※ 他のブックのマクロを呼び出すには、「スコープ(適用範囲)を意識したプログラミング」の解説を参照してください。

ぜひ、今回のテクニックをあなたのシステム開発に応用してください。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,