複数のシートを同時に指定するには、VBAのArray関数を使用する。Array関数を使うと、複数のシートをまとめて格納できる。例として「3年生」と「6年生」のシートを同時に参照して、「3年生」のシートをActivateイベント(「ワークシートのイベント処理」で後述)でアクティブにしてみよう。リスト3のようにマクロを記述する。実行すると図7のように表示される。「3年生」と「6年生」のワークシートが選択状態になり、「3年生」のシートがアクティブになった※全てのワークシートを選択する場合は、「Worksheets.Select」とだけ記述するといい。次に、シートの名前をマクロから変更してみよう。「6年生」を選択状態にして[○に+]のアイコンで新規にシートを追加すると、「6年生」の次に「Sheet8」が追加される。この「Sheet8」の名前をマクロから変更する。「メニュー」のシートに図8のように「シート名の変更」ボタンを配置しておく。指定したシート名の名前を変更するには、Nameプロパティを使用する。「シート名の変更」ボタンに関連付けるマクロはリスト4のようになる。"シート名を入力してください。「シート名の変更」ボタンをクリックすると、まずInputBox関数で入力ダイアログボックスが表示され、シート名を入力するよう促される(3行目)。シート名を入力せずに[OK]ボタンをクリックすると(4行目)、警告メッセージが表示される(5行目)。シート名を入力して[OK]ボタンをクリックすると(7行目)、「Sheet8」のシート名が指定したシート名に変更される(8行目)。名前を変更後、そのシートがアクティブになる(9行目)。実行すると、図9のように表示される。分かりやすくするために、手動で入力したもので、VBAで書いたものではない。名前が変わり、シートがアクティブになった。これは、シート名もマクロによって変更できるという一例にすぎない。「別にマクロで変更しなくても、直接変更すればいいではないか」と思われるかもしれない。今後複雑なマクロなどを書けるようになった際には、マクロでシート名を変更する処理の必要性も出てくると思う。いった意味でも、マクロで処理できることは、マクロで処理できるよう学んでおくに越したことはない。次に、シート名の背景色を変更する処理を見ていこう。ここで疑問を持たれる読者もいるかもしれない。「シート名の背景色を変更して、何のメリットがあるのか」と。これにはちゃんとしたメリットが存在する。入力が必須の項目があったと仮定しよう。シートの中でその必須の項目が入力されていなければ、シート名の背景色を変更して、「このシートには必須項目が入力されていませんよ!」という目印として使用できるのだ。マクロは、非常に奥深く、ちゃんとそれなりの理由があってマクロ化するようにされているのだ(きっと......)。シートの背景色を変更するには、ColorIndexやColorプロパティを使用する。ColorIndexの使用方法については、既に連載第5回の「セルのフォント書式設定」で解説済みであるから、今回はColorプロパティを使った方法を紹介する。Colorプロパティの書式シートTabオブジェクト.Color={RGBカラー}{RGBカラー}に指定する色は表1のようになる。シートの背景色を「赤」に変更するマクロはリスト5だ。シートの背景色を「赤」に変更する解説はするまでもないだろう、RGBには表1の「赤」を指定している。実行すると図10のようになる。シートの背景色は「真っ赤」に変わる。シートのタブが「赤」になっている「赤」に変わったシートのタブを元に戻すにはRGBカラーに「白」を指定すれば元に戻る。次ページでは、シートの移動、コピー、追加、削除について解説しよう。Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめピボットテーブルとは何か──「そもそも、何をする機能か」を理解するExcelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方——テーブル、レコード、フィールド、主キーとはAccessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。