PR

 プログラミングの基本をマスターする過程は、英語やドイツ語といった外国語を学ぶ過程と似ているところがあります。単語や慣用句を覚える一方、最低限の基本文法の習得は欠かせません。同様に、エクセルのセルやシートを操作するさまざまな命令を覚えながら、Excel VBAならではの基本的な文法や構文を理解していく必要があります。

 では、前回に引き続き、削除したシートをバックアップ用に保存するマクロの解説をしていきましょう。このマクロには、文法的に重要なポイントが2つ含まれています。1つは、前回取り上げたIf構文で、条件に応じて処理を分岐する基本テクニックです。そしてもう1つのポイントが、今回取り上げる「変数」です。

 変数という言葉自体は、数学などの教科で耳にされたこともあるでしょう。「y=3x」などの数式で、値が変化する「y」や「x」などの要素を変数と定義していました。Excel VBAでも基本的な概念は同じで、数値や文字など、変化する値を一時的に格納する箱のようなものと考えてください。もっとも、プログラムの世界に慣れていないと、なぜそんな一時的な箱が必要になるのかぴんとこない方もいるでしょう。プログラムの中で変数を使う目的はいろいろとあります。わかりやすい例でいえば、「プログラムの内容を簡潔にする」ということでしょうか。今回のマクロでは、まさにこの目的に沿って変数が使われています。具体的なコードを見ながら解説していきましょう。

マクロの先頭部に利用する変数を明記する

 プログラム内で利用する変数は、あらかじめ冒頭で「こういう変数を使います」と明記しておきます。こうした作業をExcel VBAでは「変数を宣言する」と表現します。具体的にはマクロのブロック0のように記述します(マクロ全体のコードは本記事末に掲載してあります)。

  Dim myRtn As Integer
  Dim myFileName As String

 変数の宣言には決まった作法があり、「Dim」というキーワードを用いて、変数名と変数の「型」を宣言しなければなりません。型とは、どういった種類の値を扱うかを示すものです。変数には何種類もの型があるのですが、まずは今回登場した比較的小さな値の整数を扱う「Integer」(インテジャー)型と、文字列を扱う「String」(ストリング)型の2つを覚えてください(図1)。

 変数の型は省略することもできますが、どんな値が入るのかを明らかにするためにも、変数の型はできるだけ指定するようにします。このマクロでは整数用の変数「myRtn」と、文字列用の変数「myFileName」を宣言しています。

12-1.jpg図1 変数はマクロの冒頭で宣言する。変数の型を指定するAs以降は省略することができる