ついて情報発信しています。VBAプログラムは本当初心者から他のアプリケーションを呼び出して使う上級者的な使い方まで幅広いレベルで解説していきます。Propertyプロシジャを作るVBAの勉強このブログの記事一覧にもどるTweetエクセルVBAのクラスモジュールを日本語のクラス名で、徹底的に簡単に解説するシリーズの2回目です。初心者~三段をご参照ください。Letステートメントを実際に書く実際に使う:インスタンスを生成して、プロパティに値を設定するPropertyプロシジャを作るこの記事ではクラスモジュールでクラスを生成する際にプロパティプロシジャを使えるように解説することが目的です。作成したクラスモジュールに手を加えてクラスの内容を充実させていきます。PropertyプロシジャとはそもそもPropertyとは何かPropertyプロシジャについていろいろと調べてもよく分からない理由は、そもそもPropertyとは何かが曖昧だからです。そこで、まずPropertyとは何かを確認します。Propertyとはデータのことです。データとは文字列とか数値と言った値やひとまとまりの値の集まりである配列などです。Propertyプロシジャはデータの取り扱いを決める手順つまり、Propertyプロシジャとは、データ(=文字列や数値や配列と言った値を)を取得したり、設定したりといった取り扱いの方法を決めるプロシジャです。Propertyプロシジャを実際に作ってみる実際にコードを見た方が分かるので、具体例を見て行きましょう。現在アクティブなシートのA1セルに文字列が入っています。A1セルに「abc」という文字列が入っている前回作ったメソッドお約束通り、極限に分かりやすくする為に、プロシジャ名などは日本語で作成していきます。作成したクラスモジュールの中身を再掲します。クラス名は「A列の値を操作するクラス」です。Function現在は「A列の値を操作するクラス」には、このFunctionプロシジャで書かれたひとつのメソッドしかありません。このモジュールを改善していきます。Getステートメントで作成しますこのPropertyプロシジャは値を取得するときに使います。ここがややこしいところなので注意です。VBAのクラスの使い方をちょっと復習しておきましょう。クラスモジュールはオブジェクトの持つメソッドを記述する為にある、仕様書とか設計図でした。使うときは、標準モジュールで、クラスに書かれたメソッドを使えるようにインスタンスを生成します。インスタンスを生成するとは、「オブジェクトを自分で作る」と言うのと同じです。「値を取得する」とは、標準モジュールから見てです。標準モジュールがオブジェクトを利用するので、「標準モジュールから見て取得する」のはオブジェクトから見ると値を渡している事になります。ここがややこしいポイントです。いまからクラスモジュールにGetと書くのですが、オブジェクトが取得する側で無いので気をつけましょう。Getステートメントを実際に書く「A列の文字を受け取って表示するメソッド」のFunctionプロシジャの下に、下記のコードを追加します。Propertyが補完入力されます。次にこの中身を追記します。Propertyできました。Propertyプロシジャの完成です。プロパティプロシジャを作ったのですから、A列の文字を受け取って表示するメソッドを書き換えておきましょう。1)がいきなり出てきたら「なんでA1のセル?」となりますよね。「1」などの普通の数値などの値をリテラルと言うのですが、後から見たときに分かりにくくなるのがリテラルの難点です。そこでPropertyプロシジャに分かりやすい名前をつけて値を取得したのです。これこそがPropertyプロシジャの意義です。セルの番地が出てくるより「A列の値を受け取る」の方が分かりやすいですよね!実際に使う:インスタンスを生成して、プロパティの値を受け取る今回、標準モジュールは前回から一切変更していません。Sub実行を押すと、MsgBoxにA1セルの値が表示されます。F8でステップイン実行してプログラムの流れを確認しましょう。Letステートメントはデータを設定します。標準モジュールから見て、設定する、ですね。クラスから見ると受け取るように見えるのでコチラも要注意です。イメージを掴むために例を挙げます。3これはInteriorクラスのColorIndexプロパティに3を設定してA1セルを赤くするコードですね。プロパティに値を設定するとはこういうことです。標準モジュールで値を設定するので、クラス側はその値を受け取る為の変数が必要となります。具体的に見て行きましょう。Letステートメントを実際に書く先ほど作ったPropertyプロシジャの下に以下のコードを追加します。Property「設定する値を一時的に代入する為の変数」という変数をカッコ内に書いています。Functionプロシジャみたいですね。標準モジュールで設定した値はこの変数に代入されることになります。その変数を使ってA2セルに代入するという手順が記述されています。実際に使う:インスタンスを生成して、プロパティに値を設定するプロパティに値を設定するコードを標準プロシジャに追記します。3と同じ構造になっている事が分かると思います。実行すると、メッセージボックスにA1セルの値が表示され、A2セルにHelloと入力されます。以上でPropertyプロシジャの説明を終わります。引き続き頑張ってクラスモジュールを使いこなす為の知識を増やしていきましょう。ワークブックにチェック機能をつける今回はVBAで利用できるイベントについて解説していきます。A1セルの値をメッセ...VBAによるプログラミングにオブジェクト指向を取り入れます。日)1985年生まれの会社員。業務改善部隊に異動で芽を出し、現在に至る。本業での知識と経験を元に、ブログとTwitterで1生産性向上2業務改善3自動化について情報発信しています。【プログラミング】文法の勉強だけでは遠回り|挫折しない上達のコツ月別アーカイブはてなブログをはじめよう!mutable_yunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。