[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『関数の入れ子?』(Null)
VBAで関数やクラスの入れ子って可能でしょうか?? 例えば Function test(){ this.Add = function{ ・ ・ } this.Claer = function{ ・ ・ } }
こういうのは可能でしょうか??また変わりになりそうな手段はないですか??
[何をしたいか] Block.Item(1).Key.Add("ID0001") みたいな階層の深いクラスを作りたいんです。 構造体ならTypeをたくさん書けばいいのですが、クラスの階層を深くする場合って、クラスモジュールを大量に生成する?とかですかね?? どなたか詳しい方いましたらご教授願います><;
OS[WindowsXP] Excel[2003]
> どなたか詳しい方 詳しくはありません。興味を持った者です。m(__)m
ROMしたかったのですが、レスが入らないようなので、、、
> [何をしたいか] > Block.Item(1).Key.Add("ID0001") > みたいな階層の深いクラスを作りたいんです。 言葉のアヤでこのような表現になったのだと思いますが、額面どおりですと、 手段が目的となっているので少し変だと思います。
「何がしたいかは別のところにあり、それを実現するには、結果的に上のような 表記にならざるを得ないが、それは可能か?」と云うことなら分ります。
恐らく出来ると思いますが、やったことがないので絶対ではありません。
>クラスの階層を深くする場合って、クラスモジュールを大量に生成する?とかですかね?? 何をしたいかが明確でない限り、クラスの設計はできないですし、 延いては「大量に生成する」ことが必要か否かも、回答側には分らないと思います。
プロパティ/メソッド名からして、既存のCollectionオブジェクトとかDictionaryオブジェクトを 利用すれば、自作クラスは少なくて済むような気がします。
(半平太)
>Block.Item(1).Key.Add("ID0001") ↑ とにかく、この形になればよい、と云う方針でやってみました。 プログラムに意味は全くありません。 m(__)m
<クラスモジュール> | <標準モジュール> クラス名 = MyClass1 | | Sub main() Dim MyName As String | Dim Block As New MyClass1 | Block.Item(1).Key.add ("ID0001") Function Item(nn As Long) As MyClass1 | End Sub MyName = "半平太" & nn | Set Item = Me | End Function | | Function Key() As MyClass1 | Set Key = Me | End Function | | Sub add(mm As String) | MsgBox MyName & mm | End Sub |
(半平太)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.