素人がExcelVBAによる「一人働き方改革」に挑むブログスマートフォン用の表示で見る素人がExcelVBAによる「一人働き方改革」に挑むブログExcelVBAネタです。2020-02-14自作クラスのオブジェクト型デフォルトメンバ......???自作クラスのオブジェクト型デフォルトメンバ......???ちょっと衝撃的な実行結果が出たので報告。Edition』に載っていたテクニック。さんもブログで紹介していたりする。thom.hateblo.jpこれをちょっとやってみたのである。やり方は、ちょっと面倒だけれど簡単。0(XXXXは、当該プロシージャの識別子)を追加して保存プロジェクトに戻って、インポートし直すこれでオッケー。PoweredSheetというクラスモジュールを次のように作成したとする。Subモジュールレベル変数self_にWorksheetオブジェクトを持たせておいて、Selfメソッドで返す、というだけのもの。こいつをエクスポートして、テキストエディタで次のように編集する。Sub付け加えたのは(*)の1行のみ。こいつを上書き保存して、もとのプロジェクトにインポートし直す。開いてみてみると、Selfがデフォルトメンバになっていることがわかる。Subとすれば、psだけでps.Selfのように振る舞ってくれるというわけではない。そもそもコード入力時にこのようになる。デフォルトメンバであるSelf(Worksheet型)のメンバが自動表示されるわけでもない。強引にたとえば「ps.Name」と入力したとて、こうなってしまう。そもそもコンパイルが通らないという屈辱の結果。なんたる屈辱......!秘策、発動すそこでふと、「これ、カッコで括ったらどうなるんやろ???」と思い、やってみた。Sub変えたのは(*)のところだけ。PoweredSheet型の変数psをカッコで括ってみた。「カッコで括っていっぺん評価させてみたらいいんでね?」と思いついたのだ。ウインドウに出力されている。PoweredSheetクラスのインスタンスをWorksheet型変数にほぼそのまま突っ込んだみたいになった。おわりにただし、だからといって(ps).Nameとしてもダメです。このように入力しても、行を移動した途端、こうなりますw自作クラスにオブジェクト型のデフォルトメンバを設定することは、半分可能、ということでいいのでしょうか。»プロフィールid:akashi_keirinExcelVBAネタです。SyntaxHighlighter.all();注目記事はてなブログをはじめよう!akashi_keirinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。