シート名に依存せずシート操作を行うための設定方法・使い方とは?




こんにちは、ExcelVBAマスターのシロ(@siro3460)です。

皆さんは、ExcelVBAでシートを指定して処理を書くとき、どのように書いていますか?

多くの人が、Worksheets(“シート名”)を指定して、シート操作をしているのではないでしょうか?

もちろんこの方法でも良いのですが、シート名が変わった場合にコードを書き換える必要がありますよね。

そこで今回は、シート名に依存せずシート操作を行うための設定方法・使い方について解説します。

シート名に依存せずシート操作をする方法とは

Worksheets(“シート名”)で指定せずに処理を書くためには、最初に設定が必要です。

VBAには、シートごとに処理を書くためのエリアがあります。

「Sheet1、Sheet2、Sheet3」のようなシート名 + 「ThisWorkbook」(ブック全体の処理)が表示されているエリアです。

シートにはSheet1(Sheet1)のようにオブジェクト名(シート名)が表示されています。

シートのオブジェクト名がWorksheets(“シート名”)と同じ使い方をすることができます。

そのため、オブジェクト名をわかりやすい名前に変更して使うのがおすすめです。

※「ThisWorkbook」はブック全体の処理を書く場所なので、今回は無視して下さい。

シートにオブジェクト名を変更する方法とは

次に、オブジェクト名を変更するための手順について説明します。

1. シート名を選択する

2. プロパティウィンドウの上にあるオブジェクト名を変更する
※今回は、「wsRegist」に変更しました。

設定後は次のようにVBAで処理を書くことができます。

sub Test()

  'オブジェクト名を指定してセルを書き込む
 wsRegist.Range("A1").Value = "オブジェクト名を指定したセル書き込み"

End Sub

補足:その他のおすすめ方法とは

今回はシートをオブジェクト名で指定するための設定方法をご紹介しましたが、変数名で使ったほうがわかりやすいケースもありますよね。

Siro
変数が慣れているし、いきなりシートのオブジェクト名にするのはちょっと・・・

という方もいると思います。

そんな時は「グローバル変数で定数として設定する」のがおすすめです!

【ExcelVBA】覚えておくと超便利なグローバル変数の使い方とは?

2018.06.18

まとめ

今回は、シート名に依存せずシート操作を行うための設定方法・使い方について解説しました。

簡単に設定することができるので、ぜひ使ってみてくださいね!

The following two tabs change content below.

Siro

ネコ好きフリーランスエンジニア。
開発、技術、働き方、ツールなどについて発信しています。
楽しく、開発しようぜ!