エクセルVBAを始めてみましょう。第2回プログラミングの手法、セルの利用と制御。

エクセルVBA
ANNE PRO2
この記事は約6分で読めます。

オブジェクト、メソッド、プロパティーの使い方

オブジェクトの概念は非常に難しく難解なものです。理論的な説明などは他のサイトで検索して調べてみましょう。ここでは初心者向けに、どうしても必要なものだけに絞ってざっくりとした説明にしています。まず、触ってみて、やってみて、面白さを知ってからもっと深く知りたくなるでしょう。

 オブジェクト

エクセルのブックやシート、シートに配置されているセルなどVBAで操作する対象です。

オブジェクトにはその性格を表すプロパティメソッドと呼ばれるものが備わってます。

つまりシートでありセルであり、エクセルそのものです。

プロパティー

オブジェクトの情報を取得したり設定したりするものです。

メソッド

オブジェクトに仕事をしてもらうための命令を与えるものになります。

最低限知っておいてほしい用語

  • ワークブック

エクセルの本体を構成するオブジェトです

  • ワークシート

ブックを構成する表の枠組みを持ったオブジェクトで複数のシートを配置できる。

  • セル

シートを構成する表の一つ一つのマス目のオブジェクトです

  • 変数 (変数)

プログラム中で使用する仮の入れ物です

  • プロシージャ

プログラムの一連の動作を記述した塊りの単位です。subで始まってEnd subで終わります。終了後値を返しません。

  • 関数(関数)

プロシージャの中で一連の動作を行った結果の値を返す(持ち帰る)ことが出来るプロシージャです

  • ダイアログ

何らかのメッセージを伝えたり、入力等を促すために開く小さなウインドウです。

  • フォーム

ユーザーが自由に配置したボタンやラベル等のコントロールオブジェクトを通してプログラムの一連の動作をのきっかけを作ったり、その結果を表示したりします。

メソッド、プロパティを設定する

初回では、ワークシートのセルをチェンジしたとき「初めまして」とセルに書き込むプログラムを説明しました。今回は続いて今度は、そのチェンジの為にクリックしたセルから、2行下で3列右のセルに「またお会いしました」と表示するプログラムを書きます。

今度は、オブジェクトが持っているメソッドやプロパティに値をセットする具体的な方法をやってみます。

下図では「 Activecell.Offset(2 , 3)=”またお会いしました” 」というコード書こうとしています。
全部の綴りを覚えていなくても頭の一文字だけでも良いので途中で右クリックするとメニューボックスが開きますから上から4番目の「プロパティ/メソッドの一覧」というやつを選択します

 

すると、今度は「Ac」で始まる一覧が出てくるので、その中から「Activecell」を選択します。ここでは上から2番目です

 

「Activecell」をダブルクリックします

 

コードウインドウに①「Activecell」が張り付きますから続けて②のようにピリオドを打ちます。すると、さらに③一覧ウインドウが開きます

 

 

続けて「o(オー)」を打つと、「Offset」が出てくるので、そいつをダブルクリックします。

 

 

Activecell.Offsetに続けて(を打つと、そのOffsetメソッド動作するための引数(ひきすう)を入力するためのガイドが出てきます。この場合は入力するべき二つの引数をガイドしていますが、最初に入れるべき「RowOffset」が強調表示されてるので、この意味はオフセットする行を指定しろと言っています。

 

なので2行下の「2」を打ち込みます。更にカンマを打つと今度は、ガイドの強調表示は「ColumnOffset」に移ります。その意味は多分、オフセットする列を指定しろと言っているようです。

 

なのでここでは「3」を打ち込んでカッコを閉じます。
そして「=”またお会いしました”」と続けて、コードを書き終えます。

 

そうしたら、前回と同じようにエクセルのシートを表示させて、シートのセルをクリックしてみます。ここでは、G8をクリックしてみました。
その結果、クリックしたG8セルの2行下、3列右のセルに④のJ10セルに「またお会いしました」と表示されましたよ。

 

以上の様に、全部のメソッドやプロパティの綴りを覚えていなくても、一覧から選択することで簡潔にコードを完成させることが出来るようになっています。ぜひやってみてください、そうしたらやっているうちに少しづつ書き方、やり方がわかってきます。

メッセージダイアログを表示する

もうちょっと、やってみましょう。

今度は上記の動作に続けて、単純なメッセージを表示するのをやってみます。同時に変数の使い方も少しやってみます。

①のコードはstrという名前の変数(入れ物)に文字列を格納するための文です。Dimは変数を宣言するぞという決まり文句です。As Stringはこの変数には文字列しか入れないことを指定しています。
②は上で宣言した変数に指定したセルに書かれている文字列を格納するための文です。Activecell.Offset(2, 3)は、今現在選択されているセルから見て2行下で3桁右にあるセルの事です。この文は7行目に書いたのと同じものです。③はそのセルの値を意味します、つまり「またお会いしました」という文字列が、strに入ったことになります。

 

次に、下図の①で変数に格納した文字列をメッセージボックスに張り付けて表示させます。②がメッセージボックスを表示するための文です。

 

上の文を書き上げたら、エクセルのシートに戻って、ここではD8をクリックします。結果はG10に「またお会いしました」と書かれると同時に小さなメッセージボックスが開きます。このボックスにはG10に書かれた文字列が表示されています。一番下にOKボタンがついているのでクリックするとボックスが閉じて消えます。

ちなみに、このボックスが閉じない内はエクセルの操作はできません。

 

ここで説明したメッセージボックスは最も簡単な表示方法をご紹介しました。ちなみに、いちいち変数に格納しなくても「 MsgBox  “またお会いしました” 」と直接文字列を書き込んでも同じ結果になります。
今回はただ表示して閉じるだけの物でしたが、メッセージボックスの使い方はそのほかにも案内用のアイコンを表示したりボタンを配置してその後の様々な処理をしたりすることが出来ます。その使い方については追々やっていくことにします。
次回はプログラムで必須の条件判断繰り返しなど具体的な処理の方法を説明します

今回の全コード

 

コメント

タイトルとURLをコピーしました