2019.01.22みなさん、こんにちは!タカハシ(@ntakahashi0505)です。「初心者でもわかるエクセルVBAのクラスモジュール」ということでシリーズをお送りします。前回の記事はこちらです。エクセルVBAで自作のコレクションに要素を追加するメソッドを作成する「初心者でもわかるエクセルVBAのクラスモジュール」をテーマにシリーズ連載をしております。今回は、エクセルVBAで自作のコレクションに要素を追加するAddメソッドを作成する方法について見ていきます。tonari-it.com2019.01.21自作のコレクションに要素を追加するメソッドの作り方をお伝えしました。追加するメソッドが作れましたので、今度は削除するメソッドを作ってみようと思います。いうとで、エクセルVBAで自作コレクションの要素を削除するメソッドの作り方です。前回のおさらい自作のコレクションの要素を削除するメソッドCollectionオブジェクトの要素を削除する自作コレクションのRemoveメソッドのコード自作コレクションのRemoveメソッドの動作を確認まとめ連載目次:初心者でもわかる!エクセルVBAでクラスを作ろう前回のおさらいでは、前回のおさらいからです。以下のエクセル表があったとして、これをクラスを使って扱おうというのがシリーズを通してのテーマとなっています。それで、まずエクセル表の1行ずつのデータを表すクラスであるPersonを作成しました。そのコードがこちらです。Propertyエクセル表の各フィールドを格納するプロパティのほか、いくつかのメンバーを追加しています。前回は、InitializeメソッドをRangeオブジェクトでも、配列でも実行できるように変更しましたね。そのPersonクラスから生成したインスタンスをコレクション的に扱うのが、以下のPersonsクラスです。Function前回はAddメソッドを追加しましたので、それを検証するための標準モジュールがこちらです。Subここしばらくは、こちらのPersonsクラスのほうにいろいろな機能を追加しているところですね。自作のコレクションの要素を削除するメソッド前回は、Personsクラスに要素を追加するAddメソッドを作成しました。いうことで、今回はその逆。Personsコレクションから要素を削除するRemoveメソッドを作っていきたいと思います。Collectionオブジェクトの要素を削除するPersonsクラスのコレクション機能は、蓋を開けてみるとCollection型のプライベート変数item_が担ってくれています。item_が参照するCollectionオブジェクトから要素を削除してあげればよいわけですね。Collectionオブジェクトから要素を削除するには、Removeメソッドを使えばOKです。ここでキー、整数で順に割り振られているインデックスまたは、設定されていれば文字通りのキーでもOKです。自作コレクションのRemoveメソッドのコードでは、それを使ってPersonsクラスにRemoveメソッドを作りましょう。Subおっと、シンプル!整数型を受け取っても、文字列型を受け取っても処理ができるように、Variant型で引数を受け取るようにしています。検証用のプロシージャを標準モジュールに書いて、自作コレクションの要素を削除するRemoveメソッドの動作確認をしてみましょう。Sub実行してStopステートメントの中断時のローカルウィンドウを見てみましょう。初期状態のインデックス2の「Tom」と、IDが「a01」の「Bob」のデータが削除されていますね。まとめ以上、エクセルVBAで自作コレクションの要素を削除するメソッドの作り方をお伝えしました。これまでの連載をご覧いただいていれば、今回の内容は簡単ですよね。次回はPersonクラスの内容をエクセル表に反映させるメソッドを作っていきます。エクセルVBAでエクセル表のデータを反映するメソッドとクラスを使うメリット「初心者向けエクセルVBAではじめてのクラスモジュール」についてのシリーズです。今回は、エクセルVBAでエクセル表のデータを反映するメソッドを作る方法とエクセル表でクラスを使うメリットについてお伝えします。tonari-it.com2019.01.23どうぞお楽しみに!連載目次:初心者でもわかる!エクセルVBAでクラスを作ろう名前は聞いたことあるけどよくわからない「クラスモジュール」。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルVBAでチャットワークに最もシンプルなメッセージを送る方法エクセルVBAでチャットワークAPIを利用する方法をお伝えしております。POSTメソッドによるHTTPリクエストによりチャットワークにメッセージを送信する簡単なプログラムを紹介していきます。2017.11.29Excel・VBA活用術エクセルVBAでテキストファイルを新規作成するFileSystemオブジェクトの使い方エクセルVBAによるマクロの動作状況をログファイルに残す方法をお伝えしています。今回は、書き出し先のテキストファイルの有無を判定して、もし存在しなければ新規作成するという処理を追加していきます。2017.05.07Excel・VBA活用術エクセルVBAで実行時間を手軽に測定するTimerObjectクラスを作るエクセルVBAでは使い回しをするような機能をクラス化しておくと便利ですよね。今回は、使用頻度が高い機能ということで、エクセルVBAで実行時間を測定するのに便利なタイマークラスの作り方をお伝えしていきます。【Excel】勝手な編集は許しません!初心者向けのシート保護設定エクセルの「シートの保護」を使ったシートの値編集を制限したり、パスワードを使って特定の人だけに操作できるようにする方法をご紹介しています。関数やマクロを使ったエクセルブックのように、値やシートを操作されると正しく動作しなくなる、というときに便利な機能です。【エクセルVBA&Access連携】SQL文でデータを抽出する最も簡単なプログラムエクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。今回はデータベース言語SQLとADODB.Recordsetオブジェクトでデータベースからデータを抽出します。【エクセルVBA入門】Vlookupメソッドを使ったときに発生するエラーを回避する方法エクセルVBAでバラバラの経費精算書を一つのデータベースにまとめるマクロの作り方についてお伝えしています。今回はVLookupメソッドを使ったときに発生するエラーを回避する方法についてお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。