トップページ > プログラム > 2016年03月13日 > bEOCVA73

書き込み順位&時間帯一覧

2 位/180 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000121000200000107



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
433 :デフォルトの名無しさん[sage]:2016/03/13(日) 10:06:29.58 ID:bEOCVA73
クラスのインスタンス変数(メンバ変数)をPrivateにしたときって、自モジュール内でも他のインスタンスのメンバには直接さわれないの?
other.member = Me.member
がエラーになるんだけど。
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
435 :デフォルトの名無しさん[sage]:2016/03/13(日) 11:42:50.26 ID:bEOCVA73
>>434
自クラスなのに?ダメなの?

やりたいことはcloneメソッドです。

自分と同じ内部データを持ったインスタンスをcloneで作って、一部のメンバだけ変えたい。
具体的には「プラスマイナスの符号だけ異なる別インスタンス」を作りたいんです。
「符号」は単純なプロパティなので、Public なProperty GetとProperty Setを作るつもり。
でもそれ以外な内部状態をあらわすものなので、外部からコントロールさせたくない。

cloneができればいいんだけど。
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
437 :デフォルトの名無しさん[sage]:2016/03/13(日) 11:52:16.25 ID:bEOCVA73
>>436
set clone = New クラス
としたあとの
clone.member = Me.member
ができないので困ってるんですよ。
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
441 :デフォルトの名無しさん[sage]:2016/03/13(日) 12:27:29.00 ID:bEOCVA73
>>439
うーん、どうやらPublicでやるしかなさそうですね。
Public関数から流し込むにはその履歴保持が必要になっちゃうからいったん諦め。。

そもそも自クラスのPrivateにアクセスできない仕様が意味不明だけど。
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
447 :デフォルトの名無しさん[sage]:2016/03/13(日) 16:33:32.91 ID:bEOCVA73
>>444
Friend?
ちょっと試してみるけど、VBAのFriendってどういう効果が生まれるのかググってもいまいちわからんね...
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
449 :デフォルトの名無しさん[sage]:2016/03/13(日) 16:54:13.20 ID:bEOCVA73
privateの意味についてちょっとググってみた

クラスメンバーのアクセス修飾子
https://hydrocul.github.io/wiki/programming_languages_diff/class/modifier.html

C++とJava ⇒ 同一クラスであれば他のインスタンスからもアクセス可能。
Scala のprivateは他のインスタンスからのアクセスが可能なものと不可能なものの2種類あるようだ

VBAの場合はC++やJavaと異なり、他インスタンスからのアクセスも禁止するすごく厳密な仕様なんだな。
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
452 :デフォルトの名無しさん[sage]:2016/03/13(日) 22:15:56.20 ID:bEOCVA73
>>450
まあできないことを愚痴ってもしゃあないんで、適当にヌルーしながらほげふがすることにします。
具体的には単にメソッド一覧に載せないことをもってprivateとするとか...
(swapマジックでなんとかならないかな・・・)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。