Excelマクロでラクラクお勉強

Excelマクロで楽して楽しく勉強してラクラク成績アップ

セルの位置を変数で指定してみよう

5. セルの位置を変数で指定してみよう

きゅう先生

「セルの位置を変数で指定してみましょう。」

すぐるくん

「変数ってなんですか。」

きゅう先生

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

f:id:qsuguru:20171112051820j:plain

きゅう先生

「変数をつかうときは、まず名前を決めます。この変数の名前には次のような決まりがあります。

 この決まりは、定数の名前を決めるときの決まりとまったく同じです。」

f:id:qsuguru:20171112045631j:plain

きゅう先生

「『Range』で、特定のセルを指定するときは、セル位置を文字列で指定することになるので、セル位置を示す変数名を決めます。名前の決まりに従えば、変数名はどのようにつけてもかまわないのですが、意味のある文字にしておくと、後で見たときにわかりやすいコードになります。ここでは、変数名を『番地』とします。

 変数名を決めたら、それが変数であることを宣言しないとパソコンには通じません。そこで、『Dim』という変数宣言文字を、自分で決めた変数名の前にもってくることになります。

 定数は定数宣言と同時にその値を設定しますが、変数は変数宣言のときにその値を設定するのではなく、あとで、その値を設定します。そのため、変数は、変数宣言のときに、その値を設定することはないのですが、そのかわりにその変数のデータ型だけ定義する(決めておく)必要があります。

 データ型とは、その変数のつかい方を明確にするものです。データ型には数値型、文字列型、日付型などがありますが、『Range』のセル位置については必ず文字列で指定することになるため、データ型は文字列型を定義します。文字列型は『String』という型指定文字をつかいます。

 文字列型を定義するときは、『As String』のように、文字列型『String』の前に『As』というデータ型定義文字を付けますが、この『As』は『○○として定義する』という意味です。つまり、『As String』は『文字列型として定義する』という意味です。また、文字列型の変数に値を設定するときは、値の前後に『』を付けることが必要です。

『Dim』という変数宣言文字に、自分で決めた変数名を続けて、更に『As』というデータ型定義文字を付けて、最後にデータ型を続けて宣言します。

 ここでは、セルの位置を指定したいので、変数の値を『A1』としておきましょう。

 それでは、マクロ『変数A1』をつくって、データ型を文字列型『String』として変数名『DCell』を宣言してみましょう。」

すぐるくん

「まずは、マクロ『定数B2』をコピーして、一番下の行にはりつけて、マクロ名を『変数A1』にしました。

 次に、『Dim』という変数宣言文字を打って、スペースを入れて、変数名『番地』を打って、スペースを入れて、『As』を打って、スペースを入れて、データ型『String』を打ちます。」

f:id:qsuguru:20171123230208j:plain

きゅう先生
「よくできました。次は、どうしたらいいと思いますか。」

すぐるくん

「『Range』の引数は変数『番地』のままで、セルに設定する値を『変数A1』に書きかえました。」

f:id:qsuguru:20171123230321j:plain

すぐるくん

「それでは、いったん全てのセルの値をクリアしてから、マクロ『変数A1』を実行してみます。」

f:id:qsuguru:20171112053115j:plain

すぐるくん

「あっ!実行時エラーと書かれた画面が現れました!」

きゅう先生

「こんなときはあわてずに、『デバッグ』ボタンを押しましょう。」

f:id:qsuguru:20171123230431j:plain

すぐるくん

「『ビジュアル ベーシック エディター』の画面が現れて、『コードウィンドウ』の中のさっき記述した『Range(番地).Value = “変数A1”』のところに右矢印が付いて背景色が黄色になっています。」

きゅう先生

「そこにエラーがあるということを教えてくれています。

 背景色が黄色になっているコードのRangeの引数となっている変数『番地』にカーソルをあわせてみてください。」

f:id:qsuguru:20171123230553j:plain

すぐるくん

「小さな画面が表示されました。この小さな画面の中に『番地 = “”』と書かれています。」

きゅう先生

「これは、変数『番地』の値が空白です。つまり、変数『番地』がからっぽですということです。」

すぐるくん

「そういえば、変数『番地』になんにも入れてません。」

きゅう先生

「よく気づきましたね。定数であれば定数宣言するときから値を設定しておきますが、変数の場合は変数宣言するときにはデータ型を定義するだけでまだ値を設定していません。」

すぐるくん

「変数宣言した後に、変数に値を設定しなければならないということですね。」

きゅう先生

「その通りです。エラーの原因がわかったところで、エラー表示を消しましょう。」

f:id:qsuguru:20171123230812j:plain

きゅう先生

「『ビジュアル ベーシック エディター』のツールバーの中にある『■』(リセット)ボタンをクリックしてください。」

f:id:qsuguru:20171123230913j:plain

すぐるくん

「エラー表示が消えました。」

きゅう先生

「それでは、変数『番地』にセル位置を示す文字列を設定しましょう。ここではセルの位置を『A1』としておきます。」

すぐるくん

「変数『番地』にセル位置を示す文字列『A1』を設定するのだから、『番地 = "A1"』でいいのかな。」

f:id:qsuguru:20171123231101j:plain

きゅう先生

「それでは、マクロ『変数A1』を実行してみましょう。」

f:id:qsuguru:20171112054247j:plain

すぐるくん

「セルA1に、『変数A1』が、書きこまれました。」

きゅう先生

「マクロ『変数B2』をつくって、変数名を『番地』、変数に設定する値を『B2』、セルに設定する値を『変数B2』としてプログラムを組んでみましょう。」

すぐるくん

「マクロ『変数A1』の、マクロ名を『変数B2』に書きかえました。

 そして、『番地 = "B2"』にしました。

 最後に、『Range(番地).Value = "変数B2"』にしました。」

f:id:qsuguru:20171123231319j:plain

きゅう先生

「よくできました。それでは、マクロ『変数B2』を実行してみましょう。」

f:id:qsuguru:20171112054537j:plain

すぐるくん

「セルB2に、『変数B2』が、書きこまれました。」

 

 

 

 

 

にほん

ブログ村 IT技術ブログへ
にほんブログ村