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


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

くだすれVB6.0以前(超初心者向け)



1 名前:d mailto:age [2008/03/30(日) 09:01:59 ]
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします


前スレ
くだすれVB6.0以前(超初心者向け)
pc11.2ch.net/test/read.cgi/tech/1165574205/

152 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:37:52 ]
VB6でクラスモジュールを「使うこと」にこだわってるのってあんま意味がないように思えるが。
例えば、桁数合わせ(左スペース埋めみたいな)関数とか桁数切り取り(左7バイト切り取り)関数のようないわゆるよくある共通関数は標準モジュールに並べるほうが良いと思う。
単なる関数群をクラスモジュールに記述されていると、何か意図的なものがあるのか考えてしまう。


153 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:48:58 ]
共通関数はUtilクラスにまとめる

154 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:02:14 ]
>>153
なんであえてクラスなの?

155 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:05:03 ]
変数関数ともにC#やC++のstatic、VB.NETのsharedに当たる機能がない。
VBのStaticキーワードは別物。たまにそれでバグを作ってるのを見かける。
少なくともUtilクラスをNewして使うようなことはしたくないな。
そんなときはモジュールでしょ。

156 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:08:47 ]
本来staticは無いほうがいいんだよ

157 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:19:28 ]
VB6のクラスをCOMコンパチにしてしまったのが広まらなかった原因のように思えるな。


158 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:00:49 ]
なんつーか、>>146みたいな考え方するやつって何で多いんだろう。
そういう奴って言語仕様とか特性って考えないのかな。
今流行のコーディング思想とかには言語の垣根をすぐ越えて飛びつくけど、
自分が開発している言語でいかにいいプログラムを作るかを考えようとは思わないよな。
保守性、拡張性、メモリの取り方や開放の仕方・タイミングなどなど。
今関わっているプロジェクトに今使っている言語でいかにいいものが提供出来るか、という前提のもとに開発しているとは思えん。
そんなやつはどこいってもただの半端者だろう。
オブジェクト指向とか言語の移植とかを自慢げに語っている時点でピントがずれてる。
そんな大層なことでもないしw

159 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:07:06 ]
まあ、向上心もなくVB6しかやったことなければ
クラスモジュールなんか使わないよね。
使わなくてもものは作れるもん。でもそれでいいのかな。

160 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:15:05 ]
>>159
クラスも使うし、JAVAとVB.NETもメインでやってるけど、
VB6で開発する時にオブジェクト指向を意識することはない。



161 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:23:30 ]
今の言語と比べるのは酷というものだ

162 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:23:33 ]
>>160
オブジェクト指向って意識してやるもんでもないでしょ?
自然とオブジェクト指向脳になるでしょ?


163 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:31:27 ]
>>162
オブジェクト指向脳って言われても困るが、
無意識にクラスを多用してるかと言われるとそうなのかもしれない。
でも、クラスモジュールにする必要がなけりゃ標準モジュールで実装するよ。

164 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:31:32 ]
Utilクラス作って、標準モジュールでインスタンス化して使いまわすんでしょ。

165 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:49:29 ]
Utilクラスなんて作りません。

166 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:17:37 ]
>>158みたいな人も困るw

>>146はたぶんVBでそれなりの規模のコードを書いたことがないだけで、
言ってることがそんなに間違ってるわけじゃないよ。

167 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:33:00 ]
大規模なコードを書けば書くほど、標準モジュールを多用するのが適切だというのか?
アホじゃないの?逆だろ。
規模が大きくなるほどカプセル化して依存性やソース変更の影響範囲を狭めようとするのが常識。
どこからでも直接呼ばれ得る膨大な関数群で出来てる巨大プロジェクトなんて
絶対メンテしたくねーw

てゆうか、すでに死んだ言語の標準モジュールの是非について熱く語るのもアホらしい。。

168 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:35:49 ]
>>167
だからそこはお前さんの言ってることは正しいから
意味なく煽るような書き方するなって。

自分が幼稚なガキじゃないと思いたいならね。

169 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:12:29 ]
クラスを使う使わないで盛り上がれるのはVB6だけ!

170 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:17:39 ]
訂正)VB6で盛り上がれるのはこのスレだけ! 



171 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:22:41 ]
>>167
意味的なまとまりごとにmoduleを分ければいいだけの話

172 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:27:17 ]
そういう問題じゃない。

173 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:55:56 ]
どういう問題だよ

174 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:59:46 ]
クラス分けは一種の差別だから撤廃しましょうって問題。

175 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:20:49 ]
>>167
それは合ってる。
だが逆に極端な例を出せば、標準モジュールのmainに100step程度書けば実装出来るようなものも出来るわけだ。
要するにクラスを使う→正、標準を使う→誤 みたいな固定観念を持っていること自体がおかしいのよ。
それに気づいてくれ。

176 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:53:16 ]
クラスモジュールを一度も使ったことが無く、存在意義も知らない奴が多いことを問題視してるんだが。
>>142みたいに使うことを禁止してるような職場など論外。
よほどレベルが低い人間が集まってるんだろう。

「クラスモジュール使わなくても大規模なソフトを作れてるよ。特に困ってないよ。」
とかいうけど、そういう考えの奴がチームに一人でも居ると、まともなプログラマが迷惑するんだよ。

今時オブジェクト指向を理解しようとしない奴なんてプログラム書く資格ないよ。

177 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:57:53 ]
資格とか、そういう非技術的な話題はどうでもいいよ。

178 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:27:56 ]
短納期で納品後あぷでーとなし。顧客の満足するバグがでないプログラムであったら、
ソースがどんな書き方されててもかんけーねーよ。メンテしないんだから。
俺はその手の納品を何件もみてきたが、C長くやっててクラスがなんたるか理解できて
ないけど、腕はたしか。で、標準モジュールだけでかかれてた奴が軽快に動作して
バグなし、しかも短納期なのをみてると、ほんと口だけの奴はどーでもいいよ。

ま、しかし、どとねっと案件は、怖くて発注できませんわなw

179 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:32:18 ]
煽るつもりはないけど、>>178ってダメグラマーの典型的な言い訳に聞こえるよ。

180 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:38:26 ]
俺の経験したのは、
ほとんどの関数をCで書いてDll化。
DeclareでVBから呼び出し。Formがほとんど。
っていう納品のされ方なんだが、DllのソースがVC++なんで
メンテのときVBと両方みるのが素人のおれには、ややつらい。
構造体の受け渡しとかめんどーなんだよな。



181 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:42:27 ]
>>178のようにはなりたくないと素直に思った。

182 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:48:12 ]
VB6でちょっと手の込んだようなことやろうとするとどうしてもWin32APIの
お世話にならんといかんからなー。じゃ、結局C++でやっちゃえよ、って
ほうにいってから作るから180みたいなのは非常に多い。

183 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:50:26 ]
全部VC++でいいじゃんと思うのだけどなぁ
わざわざDLLにして呼ぶくらいならなぁ
MFC使えば生産性も2倍も変わらないと思うんだけどなぁ

184 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:33:29 ]
自分のレベルでも人のレベルでもなく、中間のレベルに皆が合わせて開発すればうまくいくんじゃね?

185 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:14:45 ]
問題は、中間というのが皆の思う所より随分低いようだということ。

186 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:45:29 ]
メンテもいらないし軽快に動いてるから
グローバル変数やgoto文使いまくりでもOKと同類の主張する人がいるスレはここですか?

187 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:10:16 ]
偉そうなおまいらはそんなことはないと思うが、
一応それなりの数のソース見てきた俺としてはだな。
コメントは「コメント」をつけろ!
ゴミ変数残しとくな!
これ出来ていないソースがむっちゃくちゃめちゃいけ多い。
'ここで日付の入力を非活性化にする とか

とか書いてんの。アホか。ソースの日本語訳なんていらんわ!

188 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:30:29 ]
なんでそこで「めちゃイケ」入れたん?

189 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:51:28 ]
動かない綺麗なコードより、動くコードのほうが金になる。

190 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:00:08 ]
>>187
コメント無しのソースを、読む練習をすると良い。
まぁ、変なコメント付いてるといらつくんだが、修正跡は全文残しておいて欲しいし(その一つの修正がバグの原因になる事も多い)
書いてる人が読めないソースになるのも本末転倒だしな。
愚痴るよりは、その人にソースの書き方をアドバイス。

  上司だったりしたら目も当てられんが。



191 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:29:41 ]
修正跡はCVSのほうでコメント残ってりゃいいや

192 名前:デフォルトの名無しさん [2008/10/07(火) 23:42:23 ]
本当にカナリの初心者で
最近クラスについて勉強中なのですが
ちょうどクラスモジュールと標準モジュールのことが話題に
のぼっていたので質問させてください。

私の中では
「クラスモジュールでやれることはクラスモジュールでやり、
それ以外は標準モジュールで」
という認識でした。
あとは、標準モジュールは
・プログラムで汎用的に使われるメソッドや変数
をおくべき場所なのかなぁって。

結局のところ上の議論が集結していなくて答えが分からなかったのですが
認識は正しいのでしょうか?
クラスモジュールと標準モジュールの使い分け方や
クラスについて正しい理解がしたいので教えてください。

193 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 23:49:47 ]
そんなことはいいから他の言語を学べ
そうすれば自然にわかってくる

194 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:13:06 ]
言い方はどうかと思うがその通りだね。

そもそも今からVB6を学ぶってどうなの、って感は否めないけど
仮にそれが避けられないとしても、先にC#なりVB.NETなりで今時のプログラミングの
考え方をマスターしてからやった方が、回り道のようで案外早いと思う。

まあ、VB.NETとかに慣れちゃうと、なまじ中途半端に似てる分
VB6のダメさが目についてイライラするかもしれんけど。

195 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:26:32 ]
>192
>・プログラムで汎用的に使われるメソッドや変数
メソッドはともかく変数はどうだろうな?と個人的には思うなぁ。
標準モジュールにPublic変数の宣言書いちゃうのは個人的には禁止したい。

196 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 10:57:14 ]
標準モジュールに書いていいのは
sub main()

だけ

197 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 11:23:35 ]
クラスモジュールのグローバルなインスタンスを標準モジュールに書くということはある。

198 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 11:57:55 ]
グローバルのインスタンスが許されるのは1個まで

199 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:29:17 ]
何いってんだ?
グローバル変数はすべての基本。
全てグローバル使ってこそ本物。

200 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 21:10:10 ]
>>199
了解した、その手筈でやってみるZE!



201 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 15:37:04 ]
グローバルマンセー!!!

202 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:08:55 ]
VBのまともなソースを未だにみたことないので参考にしたいのですが
どなたかありませんかね?リンクでもいいです。

203 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:06:51 ]
>>202
まず202氏の書いている『まともなソース』を頼む。

204 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:42:01 ]
VBでまともなソースってそもそも無理難題。ましてや絶滅寸前でメンテナンス案件しか残ってないんだし。

205 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:20:50 ]
俺はまともだ

206 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:27:17 ]
VB6の最終使用日みたら2072年になってた

207 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:05:05 ]
つまり、目の前にあるぐちゃぐちゃなソースはまともなソースである可能性が高い。
そういうことでしょうか?

208 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:10:13 ]
ぐちゃぐちゃなら、まともではないでしょ。

209 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:13:50 ]
みてみたい、みてみたいのぅ。まともな奴を、一生に一度でも。。。

210 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:15:56 ]
歌丸です?



211 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:27:36 ]
homepage2.nifty.com/nonnon/
例えば、このあたりのソースは、どんなもんです?
英単語の綴りミスや、関数のコメントが冗長なのが気になりますが
結構好みです。

212 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:44:39 ]
>>211
暗号のやつとかみてみたけど、それほどきれいじゃないね。

213 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:48:54 ]
俺は、コメントがC++風なのが好みだな
html埋め込みも可
'///////////////////////////
'//
'///////////////////////////

もしくはJavaDoc風。 C#風なのはいいのだがXMLがださい。

214 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:55:56 ]
>211
そのサイトのどれだろう
FTPと文字列変換クラスしか見てないけど、いいと思う。
機能数が増えてもこの感じを維持できれば十分だ。

215 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 23:07:56 ]
もうちょっと大きい規模の良ソースあればなー。
オープンソース文化がVBになかったのが、技術あがらない原因のひとつだとはおもう。

216 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 00:53:03 ]
そんなことはない。
3年ぐらい前まではインターネット上にVB6のソースがどの言語のソースよりも豊富にあった。
ほとんどが英語圏だけどな。

217 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 00:56:37 ]
FTPのをちょっと見ただけだけど、
「好みかどうかで言えば」個人的にはいまいちかなぁ。

関数はcallをきちんと書きたいし、
変数宣言は先頭でまとめたい。
if A then B も
if A then
B
end if
と書きたいかな。

エラー処理はよく出来ているが、ErrRaiseのあとにExit Subが書いてあるのが残念な気がする。

218 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:02:26 ]
お前のソースを出してもらおうか?

219 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:03:00 ]
こういうこと言う奴が現れると思った・・・

220 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:25:30 ]
出せよ



221 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 09:50:12 ]
たっても無いのにそんなに急に出せないっすよww

222 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 18:31:22 ]
>>217
「1行で完結するからインデントする必要ない」として、解釈するようにしている。
インデントはIf〜End If等の構造の始点と終点を見るための物なので、
Ifを1行だけの場合は、EndIf含めて3行も使う必要性が無い。
ソースを縦に延ばすと逆に見難くなってしまう挙句に
If文如きでインデントしてると(If文は頻繁に出てくる傾向があるので…)インデントが不必要に多くなってしまって
忘れた後でソースを見た時に目も当てられん状況になる。

私的にはこの様な感じで構造的な形式を取る場合以外はEnd Ifが出てくる状況を避ける様にしている。
 If hoge = n Then
  If hogehoge = nn Then
   hogehogehoge = nnn
  End If
 End If

1行で済ませるのが通常の条件判定、
End Ifが含まれるのが構造の条件判定…と言った形もお勧めしてみる。

223 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 18:53:51 ]
Call使いたがる人って、引数の括弧が無いと落ち着かない人かな?
組み込み関数もCallしてるの?

224 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:05:52 ]
>>223
人それぞれだろうね。
自作した関数の呼び出しはCallでやってる人とか、
戻り値を捨ててる目印にしている人とか。

225 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:42:56 ]
俺は、ピーターノートンで学んだから
if A then
B
end if
派だな。
あと引数をはっきりとわからせるようCallも付ける派。

226 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 00:36:08 ]
というか、callを省略するメリットってどれほど?
関数を明示することと、callをつけて戻り値有無を表すといったメリットをなくすほどのものなのか
俺はコメントをきちんと書くのと同じレベルの感覚だから、ちゃんとつけるってだけ。

227 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:39:15 ]
わざわざCallを付けるほうが、何かの意図があるかと思うけどね。
Functionの戻り値を無視する意図があるとか。

228 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:44:28 ]
質問です。

if((条件式A = False ) or (条件式B = False ) ) then
  処理(チョメチョメ)
end if

こういうif文で、条件式A、BそれぞれがBoolean値を返す関数
であった場合、デバッグ時の処理の流れとビルド後のEXEの
処理の流れが変わることがあったんです。

デバッグ時は条件式Aの後に条件式Bの順番だったんだけど
EXEでデバッグポイント代わりのmsgboxをいれてたら
条件式Bを示すmsgboxの後に条件式Aのmsgboxが出てきた
ので、デバッグ時と異なっているのは明らかなんです。

こういう現象の発生する原因って何だろうと思ったんですけど
ご存知の方いらっしゃいますか

また、環境ですが
開発PCがXPPro(SP3) ,VB6(SP6) ,IE7
実可動のPCが2003R2(SP2) ,IE7

となります。
よろしくお願いします。


229 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:49:56 ]
そこから導き出される結論は、特定の評価順所を期待したコードを書いてはいけないってことになるのでは?

230 名前:228 mailto:sage [2008/10/15(水) 10:43:03 ]
ごめんなさい、今起きました。
(久々の休みだったもので・・・)

>>229
そのとおりです。

条件式Bはその直前の条件式Aによって出力値の影響を受けてしまいます。
ちなみに、この現象XPでExeを走らせると発生しなくて、2003でExe走らせると
おきたんです。

ちなみに、似たようなソースを書いて検証したのですが、それでは
EXE環境でもXP,2003問わず、こちらの意図している
「条件式Aの評価」後に「条件式Bの評価」を行うのです。

なので、余計に前述の現象が奇異なものにみえたので
この現象が「なぜ起きるんだ?」という知的探究心(好奇心のほうが正しい?)
と気になったわけなんです。

ソースはけっきょく
if 条件式A = false then
if 条件式B = false then
ちょめちょめ
end if
else
いやんばかん
end if

になりました。



231 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:17:27 ]
賭けてもいい。
絶対228の勘違いだと思う。

232 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:41:01 ]
> 条件式Bはその直前の条件式Aによって出力値の影響を受けてしまいます。
こういう設計って一般的なの?

233 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:41:49 ]
a + b のどっちが先に評価されるかなんてことに依存するコードを書こう
なんてやつを相手にすんな

234 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:47:11 ]
>>232
それは普通。VB.NETなら
if 条件式A AndAlso 条件式B then


235 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:45:53 ]
副作用を伴って、なおかつお互いに関連がある関数は、複数if-conditionには書かないのが
どんな言語でも普通。

236 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:07:50 ]
>>235
15年くらい前ならそう言ってもよかったんだが、
最近はショートサーキット演算子があるのが普通だな。
PerlあたりのLL、Java、JavaScript、VB.net・・・例外はCくらいか。


237 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:10:38 ]
だよねえ。
ってああ、思い出した、これだ。

msdn.microsoft.com/ja-jp/library/sect4ck6.aspx

> トラブルシューティング
>
>  実行順序。Visual Basic では、演算効率を高めるために数式が自動的に
>  並べ替えられることがあります。このため、変数の値を変えてしまうような
>  Function プロシージャを数式の中で実行しないようにしてください。

238 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:12:17 ]
>>237のだよねえは>>235宛だったんだけど>>236に否定されてるな。まあいいか。

239 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:20:53 ]
そしてリンク先がVB2008のヘルプだった。まあ該当部分はVB6でも一緒なんで。

240 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:35:01 ]
>>236
Cだって&&と||は短絡評価だ。



241 名前:228 mailto:sage [2008/10/15(水) 23:55:34 ]
>>237
そういうことだったんですね。目から鱗です。

皆様の貴重なご意見身に染みました。
有難うございました。

242 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 00:52:12 ]
vb6でAndAlsoを代替するなら

if not 条件式A then
elseif 条件式B then

end if


243 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 01:00:49 ]
(複雑な式の)数値演算の順序と単純な論理演算の順序の問題は
普通に考えればまったく別問題だろう。
目からうろこが落ちてどうする。
だから間違いなくお前さんの勘違いだから。

244 名前:デフォルトの名無しさん [2008/10/16(木) 01:28:11 ]
Dim txt As New TextBox
→Newキーワードの使用法が不正です。

これってどうしてでしょうか?
クラスである以上Newできるのが当然と思っているのですけど
できなくてすごく疑問です。


245 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:46:48 ]
質問する前にVBのヘルプを読め。
New で 検索掛ければ 出てくる筈だ。

246 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 04:31:12 ]
>>240
そうだった。算術演算子と勘違いしてた。

247 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 13:45:09 ]
Andはどっち?

248 名前:244 mailto:sage [2008/10/18(土) 18:21:41 ]
キーワード New を使って、固有のデータ型の変数の宣言、または従属オブジェクトのインスタンスの宣言はできません。
→CreateObject または New を使用して従属オブジェクトを作成することはできません
 →クラスの従属オブジェクトからオブジェクトを作るには、クラス モジュールの Instancing プロパティに PublicNotCreatable を設定します。

従属オブジェクトってことですね。

249 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:28:05 ]
>>248
違うと思う。普通に New できるもん。

TextBox ってのの定義と、プロジェクトの種類を教えて。

250 名前:245 mailto:sage [2008/10/18(土) 20:01:02 ]
>>248
Newにカーソル置いてF1押してるだけだとそのヘルプは出てこないから、
キーワードのヘルプだけでやってるとそこらでドツボにハマる。
というか、私もハマった一人なんだがな。なので、教えるのに若干くどい手段に。

ただ、>>248で従属オブジェクトと言ってるのは多分違う。
>>248の言っている従属オブジェクトと言うのは、
自作したクラスの中にTextBoxを丸ごと包括してたりする場合などを示す。
と言う訳で、Newの仕様を理解した所で回答。(宣言時のNewは自作Class専用みたいな物。)
ヘルプで探してもナイスな方法が出てこなかった気がするので説明添えてサンプル提示してみる。



Controls.Addで追加してそれを参照する形でNewの代用とする。
※txtNewは作成されるコントロール名なので複数Addする際は重複不可。
動的に割り当てる場合、大概は複数作る筈なのでindexに配列値を入れて、
Set Txt(index) = Me.Controls.Add("VB.TextBox", "txtNew" & format(index))
と言う形で作成する。
'--------------------------------始
Dim Txt(1) As TextBox
Set Txt(0) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(0))
Set Txt(1) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(1))
'--------------------------------
'単発版
Dim Txt1 As TextBox
Set Txt1 = Me.Controls.Add("VB.TextBox", "txtNew1")
'--------------------------------終
これを走らせると、定義したformにtxtNew1と言うオブジェクト名を持つTextBoxを作成し、
参照の設定を終えた形になる。
ただし、Me.Controlsの数は255以下とされていて、それを超えて生成しようとすると失敗する。
「際限なくコントロールを作成できるボタン」等を作成する場合は、
カウント数を見ながらエラートラップすべし。



251 名前:デフォルトの名無しさん [2008/10/19(日) 12:40:44 ]
コントロール配列にすれば良いじゃん

252 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 20:17:00 ]

ハード(分解能=1μs)のタイマとソフトのタイマ使ったソフト仕事で作ってるんですが
VB6のタイマの分解能って実際50msぐらいなんですか?Windowsのタイマの分解能が1msらしいですが、、、






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

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

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