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

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

Excelでは、複数のブックを1つのExcelアプリケーション上で開き、操作することができます。Excel VBAから、対象となるブックを参照し、操作するにはWorkbookオブジェクトを使います。また、開かれているウィンドウに対して操作を行うには、Windowオブジェクトを利用します。この場合、1つのブックで複数のウィンドウを開き、操作することもできます。

ブックを操作する

■ブックを参照する

開いているブックを参照するには、Workbooksプロパティを使用します。引数で参照するブック名を表す文字列またはインデックス番号を指定します。

[書式]
オブジェクト.Workbooks(ブック)

オブジェクトには、Applicationオブジェクトを指定します。オブジェクトの記述は省略することができます。

ブックには、ブック名を表す文字列、またはインデックス番号を指定します。インデックス番号には、ブックを開いた順番に「1」から番号が振られます。引数を省略すると、開いているすべてのブックを参照します。

(例)
Debug.Print Workbooks(1).Name
 
この例では、現在開いている複数のブックの中で、1番最初に開いたブックの名前をイミディエイトウィンドウに出力します。

■アクティブブックを参照する

現在アクティブなブックを参照するには、ActiveWorkbookプロパティを使用します。また、現在実行しているVBAのコードが記述されたブックを参照するには、ThisWorkbookプロパティを使用します。

[書式]
オブジェクト.ActiveWorkbook
オブジェクト.ThisWorkbook

オブジェクトには、Applicationオブジェクトを指定します。オブジェクトの記述は省略することができます。

(例)
Sub Test()
  Debug.Print ActiveWorkbook.Name
  Debug.Print ThisWorkbook.Name
End Sub

この例では、「Book1」と「Book2」の2つのブックが開かれているとします。「Book1」がアクティブになっていて、「Book2」に上のコードが書かれているとき、イミディエイトウィンドウには、
Book1
Book2
が出力されます。

※ ブックが新規作成され、まだ保存されていないとき、Nameプロパティは「Book1」と拡張子のないブック名を返します。名前を付けて保存すると「Book1.xls」と拡張子の付いた名前を返します。

※ ThisWorkbookプロパティは、アドインブックなどでアドインの内部からアドインブック自体を参照するときに便利です。通常アドインは別のブックから呼び出されるため、ActiveWorkbookプロパティではアドインブック自体を参照することができません。

■ブックをアクティブにする

指定したブックをアクティブにするには、Activateメソッドを使います。1つのブックを複数のウィンドウで表示している場合、最初に表示したウィンドウがアクティブになります。

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

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

(注意)WorkbookオブジェクトにはSelectメソッドがありませんので注意してください。

(例)
Workbooks("Book1.xls").Activate

この例では、現在開いている複数のブックの中で、「Book1」ブックをアクティブにします。

※ Windowsの設定で拡張子を表示する設定にしている場合、拡張子を含めてブックを指定します。拡張子を表示しない設定にしている場合は、拡張子を含めても含めなくてもブックを指定することができます。ただし、新規作成してまだ保存していないブックの場合、拡張子を含めてブックを指定することはできません。

ウィンドウを操作する

■ウィンドウを参照する

操作したいウィンドウを参照するには、Windowsプロパティを使用します。引数で参照するウィンドウ名を表す文字列またはインデックス番号を指定します。

[書式]
オブジェクト.Windows(ウィンドウ)

オブジェクトには、ApplicationオブジェクトまたはWorkbookオブジェクトを指定します。Applicationオブジェクトの場合、オブジェクトの記述は省略することができますが、Workbookオブジェクトの場合は省略できません。

ウィンドウには、ウィンドウ名を表す文字列、またはインデックス番号を指定します。引数を省略すると、開いているすべてのウィンドウを参照します。

※ Windowオブジェクトのインデックス番号は、アクティブウィンドウのインデックス番号が常に「1」になります。したがって、アクティブウィンドウが変更されるたび、Windowオブジェクトのインデックス番号は変わります。

※ ウィンドウ名とは、各ウィンドウのタイトルバーに表示されているウィンドウの名前を指します。ウィンドウをタイル表示などにすることで確認することができます。また[ウィンドウ]メニューのドロップダウンリストの中にも、ウィンドウ名が表示されます。

(例)
Windows("Book1.xls:2").Close

この例では、現在開いている複数のウィンドウの中で、「Book1.xls:2」という名前のウィンドウを閉じます。

※ WorkbookオブジェクトとWindowオブジェクトの違いは、Workbookオブジェクトでは開いているブックを、Windowオブジェクトでは開いているウィンドウを、それぞれオブジェクトとして参照します。例えば図のように、ブックとウィンドウを開いている場合、

このとき開いているブックは「Book1.xls」、「Book2.xls」の2つのブックになります。また、開いてるウィンドウは「Book1.xls」、「Book2.xls:1」、「Book2.xls:2」の3つのウィンドウになります。

■ウィンドウをアクティブにする

指定したウィンドウをアクティブにするには、Activateメソッドを使います。

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

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

(注意)WindowオブジェクトにはSelectメソッドがありませんので注意してください。

(例)
Windows("Book1.xls:1").Activate

この例では、現在開いている複数のウィンドウの中で、「Book1.xls:1」という名前のウィンドウをアクティブにします。

■ウィンドウの名前を取得・設定する

ウィンドウの名前を取得・設定するには、Captionプロパティを使用します。ウィンドウ名には、既定値でブック名が設定されています。ウィンドウ名を使用してWindowオブジェクトを参照することができます。

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

オブジェクトには、Windowオブジェクトを指定します。
設定値には、ウィンドウ名になる文字列を指定します。

※ ウィンドウ名を変更しても、ブック名は変更されません。ウィンドウ名を変更したブックを保存しても、ウィンドウ名は保存されません。変更したウィンドウ名はWindowオブジェクトを指定するための一時的な名前として使用されます。

(例)
Windows("Book1.xls").Caption = "test"

この例では、「Book1.xls」というウィンドウ名を、「test」に変更します。変更後はウィンドウ名「test」を使用して、このウィンドウを参照できますが、「Book1.xls」を保存しても、「test」というウィンドウ名は保存されません。



次回も引き続き、ウィンドウの操作に関する解説を行います。

>> 次の話にすすむ


サイト内検索ができます

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,