- Excel VBA 質問スレ Part32
773 :デフォルトの名無しさん[sage]:2014/04/25(金) 21:16:58.96 ID:yqP+DIa+ - >>771
もちろんどちらがいいかと言えば(1)。 一々Activateを調べるとか訳わからない。 CellをObjectとして引数でって言うのも、どうやるつもり? Rangeオブジェクトを引数で渡す方法もあるけど、 前レスにあった、出来るだけ今後のことを考えるなら、 最初はちょっとこった作りが必要。
|
- Excel VBA 質問スレ Part32
775 :デフォルトの名無しさん[sage]:2014/04/25(金) 22:08:42.21 ID:yqP+DIa+ - >>774
たとえばだけど、 まず、Cell情報クラスを作ります。 これはセルの位置情報を抱えておいて、 A1形式、R1C1形式のどちらでも設定出来て、 どちらの形式からでも引き出せるようにしておきます。たとえばString型の"A2"をしまったら Long型の2と1を引き出せる様に。 次にRange情報クラスを作ります。 今度はRangeオブジェクトを貰ったら、その左上と右下の情報を上記のCell情報クラスに抱えたり、取り出したり、 そのCell情報クラスの情報からRangeオブジェクトを取り出したり出来る様にします。 更に上位のクラスとして、ブックやシートを保持してCell情報クラスやRange情報クラスから 位置情報を取得して、どのブックのどのシートの、 どのセルや範囲を処理対象にするのかを取り出せるクラスを作ります。 後は取り出した情報からどうにでも弄ればいいです。 こんな感じでこまごまと部品化しておけば、 次回違うプログラムを作る時も、その部品を使えばいいので楽です。
|
- Excel VBA 質問スレ Part32
777 :デフォルトの名無しさん[sage]:2014/04/25(金) 22:57:46.98 ID:yqP+DIa+ - >>776
まずブックの情報を抱えられるところから違う。 クラス内で抱えるから引数で渡す時もクラス一つですむ。 クラス内の処理は隠蔽化出来る ので、一々外でこねくり回しながら 後で使い回しのきかないロジックにならなくて済む。
|