[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
823(1): 2019/05/10(金)13:15 ID:SsAAf7AE(1/2) AAS
VBA勉強中のものです。
Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。
どんなときに使うのか、教えてもらえるとありがたいです。
824: 2019/05/10(金)16:53 ID:SsAAf7AE(2/2) AAS
Excel VBA 質問スレで質問してみます。お邪魔しました m( _ _ )m
825: 2019/05/12(日)02:32 ID:0u/cIV/f(1) AAS
>>823
オブジェクトなら同じものを頻繁に扱うときにコーディングミスをしにくくなる。
毎回、名前でアクセスしていると、ちょっとしたことで、別のものを間違って扱う可能性が高まって、実行時エラーを発生させやすくなる。
定数化していれば防げるが、定数のスコープを大きくしないといけないので、定数の値を変えるときにあっちこっちを確認しながら、直すことになり面倒なことになりやすい。
826: 2019/05/13(月)13:34 ID:p6Zrf1zY(1) AAS
object型の初期状態はNothing
参照先が存在しない場合もNothing返るのがあってis式で判定できる
一方でvariantの初期状態はemptyなのでis式がエラーになる
827(3): 2019/05/13(月)18:12 ID:/95lNMvT(1) AAS
オブジェクトの値がNothingかどうかで判断するロジックはセンスがいいとは思えない。
828(1): 2019/05/13(月)22:51 ID:RqskJpsp(1) AAS
Typenameとか列挙定数とかポインタ関数の値で判定するのが良いわな
829(1): 2019/05/13(月)23:46 ID:4/CDP/BQ(1) AAS
自分で変数の値をコントロールしているのに、Nothingかどうかをあちこちで確認しているクソプログラマと1年前に仕事した。
830(1): 2019/05/14(火)08:31 ID:BLcva127(1) AAS
>>827
ライブラリ側は何で判定すべきなんだ?
それともNothingを渡されたら挙動は未定義とするとか?
831: 2019/05/14(火)11:18 ID:4FRIObo4(1) AAS
>>830
そのライブラリは他人が作ったものなのか?自分が作ったものなのか?
832: 2019/05/14(火)11:29 ID:5X9vxJLP(1) AAS
判定すべきものが、誰が作ったかによって変わる?
833(1): 2019/05/14(火)12:37 ID:W+bs/bzK(1) AAS
ライブラリに状態を持つプロパティがあればいい。
他人が作ったものを使うしかなく、オブジェクトがNothingかどうかでしか判断できないのなら、そうするしかない。
834: 2019/05/14(火)13:35 ID:UTGAJPws(1/2) AAS
>>833
ライブラリ関数が引数として受け取ったオブジェクトをどうNullチェックするかの話だぞ?
835(1): 2019/05/14(火)16:16 ID:E8REZJpG(1) AAS
いきなりライブラリと言われても何のことやらわからない。
836(1): 2019/05/14(火)17:30 ID:UTGAJPws(2/2) AAS
>>835
>>827 が「オブジェクトの値がNothingかどうかで判断するロジック」って言ってるじゃん。
ある関数がオブジェクトを受け取ったときの判断方法の話だと思うんだけど、
自分はライブラリ作者なのでその場合どうするのがいいのか気になった。
837(1): 2019/05/14(火)21:45 ID:s0Vi/y5R(1) AAS
普通にエラーでブレイクすればいいじゃん
838: 2019/05/14(火)22:22 ID:jcYCvcdA(1) AAS
>>837
エラーとは限らないけど変数の状態に応じて処理を分けたいと言うのはある。
空のオブジェクトに対してはまた空を返すとかね。
>>829の言ってることはわかるんだけど、>>827と>>828の主張がわからん。
Nothing判定はシンプルだけどTypeNameやenumだともっと分岐のパターンが増えちゃうじゃん。
839: 2019/05/14(火)23:23 ID:+OBjJPst(1) AAS
>>836
世の中、変なやつがいて、オブジェクト変数に値をセットして、何も変わるはずがないのに、直後にオブジェクト変数の値がNothingかどうか判定するコードを書くやつがいる。
840: 2019/05/14(火)23:30 ID:KmX6ljlC(1) AAS
代入が成功したかどうか確認するテクニックも存在するから、そういう分野からの転職かな?
具体的には、コンパイラの型チェックを使った裏技だったり、ハードウェアの故障チェックなんかで使われる
841: 2019/05/15(水)00:37 ID:yOOg6UjC(1) AAS
直後であってもサブルーチンに分かれてるなら
入力情報のチェックを行うのは普通のこと
842: 2019/05/15(水)02:24 ID:MwugOkQt(1/3) AAS
なんか例のCプログラマがしつこいけど、いまどき関係ない別プロセスがメモリ上の値を書き換えたりするミスは、OSレベルでもCPUレベルでもあるので、持論を批判されていると思って反論しなくていいよ。
ここは漠然としたVBAのスレッドだから、見ているひとにはあなたの言うことは難しくて理解できないと思うよ。
スルー力がないのか、寂しくてかまってほしいのか知らないけど、要はクソコードを書くなと言ってるだけだ。
843: 2019/05/15(水)02:28 ID:MwugOkQt(2/3) AAS
なんでVBAスレで組み込み系のショボいハードウェアでのプログラミングを語っているのか?
ハードウェア、OS、ミドルウェア、プログラミング言語によって考え方やどこまで想定するのかは全然、違うからいっしょくたにしないでもらいたい。
844: 2019/05/15(水)02:29 ID:O3OiMSIx(1) AAS
一般ユーザー権限のアプリで別プロセスのメモリにアクセスできたのは、平成どころか昭和時代の話ですよ、おじいちゃん
希にOSやCPUのバグ騒ぎが起きますが、そんなのは例外中の例外なんで普通は気にしなくていいことです
845: 2019/05/15(水)02:37 ID:MwugOkQt(3/3) AAS
Windows 95、98、98SE、MeがいつのOSかもわからないのか
846: 2019/05/15(水)05:12 ID:TahQLJDH(1) AAS
そこまでわかってるのに、タチの悪いやつだな
847: 2019/05/15(水)16:00 ID:D3RbfE7K(1) AAS
イベント用インスタンスはPublicでやるの?
848(1): 2019/05/15(水)20:12 ID:XVltvZnu(1) AAS
せっかくのイベントなのにPrivateにしたら星飛雄馬のクリスマスパーティーみたいになるじゃん
849: 2019/05/15(水)20:14 ID:RIeke8Yt(1) AAS
>>848
座蒲団3枚あげる
850(1): 2019/05/15(水)20:49 ID:WHH9UP0v(1) AAS
何か面白いこと言った?
全然わからない。
興味あるからなぜ面白いか教えて?
851: 2019/05/16(木)02:08 ID:Ab5DOH6n(1) AAS
>>850
ニコ動
動画リンク[ニコニコ動画]
852(1): 2019/05/16(木)14:30 ID:wWtnEH3A(1/2) AAS
コード書く画面を
背景は黒に、文字は白に、する方法を教えれ
上下前次1-新書関写板覧索設栞歴
あと 150 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.011s