古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net

2015/08/30(日) 19:25:35.12ID:ZYoWCo0d
ここは古代に使われていたVisual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 http://www.google.co.jp/

前スレ VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/

※「まず自分で調べる」クセを身につけよう。
2015/08/30(日) 20:13:09.53ID:bYlp1Mb/
古代かいw
もっと古いのを使ってた俺みたいなのも居るのに!
3デフォルトの名無しさん
垢版 |
2015/08/30(日) 22:17:15.85ID:yXyH/sb5
Virtual Box?
4デフォルトの名無しさん
垢版 |
2015/08/31(月) 18:37:05.24ID:rivrU0JW
古代の言語なんだろうけど、全然使いこなしていないんだよな(w)
2015/08/31(月) 19:46:36.39ID:jP9ITZzN
いにしえの古代兵器がオーパーツであるのは
何時の時代のファンタジーも一緒だ。
6デフォルトの名無しさん
垢版 |
2015/08/31(月) 20:03:30.69ID:rivrU0JW
>>5
ありがと。

>>全然使いこなしていないんだよな(w)
これ自分のことなんだよね。
奥が深いなと思っている。
7ピラフ
垢版 |
2015/08/31(月) 21:13:05.51ID:wO7z46o/
>>5
オーパーツとおパンツって似てるよね。
そういう意味でもファンタジー。
2015/08/31(月) 23:11:07.53ID:Y6bhe27M
古代でBASICといえばN−BASIC辺りを指しそうなもんだけれどな

俺も歳をとったのか
9デフォルトの名無しさん
垢版 |
2015/08/31(月) 23:32:00.26ID:jyeD3XbH
結局スレタイをどうこうしようと
VBに.NET以前のバージョンのVBが存在してることを知らない連中が紛れ込む悪寒
2015/08/31(月) 23:43:15.14ID:01hWgQ/p
そんな奴はいねえよw
VB6以前を知らないのにあえてVBを選択する奴なんかいない。
仮にいてもVBでググれば嫌でもVB6の存在を知ることになる。
2015/09/01(火) 00:23:11.87ID:wPedzAAt
ググればすぐ分かるようなことをスレに質問に来るような連中って結構いるんだぞ
2015/09/01(火) 03:10:46.75ID:ucFEbRDO
>>8
古代BASICならそうかもしれないが、
古代Visual Basicなんだから、N-BASICは当てはまらない。
2015/09/01(火) 10:41:19.76ID:+3KglVLJ
VB6を現役でコーディングしてる奴は、このスレに居るのだろうか?
2015/09/01(火) 10:49:13.53ID:xwXw9Uta
ここにいますよ
新規システムもバリバリ開発してますよ
2015/09/02(水) 03:40:06.42ID:9XthET/f
プログラマー集めて石を投げればJavaやってる奴に当たると言うくらい
Javaが横行している世の中で、VBばかりやってる奴は
相当な希少種だという話を聞いたことがある。
2015/09/02(水) 04:04:12.76ID:3K4sUF7R
Javaの公式APIドキュメントとかで日本語版が用意されているのはJavaのメインの顧客は日本だからか?
VB6がWindows10でも使えるようになったのもやはり日本がVB6のメインの顧客だから?
2015/09/02(水) 10:03:25.09ID:XnPLTkTO
C→C++→Java→VB6→VB.NETと来て、VB6がメインな俺は貴重な存在
ほんとは早いうちに.NETに移行したいけど、予算や納期がまにあわん
客もフレームワークかえたら余分な金かかるだけだろってわかってるから
動くうちは当面VB6だわ

>>16
アメリカでもVB6は現役、もし未だにVB6つかってんのが日本だけじゃとっくに切られてると思うわ
2015/09/02(水) 14:54:25.69ID:opT5h4j/
サードパーティー製のOCXとか使えなくなったりしないの?
グラフとかグリッドとかその他もろもろ。
2015/09/02(水) 23:04:45.52ID:u5IS45iw
VB6の開発ってXPでやってんの?
こわい…
2015/09/03(木) 00:23:12.55ID:+HvViDsO
>>19
とりあえず7では動いてるけど
2015/09/03(木) 00:25:17.11ID:+HvViDsO
ちなみにVB5も7の64bitで動いてるw
2015/09/03(木) 07:17:08.99ID:01Uqm8mv
俺の周りでは.netに移行してもvb6ののりでしかやってないやつばっか
2015/09/03(木) 08:37:05.16ID:+FWa6+Fk
俺は逆に.NETのノリでVB6やってる
2015/09/03(木) 08:50:53.35ID:+FWa6+Fk
名は体を表すって奴か
2015/09/04(金) 10:40:10.79ID:rDB03Y74
まだwindows2000のPC使ったコントローラが動いてて…
2015/09/04(金) 10:50:38.04ID:0PfiOP4I
うちなんかNT4のシステムが・・・VB5で・・・ううっ・・・
2015/09/04(金) 13:48:19.11ID:P30cuLvZ
DOS機のフロッピーに組んだQuickBasicシステムが調子悪いっていう問合せがきた・・
さすがに勘弁してほしい・・
中古のHDD積んでWin98とVB5で造り直してやろうかなw
2015/09/05(土) 09:59:37.90ID:d+nPX/+M
劣化させてどうする
2015/09/05(土) 11:00:30.93ID:LItP0M3y
QuickBasicは通信が出来たから
通信対戦テトリス作った記憶がある

電子専門学校行ってた俺の卒業論文代わりである
2015/09/05(土) 13:11:06.99ID:Gxkfhkbm
>>28
ISAのハード積んでるのよ、これが。
どうやらそれ自体は生きてるみたいだからデバドラの事情でその辺の時代までしか進化させられないんだよね。
2015/09/05(土) 13:27:46.40ID:Cz8/DWsg
古代ってつけるから、古いBASICの話が盛り上がってしまうではないか
2015/09/05(土) 13:31:33.70ID:o8zNmTx0
自分MSX-BASICいいすか?
2015/09/05(土) 14:37:27.25ID:IJjvRwCO
VBじゃないからだめです
2015/09/05(土) 14:49:55.04ID:6dKeptfV
古代っていうからファルコムと何か関係があるのか思った
2015/09/05(土) 15:05:34.42ID:IJjvRwCO
古代が古代がススムくん
2015/09/05(土) 18:32:08.84ID:LItP0M3y
>>34
祐三なら今、世界樹と不思議のダンジョンの音楽作ってたみたいだぞ
37デフォルトの名無しさん
垢版 |
2015/09/06(日) 09:50:20.09ID:JSf18249
>>27
マジかw
38デフォルトの名無しさん
垢版 |
2015/09/12(土) 16:59:48.38ID:t9wfuOfk
前スレで例外処理についてやってたみたいだけど
なるべくエラー行を特定するためにも
On Error Resume NextとErr.Clearでなんとかするって自分内で結論した
つまりエラーになる予測が立つメソッドを呼び出す時は呼び出す側が責任を持つけど
それより上の親とかは関知しない
処理が進まない致命的なエラーなら子に状態を返させて親が終了したりするけど

VBの例外機構ってネストの概念がないからOn Error Goto
とか凝ったことやろうとすると破綻する気がする
2015/09/14(月) 07:24:03.22ID:XpNdN7EG
>>38
いきなり結論覆して申し訳ないけど、そもそもエラーになる予測がつくところなら先にチェックしないか?

予測がつかない実行時エラーは中断するべきだろうから
親というよりは最上階層まで影響が出ることになるかも知れないし。

なるべくエラー行を特定したいと言うのも、どうせOn Error Resume Next使うということは
その先でエラーが起きたかどうかの分岐を入れるつもりなんでしょ?

そもそもそんな作りにするくらいの長い関数を作るつもりなのかを先に聞きたい。
2015/09/14(月) 13:29:24.17ID:B32AStzW
>>39
ファイルオープンするために、いちいちファイルの存在チェックとか、パーミッションのチェックするの?
それでOKになったとしても、誰かが排他オープンしてて、オープン失敗とかあるかもだし。
2015/09/14(月) 22:17:38.65ID:LFTlT8XD
>>40
ファイルの存在チェックくらいするだろうけどまぁいいや。

その辺を実行時エラーで捕まえるのはいいとしても、
責任?はもう少し考えた方がいいと思う。

例えば分散トランザクションとか、2度以上に渡って段階的にロールバックが必要で、
それぞれ別の階層で行われるような場合とか。

責任を与えるとしたらOnErrorが書いてあるところの責任はエラー情報の収集、
それ以外はそれぞれの処理に合わせて臨機応変になると思うよ。
2015/09/15(火) 10:17:12.18ID:SaBsU2Jv
>>41
責任について会話したつもりはないし、するつもりはない。

アトミックな動作で成功か失敗かわかるのに、わざわざ不十分で不要なエラーチェックを
事前にして、なおかつそれでOKでもさらに失敗する可能性があるようなことを勧めるのは
どうかと思っただけ。

socket.connectしてみれば、有効なネットワークI/Fが無いところから、ホスト名が解決できない、
解決はできたが接続不可、接続タイムアウト、そして予見可能なさまざまなエラーが
わかるんだが。
2015/09/15(火) 11:46:03.38ID:JvEHO3WV
>>39
> そもそもエラーになる予測がつくところなら先にチェックしないか?

実行時エラーっていうのは、先にチェックが出来ないものなんだよ。
先にチェックした所で意味が無い。(例外はある)

例えば、ファイルが有るか? を調べた後に別プロセスが消したらどうする?
データベースに接続できるか?をチェックした後に接続が切れたらどうする?
ロックかけられるか?を調べた後に別プロセスがロックしたらどうする?

先にチェックするという考えをしたら
それは間違いだと思ったほうがいい。
2015/09/15(火) 11:49:07.19ID:gSnYO4lD
VB6と関係ないプログラミング一般論で熱くなるなよ…
そもそもVB6に常識は通用しない(キリッ
2015/09/16(水) 10:30:16.72ID:mu6Nh8e2
>>43
Windowsはファイルオープン後にファイルが消される心配はない、つまりオープンでエラーチェックすればいい
データベース接続にしても、実際にコネクトだしてみて成功か失敗かで判定するから何の問題もない
先にロックされていたらロック待ちに入るだけだから何の問題もない、タイムアウトするまで気長に待てばいい
トランザクション開始後に何かエラーがおきても、とりあえずロールバックだせばいい
それにロールバック前にプロセスが死んでもTPモニタがトランザクションを回収してくれるから安心していいぞ
分散トランだろうろうがローカルトランだろうが、そこらへんは同じだ
2015/09/16(水) 10:37:18.52ID:LGFhZh75
>>45
実行時エラーを、事前にチェックで発生しないように出来はしないって話
話わかってないなら参加しないでね。

あと、そこに書いてあること、
全部間違いだから。
2015/09/16(水) 10:57:59.80ID:mu6Nh8e2
ははは、単に書いてあることが理解できなかっただけでしょ
ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ
いろいろ糞なSymfowareでもさえそんなことしないぞ
2015/09/16(水) 11:17:08.96ID:R+VbjL5L
当たり前だけど>>46の方が正しいね。
このレベルが議論になるってプログラマ1年生かよw

前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。
2015/09/16(水) 11:56:19.64ID:YuKIFw84
>>48
> 前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。

同一人物じゃないの?
2015/09/16(水) 13:04:52.20ID:LGFhZh75
>>47
> ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ

http://www.kitagawa-hanga.com/se/s_vberr.html#EJ005
> Q:実行時エラー'''-2147217900(80040e14) ロックできませんでした。
> A1:ACCESSのDBが開いていた。

それにもともとデータベースのロックとは書かれてないので
ファイルのロックの可能性もある。
2015/09/16(水) 13:14:41.01ID:LGFhZh75
実行してみなければ、実行できるかどうかわからないことがある。
ということを理解できるかどうかという壁があるんだと思うね。

外部リソースを使うようなもの。
例えばファイルとかデータベースとかは
どんな操作でも実行時エラーになる可能性がある。

例えば、大量のデータを書き込んでる途中で
ネットワークが切れたらどうするの?とか
ディスクがいっぱいになったらどうするの?とか

こういうのは書き込み前にいくらチェックした所で
問題なく処理が完了するかどうかはわからない。
2015/09/16(水) 14:01:11.69ID:YuKIFw84
なんか話がずれてきた感があるな。

そういう本当に実行してみるまでわからない場合じゃなくて、わかる場合でさえ、ほとんどの場合は
事前エラーチェックなんて不要だって話なんだが。

例えば、ファイルオープンチェック前のファイル存在チェックなんかいらないとか。
(ファイルが存在しない場合にオープンエラーになるケース)
5351
垢版 |
2015/09/16(水) 14:24:42.20ID:jSlc/S3C
>>52
俺の定義では、ファイルのオープン前の存在チェックは
「実行するまでわからない」に含まれています。

なぜなら、存在チェックした後で
ファイルが消される可能性があるから。

実行する前にわかるものは0除算チェックとかね。

ただ重要な事はアプリを作る上では原則としてどこの行でも
実行エラーが発生するかもしれないという前提で作ること。
2015/09/16(水) 16:23:38.81ID:YuKIFw84
>>53
> 俺の定義では、ファイルのオープン前の存在チェックは
> 「実行するまでわからない」に含まれています。
俺もそうだよ。

実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。
同じこと何回も言ってる気がする。
2015/09/16(水) 17:17:25.48ID:mu6Nh8e2
>>51
大量書込みの場合は、書き込み処理前の空き容量チェックと
write実行時の両方でエラーチェックするのが当然なんだけど
なんで事前チェックが不要だと思ったのかが聞きたいな
2015/09/16(水) 17:25:43.66ID:YuKIFw84
>>55
どうでもいいけど、ファイルを読み込みオープンする前にファイルの存在チェックはするの?
2015/09/16(水) 18:52:08.86ID:jSlc/S3C
>>55
事前チェックは単なるユーザビリティ用。

例えば空き容量チェックをすることで
30分たってからエラーになるよりも
その前にわかったほうが、ユーザビリティは良い。

だがこれはディスクに空き容量があることの保証にはならない。
なぜならチェックした後に、他のプロセスが書き込んで
チェックした時よりも減ることがあるからだ。

だから事前チェックは「空き容量があるだろうチェック」であり
そのチェックを通っても、空き容量がないというエラーが発生することがある。

簡潔に言うと
・事前チェック=必ずしも必要ではないう(追加でやっても良い)
・実行時エラー=必ず必要
2015/09/16(水) 18:53:59.05ID:jSlc/S3C
>>54
> 実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。

俺は最初から、事前エラーチェックはしなくても良い
してもいいが、事前にチェックした項目でも、エラーが発生することがある
って言ってるんだが?
2015/09/17(木) 09:08:13.33ID:2NbfNrXr
>>56
ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?
2015/09/17(木) 09:08:47.80ID:dsY8MwhC
>>56
するときもあるし、しないときもある

するときっていうのは、>>57のいっているようなユーザビリティのためってことが多い
処理が何フェーズかに分かれていて、それぞれ処理に数分かかり使うファイルが異なる
ような場合だと、あらかじめ各フェーズで使用するファイルやその他処理実行に必要な
要件を満たしているかを、すべてチェックしてから最初のフェーズを開始したほうが
何十分も処理したあげく途中で失敗してユーザを落胆(もしくは激怒)させる可能性が低くなる

しないときは、それが必要のない時とか、そんなプログラム書くのが面倒くさくなった時も含まれる
61デフォルトの名無しさん
垢版 |
2015/09/17(木) 09:34:15.59ID:A4RYA4mG
なんで、あんたらVB6と無関係な話を延々とし続けるんだ?
2015/09/17(木) 14:53:34.39ID:sALNH7F9
>>59
> ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?

ファイルリストボックスに列挙されてなくても、ファイルがある時はあるし、
列挙されていても、ファイルがないときもある。
2015/09/18(金) 14:02:13.93ID:xE1yl799
VBだとフォーム上のコントロールにデータをもたせると比較的簡単にプログラムが組めてしまうから
逆にプログラマがバカなまま育たないのかも知れないな
最初からVBしかやってない人と、ほかの言語からVBに来た人では、
データ構造とかエラーチェックに対する考え方がまるで違う気がする
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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