【RangeとCellsでセルの位置を指定する】

 1 新しいマクロをつくる

 2 マクロをコピーして書きかえる

 3 Rangeのセル番地を直接指定

 4 Rangeのセル番地を定数で指定

 5 Rangeのセル番地を変数で指定

 6 Cellsの行番号と列番号を直接指定

 7 Cellsの行番号と列番号を定数で指定

新しいマクロをつくる

パイさん

『ビジュアル ベーシック エディター』をつかえば、Excelに記録したマクロを書きかえることができますが、

 Excelに記録されていない、新しいマクロをつくりだすこともできます。

 

 自由に新しいマクロをつくりだすことができるようになれば、

 思い通りにExcelを操作することができるようになります。

 

 新しいマクロをつくって実行してみましょう。

 

 まず、『ビジュアル ベーシック エディター』を開きましょう。」

Img2_1_0

ソンくん

「『ビジュアル ベーシック エディター』を開きました。」

Img2_1_1

パイさん

「『ビジュアル ベーシック エディター』を開いたら、挿入タブを選んで、標準モジュールをクリックします。」

Img2_1_2

ソンくん

「真っ白な『コードウィンドウ』が現れました。」

パイさん

「通常、新しいマクロをつくるときは、このように新しく『標準モジュール』を追加し、

 その『コードウィンドウ』の中に、プロシージャを記述(コーディング)していくことになります。

 プロシージャを記述してみます。コードウィンドウの1行目にキーボードで『Sub』と打ってみましょう。」

Img2_1_3

ソンくん

「『Sub』と入力しました。」

パイさん

「その『Sub』に続けて、マクロ名を入力します。

 『 』(スペース) を1文字入れて、ここでは『新しいマクロ』と打ってみましょう。」

Img2_1_4

ソンくん

「『新しいマクロ』と入力しました。」

パイさん

「その『新しいマクロ』の右側にカーソルがある状態(縦線が点滅している状態)で、

 Enterキーを打ってみましょう。」

Img2_1_5

ソンくん

「『新しいマクロ』の右側に『()』が現れ、一行あけて、『End Sub』という文字が、自動的に現れました。」

パイさん

「マクロ名の右側の『()』は、引数(ひきすう)と呼ばれるデータを、プロシージャに渡すときに、

 つかわれるものですが、渡すデータがないときは、このように『()』で表示されます。

 また、『Sub』という文字がプロシージャの始まりを『End Sub』という文字がプロシージャの終わりを

 示すことになります。

 2行目に、サンプルコードとして

Img2_1_5_2

 と打ってみましょう。先頭に『 』(スペース) を入れておくと、見やすいコードになりますよ。」

Img2_1_6

ソンくん

Range("A1").Value = "初めてのマクロ"と入力しました。」

パイさん

「『新しいマクロ』を実行してみましょう。」

Img2_1_7

ソンくん

「『新しいマクロ』を実行しました。」

Img2_1_8

ソンくん

「セルのA1に『初めてのマクロ』という文字が表示されました。」

パイさん

「プロシージャの2行目のコードRange("A1").Value = "初めてのマクロ"について説明します。」

Img2_1_9

パイさん

Range』は、特定のセルをセル番地で指定するときに使うオブジェクトです。

 オブジェクトとはマクロ操作の対象のことで、Excelファイル(Book)、Excelシート(Sheet)、セルなどのこと

 を言います。

 また、『Range』の右側の『( )』は引数を書く場所で、

 一つのセル、または、セル範囲の位置文字列で表します。

 Range("A1")セルA1という意味です。」

Img2_1_10

パイさん

.』(ドット)は、オブジェクトをつなげるための特別な記号で『という意味です。

 『Excelファイル.Excelシート.セルA1』のような使い方もあります。

 これは、『ExcelファイルExcelシートセルA1』という意味です。

 Range("A1").セルA1という意味です。」

Img2_1_11

パイさん

Value』は、セルの値を設定するためのプロパティです。

 プロパティとはオブジェクトの属性のことです。

 属性とは、そのオブジェクトの情報そのものです。

 Range("A1").ValueセルA1という意味です。」

Img2_1_12

パイさん

=』は、変数またはプロパティに値を代入する演算子です。

ソンくん

変数ってなんですか。」

パイさん

変数とは、一時的に値を保持するための入れ物です。

 プログラム実行時に一時的に値を保持したいときに使います。」

ソンくん

演算子ってなんですか。」

パイさん

演算子とは、四則演算(加減乗除)、文字列や変数の比較や操作などを行うための

 特別な記号や文字のことです。

 代入演算子としての『=』は、 A = B のような形で使われますが、

 このときは、左辺のAの値に右辺のBの値を代入するという意味です。

 (このときは、左辺のAの値と右辺のBの値が同じという意味ではありません。)

Img2_1_13

パイさん

「プログラムコードの中に、文字列を記述するときは、それが文字列であることを示すために

 特別な記号『』を使います。」

ソンくん

文字列ってなんですか。」

パイさん

文字列とは、アルファベット、ひらがな、カタカナ、漢字、記号、数字のような

 文字が一つ以上連なったもののことです。

 サンプルコードでは、『A1(セル番地)と『初めてのマクロ』が文字列です。」

ソンくん

「『A1』はアルファベットと数字が連なった文字列

 『初めてのマクロ』は漢字とひらがなとカタカナが連なった文字列、ということですね。」

パイさん

「その通りです。」

ソンくん

「『A1』は2文字だけど、『A』だったら1文字です。これも文字列ですか?」

パイさん

「その通りです。1文字でも『A』は文字列です。」

ソンくん

「わかりました。では、『1』は文字列ですか?」

パイさん

「『1』は用途によって、文字列数値かに分かれるため、そのときの状況によって、

 どちらになるかが決まります。

 プログラムにおいて、数字は、設定や計算のために数値として使うときは数値

 単なる文字として使うときは文字列となります。

 今回、『1』はセル位置を示す文字列A1』の一部であるため、今回、『1』は文字列です。」

ソンくん

「わかりました。数字は用途によって文字列になったり数値になったりするのですね。」

パイさん

Excelマクロ文字列を記述するときは、

 『』をその文字列の前と後に一つずつセットし、

 『』と『』でその文字列を囲みます。

 サンプルコードの中の『初めてのマクロ』という値を示す文字列でも

 初めてのマクロというように、『』と『』でその文字列を囲でいます。

 また、サンプルコードの中の『A1』というセル位置を示す文字列でも

 A1というように、『』と『』でその文字列を囲でいます。

ソンくん

「わかりました。Excelマクロ文字列を記述するときは、文字列と記述するのですね。」

パイさん

「これで、Range("A1").Value = "初めてのマクロ"を構成する全てのパーツを説明しました。

 では、改めて質問します。Range("A1").Value = "初めてのマクロ"とは、どういう意味でしょうか。」

ソンくん

Range("A1").Value = "初めてのマクロ"は、セルA1文字列『初めてのマクロ』を代入する

 という意味です。」

パイさん

「その通りです。今回は、初めてのマクロとして、次のサンプルコードを紹介しました。

Img2_1_5_2

 Range(セル番地)オブジェクトをつかえば、特定のセルをセル番地で指定することができます

 それと、Excel記録されていない、新しいマクロをつくりだすという話でした。

 

 プログラミングでは、既に作成したプログラムをコピーして書きかえるというように、

 プログラムの再利用がよく行われます。

 

 では、マクロをコピーして書きかえるにはどうしたらよいのでしょうか。

 これについては、次回『マクロをコピーして書きかえる』で紹介します。」