Розмір відео: 1280 X 720853 X 480640 X 360
Показувати елементи керування програвачем
Автоматичне відтворення
Автоповтор
この動画でクラスモジュールの存在意義についてとても分かりやすく教えていただきました。ありがとうございます。
ご視聴いただきありがとうございます!拙い話ですが参考になれば幸いです。クラスは個人的にはVBAの中では最難関に該当する技術だと思っています。(クラスモジュールと標準モジュールでできることの違いは大差ないように見えてしまうので説明が難しいといつも感じています・・)他の動画など色々アップしておりますので参考にしていただければと思います。
クラスモジュールに特化した動画は初めて見ました。参考になります。質問ですが、カプセル化するということだけでしたら、クラスモジュールに書かなくても標準モジュールに書けばいいはずですが、それでもクラスモジュールに書くのは何かメリットがあるのでしょうか。
コメントありがとうございます!標準モジュールで事足りるかどうかは要件次第になるかと思います。標準モジュールを使う場合ですと、インタンスが作れない(と思います)ことが大きな違いになると思います。私の業務経験では、シートにある「表1個」をオブジェクトとして作るというよりもその「表の中の1行」を1オブジェクト(インストタンス)として、それらを行数分だけ作成して、処理をする形を取っていました(テンプレート、たい焼きの型として使用する)。このような使い方(同じ型をもつインスタンスを複数作る)をすると標準モジュールの実装では使い勝手が悪くなると思っておりますです。参考になれば幸いでございます。引き続きましてご視聴よろしくお願い致します!
第1回から見させてもらってます。凄く分かりやすく、大変勉強になりますが、コードの画面を大きくしてもらえると助かりますので宜しく御願いします。
ご視聴ありがとうございます!画面について承知しました。動画配信は慣れて無いところが多くて恐縮ですがいろいろ試してまいります。
んー、仰りたいことは解るのですが、これは使いどころによって分けて使うものですね。スコープを設定したい場合はクラス、全体を通して使う場合は標準モジュールとすると良いと思いますよ。もちろん、変数を直接Publicで使うのはマズいと思います。どこで使われていてどこで変な値が設定されるか発見し難いですからね。なので、標準モジュールでも変数を直接Publicにするのではなく、プロパティを作成してそれを介在してやり取りをするようにすれば、そこにBreakPointを設定して実行すれば、おかしな値が入ったところでトレースして行けばどのモジュールのどの関数またはメソッドで呼び出されて変な値が設定されたか分かると思います。
こちらも、コメントありがとうございます!(^^)最近ではPublicが必要となるケース自体が「コードの匂い」として感じています^^;とはいえ、Constでプロジェクト全体で使うものはPublicで定義していますが、Public自体を使わないという点はできるだけ徹してやるようにしています。プロシージャの戻り値として使えれば、おっしゃるように値を直接いれるのではなく、データの出入り口を一箇所にでき、かつそのプロシージャの中で値がチェックできる効果もあって尚良しですね。ありがとうございます。引き続きましてご視聴、ご意見よろしくお願い致します!
この動画でクラスモジュールの存在意義についてとても分かりやすく教えていただきました。ありがとうございます。
ご視聴いただきありがとうございます!
拙い話ですが参考になれば幸いです。
クラスは個人的にはVBAの中では最難関に該当する技術だと思っています。
(クラスモジュールと標準モジュールでできることの違いは大差ないように見えてしまうので
説明が難しいといつも感じています・・)
他の動画など色々アップしておりますので参考にしていただければと思います。
クラスモジュールに特化した動画は初めて見ました。参考になります。質問ですが、カプセル化するということだけでしたら、クラスモジュールに書かなくても標準モジュールに書けばいいはずですが、それでもクラスモジュールに書くのは何かメリットがあるのでしょうか。
コメントありがとうございます!
標準モジュールで事足りるかどうかは要件次第になるかと思います。
標準モジュールを使う場合ですと、
インタンスが作れない(と思います)ことが大きな違いになると思います。
私の業務経験では、
シートにある「表1個」をオブジェクトとして作るというよりも
その「表の中の1行」を1オブジェクト(インストタンス)として、それらを行数分だけ作成して、
処理をする形を取っていました(テンプレート、たい焼きの型として使用する)。
このような使い方(同じ型をもつインスタンスを複数作る)をすると
標準モジュールの実装では使い勝手が悪くなると思っておりますです。
参考になれば幸いでございます。
引き続きましてご視聴よろしくお願い致します!
第1回から見させてもらってます。
凄く分かりやすく、大変勉強になりますが、
コードの画面を大きくしてもらえると助かりますので
宜しく御願いします。
ご視聴ありがとうございます!
画面について承知しました。
動画配信は慣れて無いところが多くて恐縮ですがいろいろ試してまいります。
んー、
仰りたいことは解るのですが、これは使いどころによって分けて使うものですね。
スコープを設定したい場合はクラス、全体を通して使う場合は標準モジュールとすると良いと思いますよ。
もちろん、変数を直接Publicで使うのはマズいと思います。どこで使われていてどこで変な値が設定されるか発見し難いですからね。
なので、標準モジュールでも変数を直接Publicにするのではなく、プロパティを作成してそれを介在してやり取りをするようにすれば、そこにBreakPointを設定して実行すれば、おかしな値が入ったところでトレースして行けばどのモジュールのどの関数またはメソッドで呼び出されて変な値が設定されたか分かると思います。
こちらも、コメントありがとうございます!(^^)
最近ではPublicが必要となるケース自体が「コードの匂い」として感じています^^;
とはいえ、Constでプロジェクト全体で使うものはPublicで定義していますが、
Public自体を使わないという点はできるだけ徹してやるようにしています。
プロシージャの戻り値として使えれば、
おっしゃるように値を直接いれるのではなく、データの出入り口を一箇所にでき、
かつそのプロシージャの中で値がチェックできる効果もあって尚良しですね。
ありがとうございます。
引き続きましてご視聴、ご意見よろしくお願い致します!