Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
垢版 |
2017/05/16(火) 08:24:45.78ID:iIGA/64l0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489557874/

※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/06/10(土) 14:15:13.25ID:aQSdDkWeM
なぜオブジェクトを代入するとき、setをつけないといけないんでしょうか?

他の言語ではそんなことないのに
597デフォルトの名無しさん (ワッチョイ 2391-mrwT)
垢版 |
2017/06/10(土) 14:21:16.85ID:FN/PeeFU0
>>592
赤のペン→赤ペン
青の信号→青信号
自動車の教習所→自動車教習所
机の上→机上

抽象化する知能があれば解るよな
2017/06/10(土) 14:33:18.65ID:kwqfnDcj0
>>597
痛い
それ以上はやめてくれ、頼む
599デフォルトの名無しさん (ワッチョイ 2391-mrwT)
垢版 |
2017/06/10(土) 14:40:44.58ID:FN/PeeFU0
>>598
旗色が悪くなると誤魔化すんだなw
2017/06/10(土) 14:41:38.33ID:VN5tpTLe0
>>596
VBAではそういうルールになってるから。嫌なら使わなければOK
2017/06/10(土) 14:42:49.77ID:fc8/KSyR0
それでうまく誤魔化したつもりなのか・・・
嘘に嘘を重ねて、引っ込みがつかない状態で強がられても・・・
2017/06/10(土) 15:12:00.04ID:1OFjIP+40
>>597
それ抽象化じゃなくて単なる省略だろ w
2017/06/10(土) 15:16:38.87ID:7onqK0zV0
>>596
Dim str1 As String
str1=Range("A1")
Debug.Print str1
は分かるよね。

Dim var1 As Varient
var1=Range("A1")
Debug.Print var1
も分かるでしょ。

じゃ、
Dim var2 As Varient
var2=Range("A1")
Debug.Print var2.Left
というのは有り得るかという話。

Setが無いと誤解が増えるよ。
2017/06/10(土) 16:09:54.37ID:blUYIu4Y0
Setが必要な理由は、デフォルトプロパティへのアクセスなのかオブジェクト(参照)へのアクセスなのか区別できないから

ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された
605デフォルトの名無しさん (ワッチョイ 7de4-yugn)
垢版 |
2017/06/10(土) 16:14:05.66ID:blUYIu4Y0
>>595
俺にはVBAで既定のクラスと言う物を想定できる場面がないからきいてるんだがな
2017/06/10(土) 16:23:44.38ID:kwqfnDcj0
>>581
は規定のクラスという謎の単語を使っていたのか?
それとも基底クラスを何かと間違えているのか?
10秒考えたけど分からなかった
607デフォルトの名無しさん (ワッチョイ e511-mrwT)
垢版 |
2017/06/10(土) 17:09:39.63ID:39iXd9D70
>>602
本当にアホなんだな
2017/06/10(土) 17:10:45.65ID:LZTdgH18d
Setなあ...
IsObject 判定が必要になる状況ではいつもウザいと感じる
609デフォルトの名無しさん (ワッチョイ a3b3-YGYj)
垢版 |
2017/06/10(土) 17:23:02.47ID:F7MRd5sO0
VBAしか知らない俺なんかからしたらSetなんか当たり前じゃんとしか思わん。

ところで、「既定のクラス」って何?
2017/06/10(土) 17:35:30.79ID:1OFjIP+40
>>607
まだいたのか w
抽象化の意味を調べてから出直してこいよ
2017/06/10(土) 17:39:49.82ID:Ofv2bo9fx
>>597
抽象化?
612デフォルトの名無しさん (ワッチョイ e511-mrwT)
垢版 |
2017/06/10(土) 18:08:59.12ID:2cJYycRP0
>>610
https://ja.m.wikipedia.org/wiki/抽象化

これでも意味が理解できないなら救いようがないな
2017/06/10(土) 19:11:36.37ID:kwqfnDcj0
>>609
setは他の言語触ってるとめっちゃめんどくさい。
ついでに言うと比較が「=」なのも糞すぎる。代入か比較かわからん
2017/06/10(土) 19:14:23.49ID:1OFjIP+40
>>612
リンクもまともに貼れないアホ乙 w
2017/06/10(土) 19:18:57.08ID:kLEBGxy40
>>613
そういうのは単純にVBAについての習熟度が低いから混乱するってだけで慣れの問題だし、
なんならC言語処理系の代入演算子が代入した値を返すっていう動作の方が、
仕組み上は原始的で、シンタックス上は冗長的とも言えるしなぁ。
616デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/10(土) 19:32:35.73ID:cjBRJJZZ0
>>615←ほらまた新たな>>581が現われた、なんやねんこのスレ
2017/06/10(土) 19:48:04.56ID:HZN1Em+70
「規定クラス」とかいかにも公式に定義されてるっぽい言葉を使いながら
抽象化だよわかるだろ、とか
省略だよわかるだろ、とか

>>614
いろいろすまんw
618デフォルトの名無しさん (ワッチョイ a3b3-YGYj)
垢版 |
2017/06/10(土) 20:04:44.43ID:F7MRd5sO0
ところで、規定クラスの説明まだかよ!とっとと書けよ
619デフォルトの名無しさん (ワッチョイ 2391-mrwT)
垢版 |
2017/06/10(土) 20:06:51.92ID:FN/PeeFU0
>>617
話の筋を混同してる
話しにならない
2017/06/10(土) 20:13:51.75ID:fc8/KSyR0
>>619
勘違いしてるのはお前だろ
書き間違いや勘違いでないと思ってるのならちゃんと説明してとっとと終わらせろ
2017/06/10(土) 20:20:56.79ID:kLEBGxy40
そもそも大本の>>577が別におかしな事言ってないのに、
何故か勝手に混乱してる気がするんだけど。

「基底クラス(CellsやRangeに対するWorksheets等)」を省略すると、
あたかもRangeやCellsが何にも属さず単体で存在している様に見えてしまうので、
教育上良くないと言っているだけだろ?
2017/06/10(土) 20:31:50.61ID:+HgNy1AT0
基底クラスのことではないのか…
まあだとしたら意味が違うけど
でもさ、規定って英語で言うとデフォルトだろ
何かちがうかんじが
2017/06/10(土) 20:36:39.98ID:HZN1Em+70
CellsやRangeに対するWorksheets等のことを「基底クラス」と呼ぶなんて、
いくら何でもオレオレ過ぎる

自ら混乱を呼んどいて勝手に混乱するなよ、とか
2017/06/10(土) 20:37:04.09ID:blUYIu4Y0
>>621
WorksheetsがRangeの基底クラスはあり得んわけですよ
まだそれを既定クラスって用語だと勝手に定義してる方がマシ
2017/06/10(土) 20:55:32.09ID:/gz2q8SE0
おれのほうが詳しい()
でスレ埋めるのやめろマヌケ共
2017/06/10(土) 20:58:47.80ID:kLEBGxy40
>>624
ああ、そうか。
継承しているわけではなくてメンバーだから基底クラスではなく親クラスか。
俺も(たぶん)>>577と同じ勘違いしてたわ。

しかしなんでそんな喧嘩腰なんだ。何を主張したいのか推測して訂正すれば荒れずに済んだんじゃないか?
言葉を間違えているだけで主張がおかしいわけではないんだし。
2017/06/10(土) 21:06:51.30ID:blUYIu4Y0
基底クラスに突っ込んでるやつはそんなにいないだろ
きっぱり間違ってるし
そのおおもとの意見そのものにも反対してるやつも見受けられない

それより既定クラスとかいう謎用語を出してつっこまれて
>抽象化する知能があれば解るよな
とかいう、本気でアホなのか誤魔化したかったのか分からんような返しをするから揉めてるんだよ
2017/06/10(土) 21:11:46.59ID:kLEBGxy40
>>627
それこそなんで混乱するのか分からないんだが。
「既に定められたクラス」だろ? 正式な用語じゃないけど漢字見りゃだいたい何を指しているかは分かるだろ。

複数考えられるならどれなのかを聞けばいいだけだし。
2017/06/10(土) 21:16:22.17ID:blUYIu4Y0
だからVBAでの実例出してみろって言われてるだろ
それで納得すれば終わりの話なのに
2017/06/10(土) 21:22:35.32ID:+HgNy1AT0
既定のクラス、だとしてもよくわからんな
まあともかく省略はさせるべきではないよ
まあオブジェクトについてしっかり説明できないといかんから難しいけどな
俺はよくわからん
2017/06/10(土) 21:37:29.45ID:3DV/qfOH0
既存クラスって言いたかったんじゃね?
既定クラスは日本語としても意味がわからんな
どーでもいい話題だが
2017/06/10(土) 21:39:47.31ID:ZCyQEzNl0
おれのほうが詳しい()
でスレ埋めるのやめろマヌケ共
2017/06/10(土) 21:40:10.24ID:kLEBGxy40
>>629
俺は既定のプログラムとか、既定値とかって例からして、
MS側が作って公式に提供しているクラスを既定クラスと言っているもんだと思ったけど。

それだと大本の話と繋がらないから、
あるいはActiveSheetのターゲットがCellsを単体で実行する前に決まるから、
Cellsから見てActiveSheetが「既に定められて」省略された親クラスであるから既定クラスと言っているか。

いずれにしても何も考えずに「なにそれ」って言うよりも先に、自分から進んで例を出せば角も立たなかったと思うよ。
634デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/10(土) 21:42:04.24ID:cjBRJJZZ0
どーでもいいかねえ
無知の教えたがりってのは言わば無能な働き者と等価なんだよなあ
存在自体が害悪でしかないわ
2017/06/10(土) 22:11:30.10ID:kwqfnDcj0
まだやってたのか?
規定クラスなんて釣りに決まってるだろう
無駄な時間を過ごしてご苦労さん
2017/06/10(土) 22:13:24.23ID:fc8/KSyR0
>>635
考えた上で答えがわからないんじゃなかったのかよw
2017/06/10(土) 22:24:00.52ID:HZN1Em+70
Set はいやだ

以上
2017/06/10(土) 23:27:12.17ID:qdVNuGxa0
>>604
わかりやすい。ずっと疑問だったんだ
2017/06/10(土) 23:40:28.71ID:HZN1Em+70
>>604
Dim a As ***

a = 他のオブジェクト

と書いたとき、*** がオブジェクト型もしくはVariant ならオブジェクトへの参照
そうでなければデフォルトプロパティへのアクセス

で十分区別できると思うけど?
640デフォルトの名無しさん (ワッチョイ 7de4-yugn)
垢版 |
2017/06/10(土) 23:58:16.76ID:blUYIu4Y0
>>639
デフォルトプロパティは代入先(左辺)でも使えるんだぜ
aのデフォルトプロパティへの代入かaへの参照の代入か区別できんだろ
641デフォルトの名無しさん (ワッチョイ 7dcf-f9xN)
垢版 |
2017/06/11(日) 00:19:36.88ID:/WpsuQpF0
ヒカル TV出演「年間5億は稼ぐ勢いですね」
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&;t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&;t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&;t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&;t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ

最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
2017/06/11(日) 00:29:53.21ID:P5Uv9Xu70
>>640
うーんそうか。
だが敢えて言わせてもらうがそういうコードはクソだ
2017/06/11(日) 00:31:10.41ID:P5Uv9Xu70
とは言ったもののどうしようもねえのか
誰だデフォルトプロパティなんて作った奴は
2017/06/11(日) 00:31:49.94ID:46pYjw9V0
これはこれで便利なんだが、弊害多いよねぇ
2017/06/11(日) 05:51:37.28ID:eCVTs9al0
>>639
出来ない。

せっかく>>603の例を挙げたのに。
真ん中の例を見てね。
この場合はSet付いてないからデフォルトプロパティ。

そして最後の例はSetを付ければあり得る。
その場合当然オブジェクト。
2017/06/11(日) 07:45:58.35ID:P5Uv9Xu70
>>645

>>603の真ん中の例だって?
> Dim var1 As Varient
> var1=Range("A1")
> Debug.Print var1

Printは代入文じゃないからここでの議論には関係ない。ここはデフォルトプロパティ(Value)でいい。
意味論的になにも破綻しないと思う。
2017/06/11(日) 08:20:06.89ID:P5Uv9Xu70
意味論的ってなんだよw

意味的にも構文的にも
2017/06/11(日) 08:22:28.65ID:q49UmmFG0
>>645
>>603 程度なら
> Dim var1 As Varient
> var1=Range("A1")
の時点では var1 はセルA1への参照の代入として
> Debug.Print var1
の時点でディフォルトプロパティを取得して表示すればいいだけ
できないのは >>640 の方
2017/06/11(日) 09:54:43.68ID:Tl5W6+aa0
その手の仕様に関しての「こっちの方がいい」は何を言おうが変わりようがないので意味ないけどな。
2017/06/11(日) 10:53:34.91ID:eCVTs9al0
>>646
ハァ...
疲れるわ。

だから>>639の言うように***がVarientなのにオブジェクトへの参照じゃない。
そしてSetが無くて良いなら最後の例も認めなければならない。
そうすると>>639の言うような区別がつかないことになる。
2017/06/11(日) 10:56:21.93ID:eCVTs9al0
>>648
実際に真ん中の例は動作している。
Set無しで。
その時点でデフォルトプロパティが代入されていることになる。
2017/06/11(日) 10:57:57.11ID:P5Uv9Xu70
>>650
疲れると言われてもねぇ

君はなにか根本的なところで勘違いしてない?
2017/06/11(日) 10:59:57.17ID:P5Uv9Xu70
>>650

君は>>639の主張を理解していないんじゃない?
2017/06/11(日) 11:05:46.55ID:P5Uv9Xu70
念のため言っておくけど自分は>>639だよ
655デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/11(日) 11:08:37.85ID:ED3vqoUB0
キミらはvbaの仕様策定委員にでもなったつもりなのかね?
既に過去のものになりつつあるマクロ言語の
2017/06/11(日) 11:12:48.87ID:P5Uv9Xu70
>>655
その点は>>649の言う通りだけどそういう議論(遊び)だからいいんだよw
657デフォルトの名無しさん (ワッチョイ dd8b-Loth)
垢版 |
2017/06/11(日) 11:15:00.15ID:ED3vqoUB0
>>656
いつから議論をしていると勘違いしていた?
2017/06/11(日) 11:15:11.60ID:eCVTs9al0
>>653
よく分からんな。
>>639>>603の真ん中の例形になっていると思うんだが違うのかい?
2017/06/11(日) 11:18:50.23ID:q49UmmFG0
>>651
「今のVBA」の話と「Set を無くしたVBA」の話の区別もつかないなら話に入ってくるなよ
2017/06/11(日) 11:22:02.96ID:eCVTs9al0
>>659
だからSetを無くしたVBAでは今は動作してない最後の例も認めることになるだろ。

真ん中の例はデフォルトプロパティ、最後の例はオブジェクトだ。
区別つかないんじゃね?って話なんだが。
2017/06/11(日) 11:26:05.68ID:eCVTs9al0
それともSetを無くしたVBAでは真ん中の例も今動いてる状態と違ってオブジェクトへの参照を代入する仕様になる?
2017/06/11(日) 11:28:30.89ID:P5Uv9Xu70
>>658

>>603の真ん中
=代入文は参照、Printの引数は文字列なのでデフォルトプロパティ

>>603の下
=代入文は参照、Print文はプロパティを明示しているから曖昧さはない
2017/06/11(日) 11:32:11.23ID:q49UmmFG0
>>660
代入時点で区別する必要はなくて Print 時点で判断すればいいだけって話
>>648 を理解できてないなら絡んでくるなよ
2017/06/11(日) 11:38:19.86ID:P5Uv9Xu70
>>661
Yesだ
>>639はそう書いている
2017/06/11(日) 11:47:41.80ID:eCVTs9al0
>>662
ということは、今動いてる状態とは違う仕様になるということだな。

そうすると、
Dim var1 As Variant
var1=Range("A1")+1
はエラーとなる?
2017/06/11(日) 11:52:36.50ID:eCVTs9al0
>>663
それは間違い。
代入時点で決まらなければ区別がついていないことと同じ。
次の文まで不定なら言語仕様が滅茶苦茶になる。
2017/06/11(日) 11:58:44.94ID:eCVTs9al0
Dim var1 As Variant
var1=Range("A1")+1
では先にRange("A1")+1が評価されるからその時点でデフォルトプロパティに+1された値がvar1に代入されてうだな。

う〜ん。
2017/06/11(日) 12:02:43.42ID:P5Uv9Xu70
>>667
そりゃそうだろ。
式の両辺の型によって挙動が決まるんだから。
2017/06/11(日) 12:02:50.72ID:46pYjw9V0
他のオフィススイートについてるスクリプトには、デフォルトプロパティってあるの?
2017/06/11(日) 12:06:35.73ID:q49UmmFG0
>>666
お前の能力だと滅茶苦茶になるだけだろ w
滅茶苦茶になる例のひとつでも書いてみろよ
2017/06/11(日) 12:08:58.69ID:46pYjw9V0
そもそもなんでデフォルトプロパティなんて面白い物を作ったんだ
入門の敷居をできるだけ下げるために、.value・.valeu2・text、などを考えなくていいようにしたんだろうか
2017/06/11(日) 12:12:28.05ID:eCVTs9al0
>>670
デバックでステップ実行してみろ。
1行1行解釈実行されるのが基本。
後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。
構文エラーはプログラム全体を評価するまで決まらないことになる。
2017/06/11(日) 12:18:03.12ID:eCVTs9al0
>>668
君の仕様では式の両辺の型で挙動が決まらない。
var1=Range("A1")ではオブジェクト
var1=Range("A1")+1ではデフォルトプロパティとなるけど、今んとこ辻褄は合っているようにも見えるから、う〜んと考えている。
2017/06/11(日) 12:22:52.52ID:46pYjw9V0
Range("A1") = Range("A1")
2017/06/11(日) 12:52:35.79ID:q49UmmFG0
>>672
> 後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。

バカなの?
理解力ないのに無理すんなよ w
> var1=Range("A1")
の解釈変わってないぞ
2017/06/11(日) 13:30:16.95ID:eCVTs9al0
>>675
日本語が変なんじゃね?

>代入時点で区別する必要はなくて Print 時点で判断すればいいだけって話

代入時点で区別する必要ないということはどういうこと?
代入時点で確定してるなら区別もできてる筈だし。
2017/06/11(日) 13:32:39.14ID:eCVTs9al0
>>675
君の説明では
var1=Range("A1")
の段階では型が決まるのか、それとも決まらないのかどっち?
2017/06/11(日) 13:42:39.50ID:P5Uv9Xu70
>>674
変数への代入の話題なのでそれは関係ないよ。
その左辺 Range("A1") は変数ではない。
2017/06/11(日) 13:50:31.78ID:46pYjw9V0
>>678
変数じゃなければ何だろう?
アプリケーション側で用意されているとは言え、変数ではなかろうか
2017/06/11(日) 13:56:28.52ID:eCVTs9al0
>>674
俺の理解ではそれは左辺の側がデフォルトプロパティかオブジェクトかという話になるから>>640と同じことになると思う。

だからその点では、つまり>>640以外で辻褄が合っていないという例にはならないと思う。
2017/06/11(日) 14:01:42.55ID:q49UmmFG0
>>676-677
代入時点で Variant ならオブジェクトの参照を入れときゃいいだけだろ

>> var1=Range("A1")
> の時点では var1 はセルA1への参照の代入として
ってはっきり書いてあるんだから人の日本語にいちゃもんつける前に自分の理解力を省みろよ
2017/06/11(日) 14:17:20.73ID:46pYjw9V0
>>678
確かにrangeだとややこしいな、新しいclassを作ってみよう
fooClassとする
fooClassのデフォルトメンバはfoo。fooのclassは自身と同じfooClass
class fooClass{
'この書き方は適当
default public Property foo as fooClass;
}

これだとfooで何が返ってくるか不定
Dim foo as fooClass
foo = New fooClass();
2017/06/11(日) 14:30:41.83ID:nUk6Os5uM
そういや自作クラスでデフォルトプロパティって作れるの?
作ろうと思ったこともなかった
2017/06/11(日) 14:35:03.70ID:P5Uv9Xu70
http://www.cpearson.com/excel/DefaultMember.aspx
2017/06/11(日) 14:38:19.83ID:46pYjw9V0
>>683
一応作れる
ただ普通は作ろうと思わないレベルでめんどくさいし、そんなもんアテにするような設計にしないだろう
2017/06/11(日) 14:55:51.72ID:Rohm8Nl3a
>>681
つまりPrint文は関係無いんだよ。

>代入時点で区別する必要はなくて Print 時点で判断すればいいだけ

は間違い。
代入時点で区別はついてる。
2017/06/11(日) 16:32:41.31ID:TSTIJwyzM
>>682
まあそのケースがまずいのはわかってるがそんなクラスを作る必要がどんだけあるんだ?
って話だな
2017/06/11(日) 16:40:50.47ID:TSTIJwyzM
>>686
> 代入時点で区別はついてる。
だから区別なんてしない
両方ともに参照を入れとくだけ
って書いてあるんだが...
どうやったらそんなアホな考え方になるのか不思議だよ
まあ引っ込みつかなくなってるんだろうな w
2017/06/11(日) 16:45:50.31ID:46pYjw9V0
>>687
わかってるならその反論はおかしいだろう
言語仕様としておかしくなる

デフォルトプロパティがあるなら、setはどうしても発生すると思う
2017/06/11(日) 17:19:36.49ID:q49UmmFG0
>>689
別にそのケースなら参照を返すようにしてディフォルトプロパティは明示する(つまりディフォルトプロパティの意味がなくなる)ようにすればいいだけ
特殊なケースで使えないからと言って全部ダメって言う話ではないでしょ
2017/06/11(日) 17:25:11.30ID:CaL9CXkoa
>>688
引っ込みも何も、今だに何言ってるのか分からん。
とレスしようとしたけど今分かった。


>代入時点で区別する必要はなくて Print 時点で判断すればいいだけ



「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。
2017/06/11(日) 17:36:51.51ID:q49UmmFG0
>>691
> 「代入時点では参照が代入され、Print時点でデフォルトプロパティが返される」といいたいのだとしたら上の文章の日本語が悪いよ。

ほとんどそのまま書いてあるだろ
これはさすがに恥ずかしすぎる w

>>648
>> var1=Range("A1")
> の時点では var1 はセルA1への参照の代入として

>> Debug.Print var1
> の時点でディフォルトプロパティを取得して表示すればいいだけ
2017/06/11(日) 17:37:06.07ID:CaL9CXkoa
fooClassとする
fooClassのデフォルトメンバはfoo。fooのclassは自身と別のhogeClass
class fooClass{
'この書き方は適当
default public Property foo as hogeClass;
}

現在の仕様なら
Dim var1 As Varient
Set var1=New fooClass()
Debug.Print Typename(var1)
'->fooClass

Dim var1 As Varient
var1=New fooClass()
Debug.Print Typename(var1)
'->hogeClass

Set無しの仕様なら
Dim var1 As Varient
var1=New fooClass()
Debug.Print Typename(var1)
->?

こういう問題?
2017/06/11(日) 17:43:49.85ID:CaL9CXkoa
>>692
俺は>>661の段階で真ん中も参照と気付いたわけ。
その後に>>663が書かれているのは日本語が悪いと言ってる。
2017/06/11(日) 17:47:03.90ID:46pYjw9V0
>>690
自身のclassがメンバに〜は普通にある。特殊ではない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況