- ベストアンサー
オブジェクトモジュールにメンバーの追加(エクセルVBA)
エクセルのVBAで、オブジェクトモジュールに(クラスの?)メンバーを追加したいと考えています。(そんな使い方すべきでないとの意見もありそうな問題ですが・・?) Thisworkbookのモジュールに次のコードを書いてみたのですが、test_bookを動かすと(1)~(3)は問題ないのですが、(4)がエラーになります。(自動メンバー表示もされません。且つ、???に何を入れればいいのか?判りません) で、質問ですが、オブジェクトモジュールに、プロパティ、メゾッドは追加できるのでしょうか?追加したプロパティ、メゾッドは、自動メンバー表示に加えることが出来るのでしょうか?その時は、やはり、Enum を使うのでしょうか?ご指導のほどよろしくお願い致します。 Private enum ?? ???? End Enum dim ??? as ??? Sub test_book() MsgBox Name & FullName & FolderName '(1) MsgBox ThisWorkbook.Name & _ TisWorkbook.FullName '(2) MsgBox Me.Name & Me.FullName '(3) MsgBox Name & FullName & _ ThisWorkbook.FolderName '(4) End Sub Private Property Get FolderName() As String FolderName = "test" '所属するフォルダー名を返すプロパティーを借りに想定して単に"test"を返して実験してみました。実際にやりたいことは、別にあります。 End Property 具体的に何をやりたいのかを明示できなくてすみません。宜しくお願い致します。
- みんなの回答 (8)
- 専門家の回答
補足
いつもいつも、貴重なご意見有難う御座います。何度も何度も熟読して噛み砕いていこうと思います。 >もし、発言に失礼が所がありましたら、お許しください。滅相もない、勿体無いお言葉有難う御座います。 全く、VBAが解っていないものが意見を申すのもおこがましい限りですが、プロシージャーをどこのモジュールに書くのが正しいのか?って考えた結果、Wendy02様が仰ることとお同じく、(本質は月とスッポンほどの差があることは重々承知しています。) >Public 変数や、Public 定数を設ければ事が足りますよね。まして、ThisBookモジュールには、ThisBookモジュールの役割を、標準モジュールには、またその役割を果たすように作るだけで・・・という思いが生じThisBookに標準で装備されているプロパティについての加工において、そのbookでの標準的な加工は、ThisBookモジュールで処理する。って考え方もありかな?って思い質問しました。マイクロソフトが用意した標準プロパティが万事において標準であるとは言い切れず、また逆に、何でもかんでも標準化、自動化的にプロパティを用意すると普遍性、汎用性、フレキシブル性にかけるものとなることも理解しているつもりです。正直今、手探り状態で総当たり戦でトライしているところです。こんなくだらないことにつき合わせてしまいまことに申し訳ありません。 これを実現するためには、どうすればいいのかだけではなく、一緒になぜこうしないのかも習得できれば最高だと思っています。エキスパートの人から見ればなんて無駄なステップを踏むのかと感じられることだと思いますが、納得できないと寝れない性格上、なかなか無駄な寄り道が多くなります。仰ると通り、 >ThisBookモジュール自体にプロパティのコードを設けても、それは、単に、ThisBookモジュールに、プロパティを設けて定数を封入しただけではないかと思うのです。結果的には、Public 変数や定数と変りありません。だと、思います。 でも、基本的な考え方として、どこにおいても一緒だからどうでもいいっ的な考えではなく(決して、Wendy02様がそんないい加減な考えて述べているのではないことは重々承知してますし、尊敬しています)こうだから、こうだって自分の意見を探しているとでも言えるでしょうか?なんだか?かたぐるしい文章となってしまったことをお詫びいたします。いつも質問方法が悪く正直なところ何を言っているのか解らない?っ的な質問に親切丁寧に、しかも本来ならば私が今の何倍も自己努力して習得すべきものを、なんの惜しげもなくご指導頂ける環境に幸せを感じています。 本当に本当に有難う御座います。 今後とも、ご指導のほど宜しくお願い致します。