僕は Cells はぜんぜん使わないのです。 プログラムを書くときには、 Range で書いたほうが直感的で早いというのと、非表示になっているシートにある複数セルで指定される範囲を表現するのにとても面倒だというのがその理由です。
あと、パフォーマンスの違いについて考えるときの方針について。
Range と Cells のパフォーマンスの違いは、マシンスペックやほかによけいなプログラムが走っているかいないかとか、そういうことによって吸収されてしまう程度に軽微です。 (For Each構文で書けば、 For Next 構文で書くよりはだいぶ早いです。あと、RangeのFindメソッドを使う)
受講生さんの投稿
(投稿ID: 402)
12回目で、理解に少々時間がかかったのですが、
解ると、こっちは、すんごい簡単ですね。再生せずに出来ました。
面倒で嫌だった定型業務がまた1つ解決しました^^
小川 慶一さんのコメント
(コメントID: 1205)
マッチングの基本パターンです。
これが分かれば、自由に応用できますね。応用の容易さも、VLOOKUP関数の比ではありません。
12回目について補足(?)すると、
という構文セットのあとにループの中で調べた結果を書き出す、というのは、基本パターンです。
(「構造化プログラミング7つ道具」という僕のオリジナル教材があります。そこに書いています。いずれ折を見て紹介します。)
そういう意味では、「第10回」と「第12回」型は同じです。
https://forum.pc5bai.com/lesson/page/150
>これ、VLOOKUPですね。関数使うよりカンターン♪♪
>12回目で、理解に少々時間がかかったのですが、
>解ると、こっちは、すんごい簡単ですね。再生せずに出来ました。
>面倒で嫌だった定型業務がまた1つ解決しました^^
受講生さんのコメント
(コメントID: 1223)
>これが分かれば、自由に応用できますね。応用の容易さも、VLOOKUP関数の比ではありません。
実務で使用しました。
列の入れ替え、範囲選択不要、セル右下Wクリックするもブランクでストップというストレスも無し、
コピーして値貼り付けも不要で、条件を追加するのは自由とvlookup関数より、
楽に、早く、確実に処理が終わりました。ありがとうございます。
参考までに教えて頂きたいのですが、
こういう処理の場合、Cellsを使うと実行速度が速くなったりするのでしょうか。
多くても3列15000行程度なので、大した差は無いのでしょうが少し気になります。
小川 慶一さんのコメント
(コメントID: 1225)
>実務で使用しました。
>列の入れ替え、範囲選択不要、セル右下Wクリックするもブランクでストップというストレスも無し、
>コピーして値貼り付けも不要で、条件を追加するのは自由とvlookup関数より、
>楽に、早く、確実に処理が終わりました。ありがとうございます。
いやー、たまらないですね (^^*
>参考までに教えて頂きたいのですが、
>こういう処理の場合、Cellsを使うと実行速度が速くなったりするのでしょうか。
>多くても3列15000行程度なので、大した差は無いのでしょうが少し気になります。
要は、頻繁にセルを探す作業がある場合ということでしょうか。
書いて実行して比べるのがいちばん早くて分かりやすいと思います。
僕もどっちのほうが早いかは多少興味ありますので、よかったら書いたプログラムと実行結果を教えてください。
僕は Cells はぜんぜん使わないのです。
プログラムを書くときには、 Range で書いたほうが直感的で早いというのと、非表示になっているシートにある複数セルで指定される範囲を表現するのにとても面倒だというのがその理由です。
あと、パフォーマンスの違いについて考えるときの方針について。
Range と Cells のパフォーマンスの違いは、マシンスペックやほかによけいなプログラムが走っているかいないかとか、そういうことによって吸収されてしまう程度に軽微です。
(For Each構文で書けば、 For Next 構文で書くよりはだいぶ早いです。あと、RangeのFindメソッドを使う)
でも、そこの改善に夢中になるより、やっている仕事の進め方を根本から変えるとかしたほうが全体としてのインパクトはデカいです。
よほどのパフォーマンスの違いになるのでなければ、僕はプログラムを書くときにかかる工数が少ないことがいちばん重要だと考えています。
匿名さんは当然ご存知のとおり、この点に気がついてそこそこのところで満足して手を離せるかどうかが、エクセルマニアで終わるか業務改善をできる人になるかの違いだと思います。
受講生さんのコメント
(コメントID: 1229)
>Range と Cells のパフォーマンスの違いは、マシンスペックやほかによけいなプログラムが走っているかいないかとか、
>そういうことによって吸収されてしまう程度に軽微です。
そうですよね^^ 良かった。感じていた通りのお言葉でした。
某T先生の無料講義でcells大推奨だったのですが、理由については速さとしか解説してもらえず
ネットで調べても場所の取得が、めちゃ面倒なだけという印象だったんですよね。
私もRange で直感的に書くほうが、思考と作業のズレでストレスを感じずに済み良いと思います。
18回目の課題も、めちゃ便利ですね。
重複だけなら、データタブから重複の削除で済むのですが、区域の取得をどうしたら良いか分からず
先週まで、目視と手作業で処理していました。データの数が少ないので諦めていたのですが、小川先生、凄すぎです。
面倒な作業が、日々加速的に楽しくなっています。
小川 慶一さんのコメント
(コメントID: 1231)
>某T先生の無料講義でcells大推奨だったのですが、理由については速さとしか解説してもらえず
エクセルのことばかり見ていると、部分最適にばかり目がいってしまいますね (^^;
以下の記事も参考になるかと思います。
http://www.exvba.com/blog/?p=4378
「某T先生」の視点は、この記事で言うところの「作業担当者にとってどうか」という視点です。
「作成者にとってどうか」と言えば Range でしょう。
18回目の課題は、実は、発展編1のあとに演習で扱う「伝票作成マクロ」と基本のアルゴリズムは同じです。
http://www.exvba.com/demo_denpyo.php
18回目の課題を楽しいと思っていただけるようでしたら、かなり楽しんでいただけると思います v(^^*
>>Range と Cells のパフォーマンスの違いは、マシンスペックやほかによけいなプログラムが走っているかいないかとか、
>>そういうことによって吸収されてしまう程度に軽微です。
>
>そうですよね^^ 良かった。感じていた通りのお言葉でした。
>某T先生の無料講義でcells大推奨だったのですが、理由については速さとしか解説してもらえず
>ネットで調べても場所の取得が、めちゃ面倒なだけという印象だったんですよね。
>私もRange で直感的に書くほうが、思考と作業のズレでストレスを感じずに済み良いと思います。
>
>18回目の課題も、めちゃ便利ですね。
>重複だけなら、データタブから重複の削除で済むのですが、区域の取得をどうしたら良いか分からず
>先週まで、目視と手作業で処理していました。データの数が少ないので諦めていたのですが、小川先生、凄すぎです。
>面倒な作業が、日々加速的に楽しくなっています。