Excel VBAの使い方/マクロ・VBA

エクセルでシート作成するマクロ(For文の活用)(3ページ目)

マクロを読み解いて編集する演習シリーズ。これまで作成してきたVBAプログラムをひとまず完成させます!そして、今回もVBAの基本構文の紹介しながら、VBAならではの考え方を学習します。ぜひ、ご覧ください!

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド


シート名を設定するマクロの作成


繰り返す処理のもとになるプロシージャをマクロ記録で作成しましょう。マクロ記録用に新しいブックを開いて、ワークシート「Sheet1」のシート名を「東京支店」に設定する操作をマクロで記録すると、次のようにNameプロパティが「オブジェクト.プロパティ = 値」の構文で記述されます。


現在作成しているプロシージャに切り替えて、このステートメントを、繰り返し実行させたい「シート名を設定する処理」のところにコピーしておきます。この部分を、繰り返し処理のためにどう書き換えるのか。これが今回の大きなポイントです。
※マクロ記録用に開いたブックは、作業が終わったら保存せずに閉じておきましょう。


複数のブックを扱うマクロの重要ポイント

シート名の設定する処理を書き換える前に、整理しておくべき重要なポイントがあります。

今回のように、マクロで扱うブックが複数の場合は、
■操作するのは、どちら側のブック上の要素なのか
■操作する時点で、どちら側のブックがアクティブなのか
ということを把握しておく必要があります。

今回の繰り返す処理では、ワークシート数が入力されているセルA5が「マクロを作成しているブック「Bool1.xls」上の要素、ワークシート「Sheet1」が「新しく作成されたブック」上の要素ということになります。また、ワークシートに名前を設定する時点では、新しく作成するブックがアクティブになっています。


そして、プロシージャ内で操作する要素に対して、それぞれ「どちらのブックの要素なのか」を記述します。このとき、シートについては「ブック.シート」、セルについては「ブック.シート.セル」といったように階層をたどって記述する必要があります。アクティブなブックは「ActiveBook」、アクティブではないブックは、「Workbooks("ブック名")」と記述できるので、今回の場合は、下図のように追記します。


なお、複数のブックを扱う場合、変数を使った作成方法もあり、実は、作成中のマクロの一部は、その考え方で作成しています。すべて、変数を使ってプログラムを作成するには、別なテクニックが必要になるので、次の機会に紹介します。

>それでは、シート名を設定する部分を書き換えていきましょう!
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます