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

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  ワークシートの参照をマスターしよう!
 
■ ワークシートの参照をマスターしよう!

前回までは、ワークシート上のセルを操作する様々な手法について解説しました。今回は、ワークシートそのものを操作する、様々な手法について解説していきたいと思います。ワークシートを操作する方法を学ぶことで、VBAから自由にワークシートを追加したり、名前を変更したり、保護をかけたりすることができるようになります。

ワークシートを参照する
 
ワークシートを参照することで、処理対象となるシートを操作することが可能になります。

■Worksheetsプロパティを使用してワークシートを参照する
Worksheetsプロパティを使用すると、シート名やインデックス番号を使って単一のワークシートを参照することができます。

[書式]
オブジェクト.Worksheets(シート名)

オブジェクトには、ApplicationオブジェクトまたはWorkbookオブジェクトを指定します。省略すると、作業中のブックが対象となります。

シート名には、ワークシートの名前またはインデックス番号を指定します。インデックス番号は、シート見出しの左から順に「1,2,3…」の順に自動的に割り当てられます。インデックス番号は、シートの追加や削除、移動によって番号が変わります。その場合も、常に左からの順番になります。

(例)
Worksheets("Sheet1").Select
Debug.Print Worksheets(3).Name
 
上の例では、アクティブブックの「Sheet1」シートを選択します。下の例では、シート見出しの左から3番目のワークシートの名前をイミディエイトウィンドウに出力します。シート見出しが「Sheet1、Sheet2、Sheet3」となっている場合、「Sheet3」の文字列を出力します。

■Activesheetプロパティを使用してワークシートを参照する
Activesheetプロパティを使用すると、現在アクティブな(操作の対象となっている)ワークシートを参照することができます。

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

オブジェクトには、ApplicationオブジェクトまたはWindowオブジェクトまたはWorkbookオブジェクトを指定します。省略すると、作業中のブックが対象となります。

■SelectedSheetsプロパティを使用してワークシートを参照する
SelectedSheetsプロパティを使用すると、現在選択されているすべてのワークシートを参照することができます。Activesheetプロパティとの違いは、複数のシートを選択した状態で、Activesheetプロパティがアクティブなシートのみを参照するのに対し、SelectedSheetsプロパティは選択したすべてのシートを参照します。

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

オブジェクトには、Windowオブジェクトを指定します。Workbookオブジェクトを指定することはできません。

(例)
Debug.Print ActiveSheet.Name
Debug.Print ActiveWindow.SelectedSheets.Count

シート見出しが次のような状態になっているとき、


 
上の例ではアクティブシートの名前である「Sheet1」の文字列を、下の例では選択されているシートの数「3」を、それぞれイミディエイトウィンドウに出力します。

■Previousプロパティ、Nextプロパティを使用してワークシートを参照する
Previousプロパティを使用すると指定したシートの左側のシートを、Nextプロパティを使用すると右側を、それぞれ参照することができます。

[書式]
オブジェクト.Previous
オブジェクト.Next

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

(注意)シート見出しの一番左にあるシートでPreviousプロパティを使って左側のシートを参照したり、一番右にあるシートでNextプロパティを使って右側のシートを参照すると、参照するシートが存在しないためエラーが発生します。

(例)
Debug.Print ActiveSheet.Previous.Name
Debug.Print ActiveSheet.Next.Name

シート見出しが「Sheet1、Sheet2、Sheet3」となっていて、「Sheet2」シートがアクティブになっている場合、上の例では「Sheet1」の文字列を、下の例では「Sheet3」の文字列を、それぞれイミディエイトウィンドウに出力します。

 
ワークシートを操作する

VBAを使用することで、参照先のワークシートに対して様々な操作を行うことが可能です。

■Selectメソッド、Activateメソッド
Selectメソッドは1つまたは複数のワークシートを選択します。Activateメソッドはワークシートをアクティブ(操作の対象)にします。

[書式]
オブジェクト.Select(置換)

オブジェクトには、WorksheetsコレクションまたはWorksheetオブジェクトを指定します。
置換えには、TrueまたはFalseを指定します。Falseを指定すると現在選択しているシートの選択を解除せずに、指定したシートを選択します。その場合、複数のワークシートが選択されます。省略するとTrueが指定されます。

※ この他にもArray関数を使用すると、複数のワークシートを一度に選択することができます。例えば、「Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Select」と記述すると、「Sheet1〜Sheet3」シートを一度に選択することができます。

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

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

※ 複数のシートが選択されている状態で、選択されているシートのいずれかに対してActivateメソッドを実行すると、選択を解除せずに指定したシートをアクティブにします。

(例)
Sub Test()
  Sheets("Sheet1").Select
  Sheets("Sheet3").Select False
  Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
  Sheets("Sheet2").Activate
End Sub

シート見出しが「Sheet1、Sheet2、Sheet3、Sheet4」となっている場合、このプロシージャを実行すると、最初に「Sheet1」シートを選択します。次に、「Sheet1」シートと「Sheet3」シートの2つを選択します。さらに、「Sheet1〜Sheet3」の3つのシートを選択します。最後に、「Sheet1〜Sheet3」シートを選択した状態で「Sheet2」シートをアクティブにします。

※ すべてのシートが選択された状態でアクティブシート以外のシートをアクティブにすると、複数シートの選択が解除されます。
上の例でシート見出しが「Sheet1、Sheet2、Sheet3」の場合、「Sheets("Sheet2").Activate」で「Sheet2」シートはアクティブになりますが、「Sheet1〜Sheet3」シートの選択状態は解除されます。


以上、ワークシートを参照する方法とワークシートの操作の一部について解説しました。

次回も引き続き、VBAからワークシートを操作する様々な手法について解説したいと思います。

>> 次の話にすすむ


サイト内検索ができます

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,