ExcelマクロVBA入門
第37回.ブック・シートの指定

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2019-07-07

第37回.ブック・シートの指定


ここまでのマクロVBA入門では、アクティブブックのアクティブシートだけを扱ってきました。


アクティブブックのアクティブシートとは、一番手前に表示されているブックの選択しているシートで、
通常、手作業で操作しているシートの事になります。
手作業では、アクティブブックのアクティブシートしか扱えませんが、
(作業グループで複数のシートに同時に操作するのは別の話として)
アクティブブックのアクテイブシートしか扱えないのでは、とても不便です。

マクロVBAでは、
アクティブブック以外のブックや、アクテイブシート以外のシーも扱う事ができます。

それには、次のようにVBAコードで指定します。
Workbooks("ブック名").Worksheets("シート名").Range("セル番地")
このように指定することで、開かれているブックなら、どのブックのどのシートでも扱う事が出来ます。


また、ブックはアクティブブック限定なら、
Worksheets("シート名").Range("セル番地")
これで指定できます。
つまり、今までの、RangeやCellsは、
ActiveWorkbook.ActiveSheet.Range
この、
ActiveWorkbook.ActiveSheet.
この部分を省略していたことになります。

マクロVBAでのブック・シート指定の具体例

具体的なマクロVBAコードの書き方です。

ブック:Book1.xls
シート:Sheet1
セル:A1

このA1セルに"文字"を入れる場合、

Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1") = "文字"

ブック:アクティブブック
シート:Sheet1
セル:A1~B10


ここに、格子線を引く場合、

Worksheets("Sheet1").Range("A1:B10").Borders.LineStyle = xlContinuous

マクロVBAでのブック・シート指定の必要性

マクロVBAでは、
WorkbookやWorksheetをSelectしたり、Activateしたりせずに、
このように、ブック・シートを指定して、操作するようにします。
ただし、
アクティブブックのアクティブシートでなければ出来ない事もあります。
例えば、RangeのSelectやActivate等は、アクティブブックのアクティブシートのみで有効です。
しかし、
ほとんどの(通常必要とされる)処理は、ブック.・シートを指定することで操作可能です。

ブックが1つしか開いてない場合や、アクティブブックのみ操作する場合は、
ブックの指定は省略して良いでしょう。
しかし、
シートの指定は、基本的には省略せずに指定しましょう。

VBAでは、アクティブシートのみしか扱わないは事は少ないですし、
VBAの実行途中で、シートを切り替えてしまう事も多々ありますので、
それらの対応として、操作シートがアクティブになっていない状態でも動作するするように、
シートの指定は省略せずに指定して下さい。

ただし、このブログ内の説明及びサンプルコードでは、
VBAコードの読みやすさを考慮して(WEBページの閲覧では文字数が長いと読みづらいので)、
VBAのブック・シート指定は適宜省略して記載しています。



同じテーマ「マクロVBA入門」の記事

第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4
第37回.ブック・シートの指定
第38回.セルに計算式を設定(Formula)
第39回.セルのクリア(Clear,ClearContents)
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
第41回.セルのコピー&値の貼り付け(PasteSpecial)
第42回.セルをコピーするとは
第43回.総合練習問題5
第44回.VBA関数について


新着記事NEW ・・・新着記事一覧を見る

VBAクラスのAttributeについて(既定メンバーとFor…Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)
VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(10月12日)
VBAでエラー行位置(行番号)を取得できるErl関数|VBA技術解説(10月11日)
手動計算時の注意点と再計算方法|ExcelマクロVBA技術解説(10月9日)
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(10月7日)
VBEの使い方:デバッグ|ExcelマクロVBA入門(10月6日)
VBAにおける配列やコレクションの起点について|VBA技術解説(10月5日)
VBEの使い方:オブジェクト ブラウザー|VBA入門(10月5日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • ブック・シートの指定

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ