[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:48 / Filesize : 310 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part48



1 名前:デフォルトの名無しさん [2017/05/16(火) 08:24:45.78 ID:iIGA/64l0.net]
!extend:checked:vvvvv:1000:512

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

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

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

※関連スレ
VBAなんでも質問スレ Part2
echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

610 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 13:13:15.38 ID:FN/PeeFU0.net]
>>589
既定のクラスのことだろ

既定のプログラム→既定プログラム
既定の値→既定値

日本語が解るなら既定とクラスから類推出来る

611 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 13:30:09.52 ID:1OFjIP+40.net]
>>590
ひょっとしてクラスとオブジェクト/インスタンスの区別もついてないのか?

612 名前:デフォルトの名無しさん (ワッチョイ 1523-2i+1) mailto:sage [2017/06/10(土) 13:33:07.94 ID:fc8/KSyR0.net]
自作の造語を常識のように語られても…

613 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 14:04:53.91 ID:blUYIu4Y0.net]
その既定のクラスとやらは、いつどんな状況で使われてるの?

まあ>>581に対してなら、基底クラスより規定クラスの方がまだ納得できる文書になるけどな

614 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:10:07.47 ID:FN/PeeFU0.net]
>>592
私は581じゃないけどな

615 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:11:14.32 ID:FN/PeeFU0.net]
>>593
既定のクラスを想定できる状況で使うんじゃね?

616 名前:デフォルトの名無しさん (ドコグロ MM13-UHXl) mailto:sage [2017/06/10(土) 14:15:13.25 ID:aQSdDkWeM.net]
なぜオブジェクトを代入するとき、setをつけないといけないんでしょうか?

他の言語ではそんなことないのに

617 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:21:16.85 ID:FN/PeeFU0.net]
>>592
赤のペン→赤ペン
青の信号→青信号
自動車の教習所→自動車教習所
机の上→机上

抽象化する知能があれば解るよな

618 名前:デフォルトの名無しさん (ワッチョイ db6d-PV39) mailto:sage [2017/06/10(土) 14:33:18.65 ID:kwqfnDcj0.net]
>>597
痛い
それ以上はやめてくれ、頼む



619 名前: []
[ここ壊れてます]

620 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 14:40:44.58 ID:FN/PeeFU0.net]
>>598
旗色が悪くなると誤魔化すんだなw

621 名前:デフォルトの名無しさん (ワッチョイ 2306-OlK+) mailto:sage [2017/06/10(土) 14:41:38.33 ID:VN5tpTLe0.net]
>>596
VBAではそういうルールになってるから。嫌なら使わなければOK

622 名前:デフォルトの名無しさん (ワッチョイ 1523-OlK+) mailto:sage [2017/06/10(土) 14:42:49.77 ID:fc8/KSyR0.net]
それでうまく誤魔化したつもりなのか・・・
嘘に嘘を重ねて、引っ込みがつかない状態で強がられても・・・

623 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 15:12:00.04 ID:1OFjIP+40.net]
>>597
それ抽象化じゃなくて単なる省略だろ w

624 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/10(土) 15:16:38.87 ID:7onqK0zV0.net]
>>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が無いと誤解が増えるよ。

625 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 16:09:54.37 ID:blUYIu4Y0.net]
Setが必要な理由は、デフォルトプロパティへのアクセスなのかオブジェクト(参照)へのアクセスなのか区別できないから

ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された

626 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) [2017/06/10(土) 16:14:05.66 ID:blUYIu4Y0.net]
>>595
俺にはVBAで既定のクラスと言う物を想定できる場面がないからきいてるんだがな

627 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/10(土) 16:23:44.38 ID:kwqfnDcj0.net]
>>581
は規定のクラスという謎の単語を使っていたのか?
それとも基底クラスを何かと間違えているのか?
10秒考えたけど分からなかった

628 名前:デフォルトの名無しさん (ワッチョイ e511-mrwT) [2017/06/10(土) 17:09:39.63 ID:39iXd9D70.net]
>>602
本当にアホなんだな



629 名前:デフォルトの名無しさん (スップ Sd03-3C0K) mailto:sage [2017/06/10(土) 17:10:45.65 ID:LZTdgH18d.net]
Setなあ...
IsObject 判定が必要になる状況ではいつもウザいと感じる

630 名前:デフォルトの名無しさん (ワッチョイ a3b3-YGYj) [2017/06/10(土) 17:23:02.47 ID:F7MRd5sO0.net]
VBAしか知らない俺なんかからしたらSetなんか当たり前じゃんとしか思わん。

ところで、「既定のクラス」って何?

631 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 17:35:30.79 ID:1OFjIP+40.net]
>>607
まだいたのか w
抽象化の意味を調べてから出直してこいよ

632 名前:デフォルトの名無しさん (アークセー Sx71-sCoW) mailto:sage [2017/06/10(土) 17:39:49.82 ID:Ofv2bo9fx.net]
>>597
抽象化?

633 名前:デフォルトの名無しさん (ワッチョイ e511-mrwT) [2017/06/10(土) 18:08:59.12 ID:2cJYycRP0.net]
>>610
https://ja.m.wikipedia.org/wiki/抽象化

これでも意味が理解できないなら救いようがないな

634 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/10(土) 19:11:36.37 ID:kwqfnDcj0.net]
>>609
setは他の言語触ってるとめっちゃめんどくさい。
ついでに言うと比較が「=」なのも糞すぎる。代入か比較かわからん

635 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/10(土) 19:14:23.49 ID:1OFjIP+40.net]
>>612
リンクもまともに貼れないアホ乙 w

636 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/10(土) 19:18:57.08 ID:kLEBGxy40.net]
>>613
そういうのは単純にVBAについての習熟度が低いから混乱するってだけで慣れの問題だし、
なんならC言語処理系の代入演算子が代入した値を返すっていう動作の方が、
仕組み上は原始的で、シンタックス上は冗長的とも言えるしなぁ。

637 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/10(土) 19:32:35.73 ID:cjBRJJZZ0.net]
>>615←ほらまた新たな>>581が現われた、なんやねんこのスレ

638 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/10(土) 19:48:04.56 ID:HZN1Em+70.net]
「規定クラス」とかいかにも公式に定義されてるっぽい言葉を使いながら
抽象化だよわかるだろ、とか
省略だよわかるだろ、とか

>>614
いろいろすまんw



639 名前:デフォルトの名無しさん (ワッチョイ a3b3-YGYj) [2017/06/10(土) 20:04:44.43 ID:F7MRd5sO0.net]
ところで、規定クラスの説明まだかよ!とっとと書けよ

640 名前:デフォルトの名無しさん (ワッチョイ 2391-mrwT) [2017/06/10(土) 20:06:51.92 ID:FN/PeeFU0.net]
>>617
話の筋を混同してる
話しにならない []
[ここ壊れてます]

642 名前:デフォルトの名無しさん (ワッチョイ 1523-2i+1) mailto:sage [2017/06/10(土) 20:13:51.75 ID:fc8/KSyR0.net]
>>619
勘違いしてるのはお前だろ
書き間違いや勘違いでないと思ってるのならちゃんと説明してとっとと終わらせろ

643 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/10(土) 20:20:56.79 ID:kLEBGxy40.net]
そもそも大本の>>577が別におかしな事言ってないのに、
何故か勝手に混乱してる気がするんだけど。

「基底クラス(CellsやRangeに対するWorksheets等)」を省略すると、
あたかもRangeやCellsが何にも属さず単体で存在している様に見えてしまうので、
教育上良くないと言っているだけだろ?

644 名前:デフォルトの名無しさん (ワッチョイ e511-qAom) mailto:sage [2017/06/10(土) 20:31:50.61 ID:+HgNy1AT0.net]
基底クラスのことではないのか…
まあだとしたら意味が違うけど
でもさ、規定って英語で言うとデフォルトだろ
何かちがうかんじが

645 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/10(土) 20:36:39.98 ID:HZN1Em+70.net]
CellsやRangeに対するWorksheets等のことを「基底クラス」と呼ぶなんて、
いくら何でもオレオレ過ぎる

自ら混乱を呼んどいて勝手に混乱するなよ、とか

646 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 20:37:04.09 ID:blUYIu4Y0.net]
>>621
WorksheetsがRangeの基底クラスはあり得んわけですよ
まだそれを既定クラスって用語だと勝手に定義してる方がマシ

647 名前:デフォルトの名無しさん (ワッチョイ 0332-Ell8) mailto:hage [2017/06/10(土) 20:55:32.09 ID:/gz2q8SE0.net]
おれのほうが詳しい()
でスレ埋めるのやめろマヌケ共

648 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/10(土) 20:58:47.80 ID:kLEBGxy40.net]
>>624
ああ、そうか。
継承しているわけではなくてメンバーだから基底クラスではなく親クラスか。
俺も(たぶん)>>577と同じ勘違いしてたわ。

しかしなんでそんな喧嘩腰なんだ。何を主張したいのか推測して訂正すれば荒れずに済んだんじゃないか?
言葉を間違えているだけで主張がおかしいわけではないんだし。



649 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 21:06:51.30 ID:blUYIu4Y0.net]
基底クラスに突っ込んでるやつはそんなにいないだろ
きっぱり間違ってるし
そのおおもとの意見そのものにも反対してるやつも見受けられない

それより既定クラスとかいう謎用語を出してつっこまれて
>抽象化する知能があれば解るよな
とかいう、本気でアホなのか誤魔化したかったのか分からんような返しをするから揉めてるんだよ

650 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/10(土) 21:11:46.59 ID:kLEBGxy40.net]
>>627
それこそなんで混乱するのか分からないんだが。
「既に定められたクラス」だろ? 正式な用語じゃないけど漢字見りゃだいたい何を指しているかは分かるだろ。

複数考えられるならどれなのかを聞けばいいだけだし。

651 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) mailto:sage [2017/06/10(土) 21:16:22.17 ID:blUYIu4Y0.net]
だからVBAでの実例出してみろって言われてるだろ
それで納得すれば終わりの話なのに

652 名前:デフォルトの名無しさん (ワッチョイ e511-qAom) mailto:sage [2017/06/10(土) 21:22:35.32 ID:+HgNy1AT0.net]
既定のクラス、だとしてもよくわからんな
まあともかく省略はさせるべきではないよ
まあオブジェクトについてしっかり説明できないといかんから難しいけどな
俺はよくわからん

653 名前:デフォルトの名無しさん (ワッチョイ d56f-D9zB) mailto:sage [2017/06/10(土) 21:37:29.45 ID:3DV/qfOH0.net]
既存クラスって言いたかったんじゃね?
既定クラスは日本語としても意味がわからんな
どーでもいい話題だが

654 名前:デフォルトの名無しさん (ワッチョイ 2332-Ell8) mailto:hage [2017/06/10(土) 21:39:47.31 ID:ZCyQEzNl0.net]
おれのほうが詳しい()
でスレ埋めるのやめろマヌケ共

655 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/10(土) 21:40:10.24 ID:kLEBGxy40.net]
>>629
俺は既定のプログラムとか、既定値とかって例からして、
MS側が作って公式に提供しているクラスを既定クラスと言っているもんだと思ったけど。

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

いずれにしても何も考えずに「なにそれ」って言うよりも先に、自分から進んで例を出せば角も立たなかったと思うよ。

656 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/10(土) 21:42:04.24 ID:cjBRJJZZ0.net]
どーでもいいかねえ
無知の教えたがりってのは言わば無能な働き者と等価なんだよなあ
存在自体が害悪でしかないわ

657 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/10(土) 22:11:30.10 ID:kwqfnDcj0.net]
まだやってたのか?
規定クラスなんて釣りに決まってるだろう
無駄な時間を過ごしてご苦労さん

658 名前:デフォルトの名無しさん (ワッチョイ 1523-2i+1) mailto:sage [2017/06/10(土) 22:13:24.23 ID:fc8/KSyR0.net]
>>635
考えた上で答えがわからないんじゃなかったのかよw



659 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/10(土) 22:24:00.52 ID:HZN1Em+70.net]
Set はいやだ

以上

660 名前:デフォルトの名無しさん (ワッチョイ a311-EUTm) mailto:sage [2017/06/10(土) 23:27:12.17 ID:qdVNuGxa0.net]
>>604
わかりやすい。ずっと疑問だったんだ

661 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/10(土) 23:40:28.71 ID:HZN1Em+70.net]
>>604
Dim a As ***

a = 他のオブジェクト

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

で十分区別できると思うけど?

662 名前:デフォルトの名無しさん (ワッチョイ 7de4-yugn) [2017/06/10(土) 23:58:16.76 ID:blUYIu4Y0.net]
>>639
デフォルトプロパティは代入先(左辺)でも使えるんだぜ
aのデフォルトプロパティへの代入かaへの参照の代入か区別できんだろ

663 名前:デフォルトの名無しさん (ワッチョイ 7dcf-f9xN) [2017/06/11(日) 00:19:36.88 ID:/WpsuQpF0.net]
ヒカル 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年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい

664 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 00:29:53.21 ID:P5Uv9Xu70.net]
>>640
うーんそうか。
だが敢えて言わせてもらうがそういうコードはクソだ

665 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 00:31:10.41 ID:P5Uv9Xu70.net]
とは言ったもののどうしようもねえのか
誰だデフォルトプロパティなんて作った奴は

666 名前:デフォルトの名無しさん (ワッチョイ db6d-wxle) mailto:sage [2017/06/11(日) 00:31:49.94 ID:46pYjw9V0.net]
これはこれで便利なんだが、弊害多いよねぇ

667 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 05:51:37.28 ID:eCVTs9al0.net]
>>639
出来ない。

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

そして最後の例はSetを付ければあり得る。
その場合当然オブジェクト。

668 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 07:45:58.35 ID:P5Uv9Xu70.net]
>>645

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

Printは代入文じゃないからここでの議論には関係ない。ここはデフォルトプロパティ(Value)でいい。
意味論的になにも破綻しないと思う。



669 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 08:20:06.89 ID:P5Uv9Xu70.net]
意味論的ってなんだよw

意味的にも構文的にも

670 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 08:22:28.65 ID:q ]
[ここ壊れてます]

671 名前:49UmmFG0.net mailto: >>645
>>603 程度なら
> Dim var1 As Varient
> var1=Range("A1")
の時点では var1 はセルA1への参照の代入として
> Debug.Print var1
の時点でディフォルトプロパティを取得して表示すればいいだけ
できないのは >>640 の方
[]
[ここ壊れてます]

672 名前:デフォルトの名無しさん (ワッチョイ 7d3d-OlK+) mailto:sage [2017/06/11(日) 09:54:43.68 ID:Tl5W6+aa0.net]
その手の仕様に関しての「こっちの方がいい」は何を言おうが変わりようがないので意味ないけどな。

673 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 10:53:34.91 ID:eCVTs9al0.net]
>>646
ハァ...
疲れるわ。

だから>>639の言うように***がVarientなのにオブジェクトへの参照じゃない。
そしてSetが無くて良いなら最後の例も認めなければならない。
そうすると>>639の言うような区別がつかないことになる。

674 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 10:56:21.93 ID:eCVTs9al0.net]
>>648
実際に真ん中の例は動作している。
Set無しで。
その時点でデフォルトプロパティが代入されていることになる。

675 名前:デフォルトの名無しさん (ワッチョイ 23aa-3C0K) mailto:sage [2017/06/11(日) 10:57:57.11 ID:P5Uv9Xu70.net]
>>650
疲れると言われてもねぇ

君はなにか根本的なところで勘違いしてない?

676 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 10:59:57.17 ID:P5Uv9Xu70.net]
>>650

君は>>639の主張を理解していないんじゃない?

677 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 11:05:46.55 ID:P5Uv9Xu70.net]
念のため言っておくけど自分は>>639だよ

678 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/11(日) 11:08:37.85 ID:ED3vqoUB0.net]
キミらはvbaの仕様策定委員にでもなったつもりなのかね?
既に過去のものになりつつあるマクロ言語の



679 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 11:12:48.87 ID:P5Uv9Xu70.net]
>>655
その点は>>649の言う通りだけどそういう議論(遊び)だからいいんだよw

680 名前:デフォルトの名無しさん (ワッチョイ dd8b-Loth) [2017/06/11(日) 11:15:00.15 ID:ED3vqoUB0.net]
>>656
いつから議論をしていると勘違いしていた?

681 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:15:11.60 ID:eCVTs9al0.net]
>>653
よく分からんな。
>>639>>603の真ん中の例形になっていると思うんだが違うのかい?

682 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 11:18:50.23 ID:q49UmmFG0.net]
>>651
「今のVBA」の話と「Set を無くしたVBA」の話の区別もつかないなら話に入ってくるなよ

683 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:22:02.96 ID:eCVTs9al0.net]
>>659
だからSetを無くしたVBAでは今は動作してない最後の例も認めることになるだろ。

真ん中の例はデフォルトプロパティ、最後の例はオブジェクトだ。
区別つかないんじゃね?って話なんだが。

684 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:26:05.68 ID:eCVTs9al0.net]
それともSetを無くしたVBAでは真ん中の例も今動いてる状態と違ってオブジェクトへの参照を代入する仕様になる?

685 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 11:28:30.89 ID:P5Uv9Xu70.net]
>>658

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

>>603の下
=代入文は参照、Print文はプロパティを明示しているから曖昧さはない

686 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 11:32:11.23 ID:q49UmmFG0.net]
>>660
代入時点で区別する必要はなくて Print 時点で判断すればいいだけって話
>>648 を理解できてないなら絡んでくるなよ

687 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 11:38:19.86 ID:P5Uv9Xu70.net]
>>661
Yesだ
>>639はそう書いている

688 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:47:41.80 ID:eCVTs9al0.net]
>>662
ということは、今動いてる状態とは違う仕様になるということだな。

そうすると、
Dim var1 As Variant
var1=Range("A1")+1
はエラーとなる?



689 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:52:36.50 ID:eCVTs9al0.net]
>>663
それは間違い。
代入時点で決まらなければ区別がついていないことと同じ。
次の文まで不定なら言語仕様が滅茶苦茶になる。

690 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 11:58:44.94 ID:eCVTs9al0.net]
Dim var1 As Variant
var1=Range("A1")+1
では先にRange("A1")+1が評価されるからその時点でデフォルトプロパティに+1された値がvar1に代入されてうだな。

う〜ん。

691 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 12:02:43.42 ID:P5Uv9Xu70.net]
>>667
そりゃそうだろ。
式の両辺の型によって挙動が決まるんだから。

692 名前:デフォルトの名無しさん (ワッチョイ db6d-pTGz) mailto:sage [2017/06/11(日) 12:02:50.72 ID:46pYjw9V0.net]
他のオフィススイートについてるスクリプトには、デフォルトプロパティってあるの?

693 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 12:06:35.73 ID:q49UmmFG0.net]
>>666
お前の能力だと滅茶苦茶になるだけだろ w
滅茶苦茶になる例のひとつでも書いてみろよ

694 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/11(日) 12:08:58.69 ID:46pYjw9V0.net]
そもそもなんでデフォルトプロパティなんて面白い物を作ったんだ
入門の敷居をできるだけ下

695 名前:ーるために、.value・.valeu2・text、などを考えなくていいようにしたんだろうか []
[ここ壊れてます]

696 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 12:12:28.05 ID:eCVTs9al0.net]
>>670
デバックでステップ実行してみろ。
1行1行解釈実行されるのが基本。
後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。
構文エラーはプログラム全体を評価するまで決まらないことになる。

697 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 12:18:03.12 ID:eCVTs9al0.net]
>>668
君の仕様では式の両辺の型で挙動が決まらない。
var1=Range("A1")ではオブジェクト
var1=Range("A1")+1ではデフォルトプロパティとなるけど、今んとこ辻褄は合っているようにも見えるから、う〜んと考えている。

698 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/11(日) 12:22:52.52 ID:46pYjw9V0.net]
Range("A1") = Range("A1")



699 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 12:52:35.79 ID:q49UmmFG0.net]
>>672
> 後の文により前の文の解釈が変わる言語なんて滅茶苦茶だぞ。

バカなの?
理解力ないのに無理すんなよ w
> var1=Range("A1")
の解釈変わってないぞ

700 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 13:30:16.95 ID:eCVTs9al0.net]
>>675
日本語が変なんじゃね?

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

代入時点で区別する必要ないということはどういうこと?
代入時点で確定してるなら区別もできてる筈だし。

701 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 13:32:39.14 ID:eCVTs9al0.net]
>>675
君の説明では
var1=Range("A1")
の段階では型が決まるのか、それとも決まらないのかどっち?

702 名前:デフォルトの名無しさん (ワッチョイ 23aa-3C0K) mailto:sage [2017/06/11(日) 13:42:39.50 ID:P5Uv9Xu70.net]
>>674
変数への代入の話題なのでそれは関係ないよ。
その左辺 Range("A1") は変数ではない。

703 名前:デフォルトの名無しさん (ワッチョイ db6d-qkek) mailto:sage [2017/06/11(日) 13:50:31.78 ID:46pYjw9V0.net]
>>678
変数じゃなければ何だろう?
アプリケーション側で用意されているとは言え、変数ではなかろうか

704 名前:デフォルトの名無しさん (ワッチョイ 5b23-cb7n) mailto:sage [2017/06/11(日) 13:56:28.52 ID:eCVTs9al0.net]
>>674
俺の理解ではそれは左辺の側がデフォルトプロパティかオブジェクトかという話になるから>>640と同じことになると思う。

だからその点では、つまり>>640以外で辻褄が合っていないという例にはならないと思う。

705 名前:デフォルトの名無しさん (ワッチョイ 2311-W6lL) mailto:sage [2017/06/11(日) 14:01:42.55 ID:q49UmmFG0.net]
>>676-677
代入時点で Variant ならオブジェクトの参照を入れときゃいいだけだろ

>> var1=Range("A1")
> の時点では var1 はセルA1への参照の代入として
ってはっきり書いてあるんだから人の日本語にいちゃもんつける前に自分の理解力を省みろよ

706 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/11(日) 14:17:20.73 ID:46pYjw9V0.net]
>>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();

707 名前:デフォルトの名無しさん (ドコグロ MM51-UHXl) mailto:sage [2017/06/11(日) 14:30:41.83 ID:nUk6Os5uM.net]
そういや自作クラスでデフォルトプロパティって作れるの?
作ろうと思ったこともなかった

708 名前:デフォルトの名無しさん (ワッチョイ 23aa-D9zB) mailto:sage [2017/06/11(日) 14:35:03.70 ID:P5Uv9Xu70.net]
www.cpearson.com/excel/DefaultMember.aspx



709 名前:デフォルトの名無しさん (ワッチョイ db6d-yT0o) mailto:sage [2017/06/11(日) 14:38:19.83 ID:46pYjw9V0.net]
>>683
一応作れる
ただ普通は作ろうと思わないレベルでめんどくさいし、そんなもんアテにするような設計にしないだろう

710 名前:デフォルトの名無しさん (アウアウカー Sae1-cb7n) mailto:sage [2017/06/11(日) 14:55:51.72 ID:Rohm8Nl3a.net]
>>681
つまりPrint文は関係無いんだよ。

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

は間違い。
代入時点で区別はついてる。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef