(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。「初心者でもわかるエクセルVBAのクラスモジュール」というテーマでシリーズ連載をしております。「初心者でもわかるエクセルVBAのクラスモジュール」についてのシリーズです。今回は、エクセルVBAで自作コレクションのインスタンス生成時のイベントClass_Initializeで初期データも投入する方法です。tonari-it.com2019.01.13自作コレクションのクラスPersonsをイベントプロシージャClass_Initializeで初期化する方法をお伝えしました。この自作コレクションですが、現状だと要素の取得がちょっと回りくどいんです。いうことで、今回はエクセルVBAで自作コレクションの要素を取得するプロパティの作り方です。前回のおさらい独自コレクションにメンバーItemを追加するコレクションの要素を取得するItemプロパティ自作のItemプロパティで要素を取得するItemsプロパティを隠蔽するパブリック変数をプライベート変数に変更するまとめ連載目次:初心者でもわかる!エクセルVBAでクラスを作ろう前回のおさらいでは、前回のおさらいから...!まず、以下のようなエクセル表があります。こちらのエクセル表をクラスで取り扱いをしていくというのが目標です。一行分のデータを扱うために、Personというクラスを作成しました。Property各データを格納するプロパティや、便利なメンバーを追加しています。このPersonクラスから生成したインスタンスを複数取り扱うコレクションのクラスPersonsがこちら。Subこれで、エクセル表のデータ全体を扱うことができるわけです。前回、上記のコードのよいうに、クラスPersonsのインスタンス生成時にエクセル表のデータを自動で取り込むように作ったんです。その確認用の標準モジュールがこちら。Sub...超シンプルになりましたね。独自コレクションにメンバーItemを追加するさて、実際のPersonオブジェクトたちは、PersonsクラスのCollection型のパブリック変数Itemsに格納されています。myPersons.Items.Item('a01')12myPersons.Items.Item(1)myPersons.Items.Item('a01')などとする必要があります。myPersons.Item('a01')12myPersons.Item(1)myPersons.Item('a01')と、こんな感じで参照ができて、普段使っているコレクションっぽいですよね。コレクションの要素を取得するItemプロパティでは、実際に実装していきましょう。クラスPersonsにItemプロパティを追加します。Getプロシージャですね。引数として整数のインデックスまたは、文字列型のキーかどちらかを受け取る必要があるので、Variant型で引数を受けるようにしましょう。Propertyそれで、その引数を使って、パブリック変数Itemsが参照するコレクションからItemメソッドを使って要素を取り出して挙げるということです。自作のItemプロパティで要素を取得するでは、作成したItemプロパティの動作確認をしてみましょう。標準モジュールをこんなふうに作ってみました。Subインデックス1の要素のFirstNameを表示、キー「a02」の要素のGreetメソッドを実施ですね。実行すると以下のように正しく参照できていることを確認できます。Itemsプロパティを隠蔽するさて、PersonsコレクションにItemプロパティを追加しました。なると、ここでふとした疑問が...パブリック変数Itemsですが、これ他のモジュールからアクセスできる必要...あります?今回追加したItemプロパティや、要素の追加をするAddメソッドなどを用意すれば、Itemsがパブリックである必要はなさそうです。Itemsプロパティを隠蔽しちゃいましょうか。パブリック変数をプライベート変数に変更するまず、Personsクラスのパブリック変数Itemsをプライベート変数に変更します。プライベート変数なので、頭文字も小文字にしてアンダースコアを付与しました。Collectionそれに合わせて、Personsクラスのコードを置換しましょう。以下の置換ダイアログが表示しますので、検索文字列を「Items」、置換後文字列を「items_」にします。あと、「大文字と小文字を区別する」にもチェック入れておきましょう。結果的に、Personsクラスは以下のようになります。Propertyこれで、他のモジュールからアクセスができなくなります。Class_Initializeでの初期データ投入と、Itemプロパティによる参照はできるはずです。前述の標準モジュールのコードを実行して確認しておきましょうね。まとめ以上、エクセルVBAで自作コレクションの要素を取得するプロパティの作り方をお伝えしました。これで、コレクションっぽく要素を参照できるようになりましたね。次回は、Personsクラスに要素を追加するAddメソッドを作成していきます。エクセルVBAで自作のコレクションに要素を追加するメソッドを作成する「初心者でもわかるエクセルVBAのクラスモジュール」をテーマにシリーズ連載をしております。今回は、エクセルVBAで自作のコレクションに要素を追加するAddメソッドを作成する方法について見ていきます。tonari-it.com2019.01.21どうぞお楽しみに!連載目次:初心者でもわかる!エクセルVBAでクラスを作ろう名前は聞いたことあるけどよくわからない「クラスモジュール」。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA】Validation.Addメソッドで入力規則のドロップダウンを作る方法ValidationオブジェクトのAddメソッドを使って、セルに入力規則のドロップダウンリストを作成する方法をご紹介しています。シートやブックに入力された値によって入力規則の種類を変えたり、ドロップダウンリストに表示する値を変えたい、という時に便利に使えますよ。【エクセルVBA】FileSystemオブジェクトでファイルやフォルダが存在するかを判定するエクセルVBAのFileSystemオブジェクトでファイルやフォルダの操作をする方法をお伝えしています。今回はFileExists、FolderExistsメソッドでファイル・フォルダの存在を判定します。【エクセルVBA】FileSystemオブジェクトの基本と簡単にフルパスを生成・分解する方法FileSystemオブジェクトを使ってエクセルVBAでファイルやフォルダを取り合う使う方法。今回は、FileSystemオブジェクトの基本と、ファイルのフルパスを簡単に生成・分解する方法ついてお伝えします。【エクセルVBA】ChangeイベントとEnableEventsプロパティで部分一致検索をする方法WorksheetオブジェクトのChangeイベントと、ApplicationオブジェクトのEnableEventsプロパティを使って、セルに得意先名の一部を入力したら、マスタシートから正式名称を取得して入力セルに返す、というコードをご紹介しています。面倒かつ間違い易い入力作業は、出来るだけ簡略化したいですね。2018.06.05Excel・VBA活用術Excelで住所と郵便番号をらくらく相互変換!「郵便番号変換ウィザード」Excelで住所録を作成する際にやっかいな郵便番号。住所の記載はあるが郵便番号がなくネットで検索している方に必見!Excelで簡単に住所から郵便番号を、郵便番号から住所を生成してくれるアドイン「郵便番号変換ウィザード」をご紹介いたします。【エクセル区切り位置】「列のデータ形式」で数字データを文字列・日付形式に変換するエクセルの「区切り位置」を紹介するシリーズ。第三回目は「列のデータ形式」の設定です。先頭がゼロではじまる数字データを文字列に変換する・8ケタの数字データを日付形式に変換する方法を紹介しています。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。