2018.04.24皆様こんにちは、ノグチです。前回は、リスト処理にも便利に使える、Dictionaryオブジェクトをご紹介しました。今回からは、Dictionaryオブジェクトのプロパティやメソッドを順にご紹介していきます。最終的にはループで書かれた重複排除処理のコードを、Dictionaryオブジェクトを使った方法に置き換えていきましょう!Dictionaryオブジェクトとは?や、宣言の方法は前回の記事でご紹介していますので、併せてご覧ください。【エクセルVBA】リスト処理に便利!Dictionaryオブジェクトをコードで使うための準備VBAでリストの重複を排除するのって、ループ文が複数出てきたり、処理速度が落ちたりして、ちょっと躊躇してしまいませんか?Dictionaryオブジェクトを使えば、重複排除もスマートにできるかもしれませんよ。エクセルVBAのDictionaryオブジェクトを、コードで使用するための前準備を紹介しています。B列の品目が同じレコードは在庫数を加算し、重複を取り除いてF、G列に出力したいとします。上のリストの処理を、ループ文を複数使ったコードで表現するとこんな感じになります。Sub提示したコードは、左側のリストにある品目の値が、右側の出力リストにあるかどうかをループで探し、対象の品目が右側のリストにあった場合は在庫数を加算する、という動作をします。このコードをDictionaryオブジェクトを使ったコードに置き換えて行きましょう!Dictionaryオブジェクトでの処理順序はこんな感じです。Dictionaryオブジェクトにキーと要素を追加する対象のレコードがDictionaryオブジェクトに存在するかをチェックするDictionaryオブジェクトに存在するキーと要素を使った値の処理このステップに沿って、Dictionaryオブジェクトのメソッドやプロパティをご紹介していき、最終的には上で提示したコードをDictionaryオブジェクトを使ったコードに置き換える、というのがゴールです。いうことで、今回は1.Dictionaryオブジェクトにキーと要素を追加する方法についてご紹介します。AddメソッドでDictionaryオブジェクトにキーと要素を追加するまずは、Dictionaryオブジェクトにキーと要素を追加する方法です。これには、DictionaryオブジェクトのAddメソッドを使います。要素Addメソッドでコードを置き換えてみる実際に上のリストの値を使ったコードにすると、こんな感じになります。subAddメソッドの部分に直接値を指定していますが、セル指定でも可能です。3).ValueとすればOK。Dinctionaryオブジェクトのプロパティさて、Dictionaryオブジェクトに値が追加できているかどうか、確認してみましょう。Dictionaryオブジェクトに追加されたキーの要素を取得するには、Itemプロパティを使います。ItemプロパティItemプロパティは、Dictionaryオブジェクトの、キーに対する要素の値を取得したりするプロパティです。(キー)これで、指定したキーの要素の値を取得することができます。このプロパティを使って、先ほどのコードでDictionraryオブジェクトにキーと要素が追加できているか見てみましょう。dic.Item("鉛筆")を追加して実行してみると...この通り、「鉛筆」というキーに対して「36」という値が要素に追加されているのがわかりますね。最後に今回は、AddメソッドでDictionaryオブジェクトにキーと要素を追加する方法をご紹介しました。次回は、指定した値がDictionaryオブジェクトのキーに存在しているかどうか?をチェックしてくれる、Existsメソッドをご紹介していきます。複数のループを使った重複排除のVBAコードを、Dictionaryオブジェクトとメソッドを使ったコードをに置き換えていく方法をご紹介しています。今回は、指定した値がDictionaryオブジェクトに既に登録されているかどうか?をチェックしてくれる、Existsメソッドのご紹介です。tonari-it.com2018.05.02それでは、最後までお読みいただきありがとうございました!連載目次:エクセルVBAのDictionaryオブジェクトでリストの重複を排除するエクセルVBAでリストの重複を排除する方法として、Dictionaryオブジェクトを使った重複排除の方法をご紹介しています。投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルで営業日判定を実現するWORKDAY関数の使い方エクセルで土日祝日を判定したい!といった場合に、祝日の判定は標準のエクセル機能では不可能です。今回紹介するWORKDAY関数を使用すれば、祝日の判定を実現することが可能です。2018.09.27Excel・VBA活用術ExcelにPythonが搭載されることによるノンプログラマーのメリットとVBAの今後についてMicrosoftがExcelにPythonの搭載を検討しているというニュースがありました。今回はこれがノンプログラマーにとってどんなメリットをもたらすのか、また搭載後のVBAがどうなるのかについても考えます。2017.12.21Excel・VBA活用術エクセルの関数ってどれだけ覚えればいいの?実際に使っている関数を調べてみたエクセルって470を超えるたくさんの関数がありますが、いったい仕事を粉る上でどれだけ覚えればいいんでしょうか?ということで、実際に私がエクセルでどれだけの種類の関数を使っているのか調べてみました。起動時イベントApplication_Startupに処理を書き込むことで、Outlookを立ち上げた時に今日の予定を取得してメッセージを表示する方法をご紹介しています。これなら、毎日の予定がOutlook起動時に把握できますよ。2019.04.01Excel・VBA活用術エクセルVBAでエクセル以外の他のアプリケーションを開く方法エクセルVBAでファイルを開く作業を自動化する方法をお伝えしています。今回はエクセルVBAでエクセル以外の他のアプリケーションのファイルを開く方法としてShellオブジェクトの使い方をお伝えします。「初心者でもわかるエクセルVBAのクラスモジュール」シリーズをお送りしています。今回は、エクセルVBAで自作コレクションの要素を削除するRemoveメソッドの作り方についてお伝えしていきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣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をコピーしました。