TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【java】jdk8も出るし、何か作ってみるか【lambda】
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
今までみた絶望的なソースコード
スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]
ソースコード ホスティング総合【GitHub,GitLab,Bitbucket等】
次世代が造った言語 blawn
テストを書いてからリファクタリングなんてのは幻想
【COBOLから】バッチ処理【Javaまで】
結局開発で最も大切なのはテーブルの正規化と制約
こんなプログラミング言語は嫌だ!

古代VBプログラマ質問スレ(Ver.6.0 まで) part65


1 :2015/08/30 〜 最終レス :2020/04/21
ここは古代に使われていた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.sc/test/read.cgi/tech/1393069842/

※「まず自分で調べる」クセを身につけよう。

2 :
古代かいw
もっと古いのを使ってた俺みたいなのも居るのに!

3 :
Virtual Box?

4 :
古代の言語なんだろうけど、全然使いこなしていないんだよな(w)

5 :
いにしえの古代兵器がオーパーツであるのは
何時の時代のファンタジーも一緒だ。

6 :
>>5
ありがと。

>>全然使いこなしていないんだよな(w)
これ自分のことなんだよね。
奥が深いなと思っている。

7 :
>>5
オーパーツとおパンツって似てるよね。
そういう意味でもファンタジー。

8 :
古代でBASICといえばN−BASIC辺りを指しそうなもんだけれどな

俺も歳をとったのか

9 :
結局スレタイをどうこうしようと
VBに.NET以前のバージョンのVBが存在してることを知らない連中が紛れ込む悪寒

10 :
そんな奴はいねえよw
VB6以前を知らないのにあえてVBを選択する奴なんかいない。
仮にいてもVBでググれば嫌でもVB6の存在を知ることになる。

11 :
ググればすぐ分かるようなことをスレに質問に来るような連中って結構いるんだぞ

12 :
>>8
古代BASICならそうかもしれないが、
古代Visual Basicなんだから、N-BASICは当てはまらない。

13 :
VB6を現役でコーディングしてる奴は、このスレに居るのだろうか?

14 :
ここにいますよ
新規システムもバリバリ開発してますよ

15 :
プログラマー集めて石を投げればJavaやってる奴に当たると言うくらい
Javaが横行している世の中で、VBばかりやってる奴は
相当な希少種だという話を聞いたことがある。

16 :
Javaの公式APIドキュメントとかで日本語版が用意されているのはJavaのメインの顧客は日本だからか?
VB6がWindows10でも使えるようになったのもやはり日本がVB6のメインの顧客だから?

17 :
C→C++→Java→VB6→VB.NETと来て、VB6がメインな俺は貴重な存在
ほんとは早いうちに.NETに移行したいけど、予算や納期がまにあわん
客もフレームワークかえたら余分な金かかるだけだろってわかってるから
動くうちは当面VB6だわ

>>16
アメリカでもVB6は現役、もし未だにVB6つかってんのが日本だけじゃとっくに切られてると思うわ

18 :
サードパーティー製のOCXとか使えなくなったりしないの?
グラフとかグリッドとかその他もろもろ。

19 :
VB6の開発ってXPでやってんの?
こわい…

20 :
>>19
とりあえず7では動いてるけど

21 :
ちなみにVB5も7の64bitで動いてるw

22 :
俺の周りでは.netに移行してもvb6ののりでしかやってないやつばっか

23 :
俺は逆に.NETのノリでVB6やってる

24 :
名は体を表すって奴か

25 :
まだwindows2000のPC使ったコントローラが動いてて…

26 :
うちなんかNT4のシステムが・・・VB5で・・・ううっ・・・

27 :
DOS機のフロッピーに組んだQuickBasicシステムが調子悪いっていう問合せがきた・・
さすがに勘弁してほしい・・
中古のHDD積んでWin98とVB5で造り直してやろうかなw

28 :
劣化させてどうする

29 :
QuickBasicは通信が出来たから
通信対戦テトリス作った記憶がある

電子専門学校行ってた俺の卒業論文代わりである

30 :
>>28
ISAのハード積んでるのよ、これが。
どうやらそれ自体は生きてるみたいだからデバドラの事情でその辺の時代までしか進化させられないんだよね。

31 :
古代ってつけるから、古いBASICの話が盛り上がってしまうではないか

32 :
自分MSX-BASICいいすか?

33 :
VBじゃないからだめです

34 :
古代っていうからファルコムと何か関係があるのか思った

35 :
古代が古代がススムくん

36 :
>>34
祐三なら今、世界樹と不思議のダンジョンの音楽作ってたみたいだぞ

37 :
>>27
マジかw

38 :
前スレで例外処理についてやってたみたいだけど
なるべくエラー行を特定するためにも
On Error Resume NextとErr.Clearでなんとかするって自分内で結論した
つまりエラーになる予測が立つメソッドを呼び出す時は呼び出す側が責任を持つけど
それより上の親とかは関知しない
処理が進まない致命的なエラーなら子に状態を返させて親が終了したりするけど

VBの例外機構ってネストの概念がないからOn Error Goto
とか凝ったことやろうとすると破綻する気がする

39 :
>>38
いきなり結論覆して申し訳ないけど、そもそもエラーになる予測がつくところなら先にチェックしないか?

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

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

そもそもそんな作りにするくらいの長い関数を作るつもりなのかを先に聞きたい。

40 :
>>39
ファイルオープンするために、いちいちファイルの存在チェックとか、パーミッションのチェックするの?
それでOKになったとしても、誰かが排他オープンしてて、オープン失敗とかあるかもだし。

41 :
>>40
ファイルの存在チェックくらいするだろうけどまぁいいや。

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

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

責任を与えるとしたらOnErrorが書いてあるところの責任はエラー情報の収集、
それ以外はそれぞれの処理に合わせて臨機応変になると思うよ。

42 :
>>41
責任について会話したつもりはないし、するつもりはない。

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

socket.connectしてみれば、有効なネットワークI/Fが無いところから、ホスト名が解決できない、
解決はできたが接続不可、接続タイムアウト、そして予見可能なさまざまなエラーが
わかるんだが。

43 :
>>39
> そもそもエラーになる予測がつくところなら先にチェックしないか?

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

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

先にチェックするという考えをしたら
それは間違いだと思ったほうがいい。

44 :
VB6と関係ないプログラミング一般論で熱くなるなよ…
そもそもVB6に常識は通用しない(キリッ

45 :
>>43
Windowsはファイルオープン後にファイルが消される心配はない、つまりオープンでエラーチェックすればいい
データベース接続にしても、実際にコネクトだしてみて成功か失敗かで判定するから何の問題もない
先にロックされていたらロック待ちに入るだけだから何の問題もない、タイムアウトするまで気長に待てばいい
トランザクション開始後に何かエラーがおきても、とりあえずロールバックだせばいい
それにロールバック前にプロセスが死んでもTPモニタがトランザクションを回収してくれるから安心していいぞ
分散トランだろうろうがローカルトランだろうが、そこらへんは同じだ

46 :
>>45
実行時エラーを、事前にチェックで発生しないように出来はしないって話
話わかってないなら参加しないでね。

あと、そこに書いてあること、
全部間違いだから。

47 :
ははは、単に書いてあることが理解できなかっただけでしょ
ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ
いろいろ糞なSymfowareでもさえそんなことしないぞ

48 :
当たり前だけど>>46の方が正しいね。
このレベルが議論になるってプログラマ1年生かよw

前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。

49 :
>>48
> 前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。

同一人物じゃないの?

50 :
>>47
> ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ

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

それにもともとデータベースのロックとは書かれてないので
ファイルのロックの可能性もある。

51 :
実行してみなければ、実行できるかどうかわからないことがある。
ということを理解できるかどうかという壁があるんだと思うね。

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

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

こういうのは書き込み前にいくらチェックした所で
問題なく処理が完了するかどうかはわからない。

52 :
なんか話がずれてきた感があるな。

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

例えば、ファイルオープンチェック前のファイル存在チェックなんかいらないとか。
(ファイルが存在しない場合にオープンエラーになるケース)

53 :
>>52
俺の定義では、ファイルのオープン前の存在チェックは
「実行するまでわからない」に含まれています。

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

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

ただ重要な事はアプリを作る上では原則としてどこの行でも
実行エラーが発生するかもしれないという前提で作ること。

54 :
>>53
> 俺の定義では、ファイルのオープン前の存在チェックは
> 「実行するまでわからない」に含まれています。
俺もそうだよ。

実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。
同じこと何回も言ってる気がする。

55 :
>>51
大量書込みの場合は、書き込み処理前の空き容量チェックと
write実行時の両方でエラーチェックするのが当然なんだけど
なんで事前チェックが不要だと思ったのかが聞きたいな

56 :
>>55
どうでもいいけど、ファイルを読み込みオープンする前にファイルの存在チェックはするの?

57 :
>>55
事前チェックは単なるユーザビリティ用。

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

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

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

簡潔に言うと
・事前チェック=必ずしも必要ではないう(追加でやっても良い)
・実行時エラー=必ず必要

58 :
>>54
> 実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。

俺は最初から、事前エラーチェックはしなくても良い
してもいいが、事前にチェックした項目でも、エラーが発生することがある
って言ってるんだが?

59 :
>>56
ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?

60 :
>>56
するときもあるし、しないときもある

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

しないときは、それが必要のない時とか、そんなプログラム書くのが面倒くさくなった時も含まれる

61 :
なんで、あんたらVB6と無関係な話を延々とし続けるんだ?

62 :
>>59
> ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?

ファイルリストボックスに列挙されてなくても、ファイルがある時はあるし、
列挙されていても、ファイルがないときもある。

63 :
VBだとフォーム上のコントロールにデータをもたせると比較的簡単にプログラムが組めてしまうから
逆にプログラマがバカなまま育たないのかも知れないな
最初からVBしかやってない人と、ほかの言語からVBに来た人では、
データ構造とかエラーチェックに対する考え方がまるで違う気がする

64 :
>>63
> 最初からVBしかやってない人と、ほかの言語からVBに来た人では、
> データ構造とかエラーチェックに対する考え方がまるで違う気がする
だから何なの?

65 :
多分、自分がVBしかやっていないから他の言語から来た人を余計な事をする
馬鹿だと言いたいんじゃない?

66 :
ほかの言語って具体的に何を想定してるんだろうな
VB時代の言語でVBと同程度のRADツールで比べてもそう言う結論になるのかどうか

67 :
delphi…
OSSでこういうのができないものか

68 :
どこからVBと同程度って前提が出てきたんだろう

69 :
>>68
VBと比較するのに同程度じゃないものとくらべる方がおかしくないか?

たとえばアセンブラとVBで
>データ構造とかエラーチェックに対する考え方がまるで違う
って言われても、そりゃそうだとしか思わんが

70 :
なんかWIN7でVB6のIDEが動かなくなったんだけど
MSパッチでもきたのかな。

以下のメッセージが出て

コンポーネント'ComDlg32.OCX'、またはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。
Continue?

以下コマンドを管理者権限で実行しても改善せず。
C:\Windows\regtlib.exe C:\Windows\system32\msdatsrc.tlb

71 :
UACを無効にしても改善されず。分からん。

72 :
自己解決。
regsvr32 /u c:\windows\syswow64\comdlg32.ocx
regsvr32 c:\windows\syswow64\comdlg32.ocx

73 :
Windows10でもVB6のIDE動くの?

74 :
ウゴイタヨ

75 :
>>74
マジデ

76 :
Windows 7/ Windows Server 2008 R2 以降のOS とStrConv関数 – VBStrConv.Wideを使用した文字変換について
http://blogs.msdn.com/b/jpvsblog/archive/2015/10/13/windows-windows-server-2008-r2-os-strconv-vbstrconv-wide.aspx

77 :
過疎化ってるからチラ裏でも良いよね?
>>27だけど、Win2000とVB6で作っちゃったよw
全てにおいで懐かしかったな。
久々のVBいじりだったけど楽しかった。

78 :
そのWin2kはライセンスされてるのかね?

アクティベーションがない時代なんだよね
おれも知り合いの中国人に円盤もらったわ

79 :
VB6プログラマなら、Win98やNTや2Kのパッケージくらい持ってるだろ

80 :
Win98のCDパッケージをポケットに入れて、ポンポンと叩くとあら不思議!
WinNT4.0とWin2kのCDパッケージ二つに…

なるわけないよね…

81 :
最初のVBはWin3.1上のVB2だった
イベントドリブンが何だか分からなくて苦労したが
BASICの232C通信で使うON COM GOTOで既にあったんだよな

82 :
VB2.0は神だったけど作ってた人はdelphiに移ったんだっけ

83 :
VB6のIDEがWindows 10 x64に乗らん
みんなどうしてる?

84 :
>>83
VMware WorkstationのゲストにVB6のIDEが動くWindows 7を入れてその上で使っている
いずれにせよx64でVB6 IDEを使うのは問題が多い
動かんわけではないが

85 :
うちはとりあえずVirtualBox上のXPにインストールして使ってます

86 :
>>83
VB6のインストール時に「データアクセス」のチェックボックスを外すカスタマイズをしてインストールする。
インストールが完了したら、下記2つのSPを導入する

Visual Basic 6.0 Service Pack 6ランタイム再頒布可能パッケージ
VB6.0-KB290887-X86.exe

Visual Basic 6.0 Service Pack 6 累積的な更新プログラム
VB60SP6-KB2708437-x86-JPN.msi

「データアクセス」に相当するコンポーネントはXP以降、Windows側で搭載している
(但しDAO 3.5等一部のコンポーネントは導入されない場合がある)

今更VB6を使ってるアホがいるのかと馬鹿にしていたが
先日、.netとMFCを使わず作れという案件があって使わせてもらったところ

87 :
いまやランタイム個別インストールの要るVBはOKだったのかい

88 :
>>87
VB6の日本ランタイムはXP以降では個別インストールは不要

?Msvbvm60.dll
?Stdole2.tlb
?Oleaut32.dll
?Olepro32.dll
?Comcat.dll
?Asycfilt.dll
?Ctl3d32.dll

但し、英語版を前提にしているので日本語を使用する場合は
vb6jp.dlのみシステムフォルダへコピー要

l


いまやと言われるが
?Msvbvm60.dll
?vb6jp.dll

89 :
>>88
日本語版Windowsにはvb6jp.dllをプリインストールしておいて欲しいよな
そしたらEXEだけの配布であたかも動くように錯覚させられる

90 :
>>86
ありがとー!

91 :
>>89
日本語の文字はイメージにして貼り付けて原寸で表示すればいい。
実際にはランタイムで動くが配布はexe一本で済むから
.netのバージョンがどうとかサイドバイサイドにしたりやめたり訳わからん
C++ライブラリやMFCのバージョン依存からも解放される

92 :
VC6使ってmsvcrt.dllだけリンクすればどこでも動くよ的なことをVB6でやろうとしてるのかな

93 :
DLLの静的リンクとデフォで導入されたDLLを前提とするEXEでは意味が全然違う

94 :
昔ボーランド製言語でランタイムごと静的リンクってやってたよな
ちょっとしたアプリすら数MBのEXEになるってやつ
あれはあれで楽だった

95 :
悪の組織はVBとかGWーBASICでセキュリティーシステム構築しているよな

96 :
VB6で接続出来るSQL serverのバージョンは2008、2012あたりまで?

97 :
>>96
2016もできますよ
Native Clientもまだ使えるし、驚くなかれCOMのDMOでさえDLLをコピーしてレジストすれば使えてしまうのですわん!

98 :
ODBCやOLEDB経由で何でも繋がると思うけど

99 :
サポートされない = 使えない

と考える大手企業の俺としては×

100 :
>>97 :デフォルトの名無しさん:2015/11/13(金) 21:18:31.36 ID:YBJ5maQh
>>2016もできますよ
>>Native Clientもまだ使えるし、驚くなかれCOMのDMOでさえDLLをコピーしてレジストすれば使えてしまうのですわん!
>>
>>99 :デフォルトの名無しさん:2015/11/13(金) 21:23:08.82 ID:YBJ5maQh
>>サポートされない = 使えない
>>
>>と考える大手企業の俺としては×

ID:YBJ5maQhさんは何が言いたいんだべか

101 :
>>97
有り難う御座います!
ideも10にのるようだし、まだ何とか使えそうな感じですね

102 :
vb6はwindowsを使い続けてもらうアイテムとしては
ほんと優秀だなw

103 :
>>100
サポートされないとアナウンスされても実は使えることを発見した喜びと
大手企業の従業員で変なことはできない自分の立場との狭間で
気がおかしくなってしまった社会人だろうが

104 :
>>102
最近は若者のパソコン離れが進行していて、プログラマはnetからスタートする人が多い
旧称VB.netが扱える人にVB6のコーディングをお願いした、ら絶対無理と断られた
VB6でコーディングできる人は希少になってる

105 :
>>104
Excel とかでVBAでマクロ組んでる人を連れてくれば非常に短時間で習得しますよ。
ただ、最近はVBAの方が高機能になっているので、「なに?これできないの?だせー」
とか生意気なことを言われてもそこは我慢な。

106 :
へーそうなんだ 素直にVB6を継承したVB7を出さないマイクロソフト ダせぇ〜
CPUの進化の方向性の予測をマイクロソフトは完全に見誤ったな

107 :
今はVBAのが高性能なのか

108 :
高性能じゃなくて高機能だって言ってるようだが
VBAにVB6以降で追加された機能なんてそんなにあったか

109 :
>VBAにVB6以降で追加された機能なんてそんなにあったか

連想配列、インタフェース継承ではない実装継承、stdcallだけでなくcdecl呼び出しのDLLも扱える
その他いろいろあるが、肝心のビルドはできないというお粗末な結果に・・・

110 :
>>109
え?
VBAっていつから普通に継承が使えるようになったの?

111 :
VBAに連想配列もなかったはずだけどなぁ
ScriptingはVBAの機能じゃないし

112 :
Windows3.1ですら現役なのだからVB6の現役引退なんて何十年後になるやら・・・


パリの空港で一時的に離着陸できない事態 原因はWindows 3.1搭載システムの障害
http://nlab.itmedia.co.jp/nl/articles/1511/16/news087.html

113 :
>>111
元は無かったけど今はあるみたい

114 :
検索してもScriptingしかでない
なんてキーワードなん?

115 :
言葉遣いの機微からして魔界の仮面弁士さんだと思うけど
さすがとしか言えない

116 :
>>115
魔界の仮面弁士さんが女性だって知らないだろ?

117 :
>>116
知ってるし会ったこともあるし

118 :
>>116
ググったら、おっさんなんですが・・・
https://mvp.microsoft.com/ja-jp/PublicProfile/8907?fullName=Masashi%20Ohsawa

119 :
きっと魔界の仮面弁士さんっていっぱいいるんだよ

120 :
VB6で作っていた業務プログラムがWindows 10で動かなくなりました。
スキルがVB6で止まっています。
VB .Net以降も試しましたがチンプンカンプンです。
他にDelphiでも多少プログラムを作ったことがあります。
こんな私はどのような環境に移行した方がいいでしょうか?

121 :
>>120
NーBASIC

122 :
移行するまでもない
10に仮想マシン入れてその中で飼えばいつまでも使えるよ

123 :
みんな、魔界の仮面弁士は、

恥ずかしい名前だからという理由で覚えてるだろ?w

124 :
仮想マシン上で動かすWindowsはどうやって確保するのさ
Virtual PCなんかはUSBとか認識しないとかじゃなかったっけ?

125 :
VirtualBoxとやらはUSBもかなり使えるらしいが。
試してないけど。

126 :
>>124
MSDNでダウンロード出来るでしょ

127 :
>>121
VB6ユーザーがスキルそのままで移行するBASICって何がいいんだろう。

128 :
>>127
REALbasicから変貌を遂げたXojo(ゾージョー)がおすすめ
https://xojo.grapecity.com/

試しに作った婚活アプリがiOSとAndoroidで動いたのは圧巻だったわ

129 :
>>126

Virtual PCは、Win8以降では使えないのでは?

130 :
>>120
Delphiやればいいんじゃね?
Delphiはスマホアプリも作れるしWindows10アプリも作れるし今でも現役な言語だよ!


https://www.embarcadero.com/jp/products/delphi

131 :
>>128
なんかこれ良さそう。
まさにVB6ユーザーの移行先?
RealBasicとの関係はどんな関係?

132 :
REALbasic作ってたReal Software社が社名と製品名をXojoに変えただけ
Xojoの日本での代理販売会社はグレープシティ株式会社

133 :
グレープシティ株式会社と聞いてうさん臭さが・・・
やはり.netがスケーラビリティを拡大してくれることに期待して
MSと心中する覚悟で行ったほうが良いかも

134 :
>>132
そうなら、REALbasicの不安定さ、バグの多さはそのままな感じ?
それとも別物になったのかなぁ〜?

135 :
>>120
さわってれば似たような開発方法なんで分かって来るはずだよ
俺の周りのやつでもオブジェクト指向とかしらんやつがVB6ののりだけでやっていけてるぜ
がんがれ

136 :
>>128
サイト見たらAndoroidで動くなんて書いてないんだけど。

137 :
>>135
オブジェクト指向は韓国人が得意だと思う
慰安婦をはじめ歴史に対する願望や妄想を具現化するのが得意だからだ
オブジェクト指向の設計には「こういうのがあったらいいなぁ」という発想が大切だ
夢を夢でなく現実なものにする
そしてその現実を組み立ててスキームを作る
それこそがオブジェクト指向のキモだと思う

138 :
VBerの上のネトウヨw

139 :
右巻きとか左巻きとか関係なく純粋に韓国人はオブジェクト指向設計がうまいというだけの話だよ
日本人は誰かがやってくれると思って自分からは何もしない人が多いから

140 :
>>139
オブジェクト指向の勘違い

141 :
Andoroidで動くんか!と目を真っ赤にしてググった情弱に言われたくない

142 :
せめてクラス設計くらいに限定しておけば?

143 :
 
 誰かおバカなこの俺にインタフェース継承と実装継承の違いを説明してくんろ!

144 :
ここVB6スレだから実装継承なんて知らなくてもいいよ

145 :
たこが入ってないたこやきがインタフェース継承で
たこが入ったたこ焼きが実装継承?

146 :
実際にたこが入ってないのはたこ焼きとは呼びません
たこが入ってる保障がなくても、実際にたこが入っていればたこ焼きと呼びます

147 :
>>145
そもそもインターフェイス継承って言葉そのものがおかしい。
実装継承って言い回しと対になってる対義語のような感じなんだろうけど。

インターフェイスは実装するものであって継承するものじゃない。
VBのキーワードもそうなってるでしょ。

148 :
タコ焼き焼き器がインなんとか継承で
タコ焼き焼き器に具を入れて焼いた状態がタコ焼き

149 :
状態は食えんだろうがこのタコ野郎

150 :
実装継承なんて依存関係がややこしくなるからインターフェイスだけにしたVB6は実は賢かった

151 :
シンプルが結局一番、ハッキリわかんだね

152 :
>>139
リアルな世界でもネトウヨするなよ。
恥ずかしいから。

153 :
フォームやユーザーコントロールでインタフェースを実装できないゴミ

154 :
Xojo使ってみた (転記)
 最低限のコンポはひと通り揃っている
 画面は見やすい
 コードエディタがチカチカして遅い。補完も遅い。
 言語は馴染みやすい
 画面周りで冗長な部分がある(Delphiより手数が多い)
 基本無料 ビルドするときにライセンス必要
 エディタはTMemoと同程度だった
 HTML系が充実しているので、これはとてもよさげ
 
ざっとの感想
Delphiほど業務的には作れず、軽めのものをマルチプラットフォームで作る感じだった。
これからの充実に期待。

155 :
結局インターフェース継承が実装継承とどう違うか説明できた人は皆無というお話でしたか?

156 :
インターフェイスてのはクラスを使う側にプロパティやメソッドの存在を約束するためのもの
継承は元となったクラスの機能を土台にして機能を追加していくためのもの
ぐらいの理解しかしてない

157 :
>>155
そこに疑問を持つ人なんていない

158 :
>>156
インターフェイスと継承の違いがよくわかる説明ではありますが
肝心な実装継承とインタ−フェース継承の違いが説明されてないような気がします

159 :
>>158
まつもと直伝 プログラミングのオキテ 第3回
http://itpro.nikkeibp.co.jp/article/COLUMN/20050915/221232/

160 :
中身があるかないか

161 :
>ID:546gewgT

これ以上の説明はここじゃなくてオブジェクト指向スレを探したほうがいい。
このスレでこの話題をすることにこだわる理由はある?

162 :
>>158
そもそもインターフェース継承って何?
VBだと違うクラスの中で共通なクラスのインスタンスを生成して
プロパティやメソッドの引数や戻り値を引渡して、そのシグネチャをインターフェースに設定して多態性を持たせることを言ってる?

だとしたらそれは継承ではなく移譲(VB6では委託?)の一環で継承と同じような機能を作ったと言うだけ。

継承と決定的に違うのは、シグネチャが同じであれば元がどんなインスタンスであれ、インスタンスの中身を知らずに実装出来ると言う点。

例えばフォームのインスタンスだろうが普通のクラスのインスタンスだろうが
インターフェースに設定されたシグネチャさえ合っていれば多態性を持たせる事が出来る。

163 :
なんかめんどくせーやつがいるなぁ。

インターフェースIがある。クラスAがある。

クラスAがインターフェースIを持っていると主張する = インターフェース(を)継承(している)
その持っていると主張するインターフェースの中身を実装する = インターフェースの実装
その実装の中身が他のクラスを呼んでいるだけ = 移譲

だろうが。

インターフェースを継承しているといったとしても、その実装が移譲になるとは限らない。

164 :
インターフェイスを継承する、という言葉使いが古臭い

165 :
それより継承や移譲をカタカナ英語にしないのはなぜかなー
インターフェースやクラスを漢字で書かないのはなぜかなー

166 :
>>163
インターフェースは実装するものであって継承するものではないよ

167 :
>>165
移譲はコンポジションって言うけどな。

試しにクラスやインターフェースを漢字で書いて見てよ。

168 :
>>166
そうだよ?

インターフェースは実装するもの。
だけど実装はしていないけど、継承だけしている状態ってのもある。
それはコンパイルエラーではあるが、概念としてはインターフェースの継承

169 :
>>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。

苦裸巣、韻断腑餌巣

170 :
>>165
それより一をカタカナ英語にしないのはなぜかなー
ゼロを漢字で書かないのはなぜかなー

171 :
>>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。

階級、界面

172 :
インターフェースを継承したインターフェースというのはあるが

173 :
>>172
そう言うのがあるから尚更インターフェース継承という言葉に違和感を感じるんだよなぁ

174 :
クラス書くときにインターフェースを指定する、とはいうが継承するとはいわないね
クラスの継承と区別できていない人の誤用じゃないかと思う。

175 :
インターフェースを継承して・・・
それからインターフェースを実装する。

>>172みたいなのは、
インターフェースを継承して・・・
以上


インターフェースを継承する部分のコードは
どちらも同じ書き方をするはずだ。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


176 :
C++はインターフェースが無いから

177 :
とりあえず「インターフェイスを継承して」さんにはVB6のMSDNを熟読されることをおすすめします。

それと>>172はVB6では不可能です。

以上

178 :
ここまで説明下手の連中が集まるとは驚きだ
インターフェース継承という言葉自体がおかしいとか逃げ口実まで出る始末
そんなんでは後輩がついてきませんよ

179 :
>>166
それ、個人の感想ですよね?

180 :
これだけ丁寧に説明されておいて逃げ口上だと理解する人にどうしろと?

181 :
>>178

教えを乞う態度ではないなw

182 :
>>167
ん?
移譲はdelegationじゃないの?
compositionはdelegationの手段。

183 :
考え方が逆だよ

同じインターフェースを持つ場合に継承する

まずはこれを理解しないとね

184 :
やくざの親分が基本クラスで子分が派生クラスと考えた場合
親分はどの子分にも同じ言い方で指示しても子分は指示通り正しく動く
親分でないやくざが子分に指示しても子分は親分の指示でないから意を解せず動かない
このとき、親分と子分の間の意思疎通のルールがインターフェースに相当する
継承がインタフェースか実装かは親分と子分との関係によって決まる
親分よりも保身が第一と考える子分ならインタフェース継承
親分のためなら命を張れる子分の場合は実装継承

185 :
VB6ユーザーの俺にはチンプンカンプンなので、分かる内容に変えてください。

186 :
>>185
気に入った女の子と仲良くなりたいときに、直接女の子にアプローチするのと
その女の子を知ってる人に間に入ってもらって紹介してもらうのと
どっちが気が楽でしかも成功率が高いと思う?

この場合、間に入ってもらう人が基本クラスに相当し、女の子が派生クラスに相当する
その間に入ってもらう人(基本クラス)が多くの女の子(派生クラス)と知り合いであった場合
その知り合いに毎回同じ方法、手続きで違う女の子を紹介してもらうことができる

見ず知らずの女の子に声をかけてナンパする場合(継承を使わない場合)の成功率と
(基本クラス)に間に入ってもらって、同じ手続きで違う女の子にアプローチできる(派生クラス)
どちらの方が良いかはVB6ユーザーでもわかるはずだ

187 :
結局インターフェイス継承と実装継承それぞれのの長所・短所はどうなりますか?

188 :
インターフェイス継承はインターフェースだけを継承しているから、
インターフェースを実装しなければ使いものにならない。
実装継承は実装を継承しているから一応使える。

189 :
いまいちインターフェース継承ってのが何を言ってるのか分からん。

例えば、クラスAをスーパークラス、クラスBがクラスAを継承したサブクラスとしよう。

VB6のスレ的に考えれば、クラスBでクラスAのインスタンスを生成して、
そのメソッドやプロパティの引数や戻り値をクラスBから内部に持ってるクラスAに引渡していることを言っているなら、まだ分からんでも無かった。

だが>>163辺りを見ていると、インターフェースをクラスで実装すること事態を
インターフェース継承と言っているように見える。

>>163はインターフェースを介することによって、どのクラスがどのクラスを継承するようになるのか説明出来るのか?

190 :
ここは古代VBプログラマーのスレですよ。
オブジェクト指向の話は別スレでお願いします。

191 :
xojoってフリーソフトを配布するときもライセンス買わないとだめなの?
やけに高いよね?

192 :
消防車 is a 車
消防車 has a ハンドル

is a は継承。〜の一種。クラス

has a は、〜の機能を持つ・実装。インターフェイス。
例えば、携帯電話にカメラ機能を付けるなど、
相互に全く関係ないものをくっつける

193 :
オブジェクト指向ってなんかしっくりこないんですけど。

194 :
インターフェースの継承は実装継承と比較するようなものではない
・インターフェースを拡張したインターフェースを定義する場合
・インターフェースを提供する(必ずしも実装はしない)クラスなどを継承するクラスなどを定義もしくは実装する場合
の後者はインターフェース継承ではない

195 :
VB6のコントロール配列の特殊性はどうなの?
ハンドルも回すタイプとかステックタイプとかボタン付いてるのもあるな

196 :
>>192
すごい!ここ数日の中で一番分かりやすい説明です!
本当に驚きました。ありがとうございます!

>>194
またカオスになってきた様相・・・

197 :
>>192
それを >>186の説明に適用すると
紹介者はおっさんでも美しい女性でも成立するが
紹介者がおっさんの場合、紹介される女性とは完全異質なのでインターフェース継承だが
紹介者が美しい女性の場合、紹介者でありながら自分も紹介される女性として成立するから
実装継承という事になるわけだよな

198 :
>>195
フォームとそれに貼り付けられた(コンテナに入った)ボタンとの関係こそインターフェース継承だと思う
VB6でのGUI開発はその本質がインターフェース継承だがあえてそれをそう呼ばず
自分が定義したクラス間で同じような世界を実現するための仕様が Inheritsなのかもしれない

199 :
ど素人ばっかかよ
移譲じゃなくて委譲だ

200 :
インターフェースと継承の違いは基本となるインターフェースおよびクラスの特性で明白

インターフェースは各社のテレビを一元で操作できる学習リモコンのようなものだと思えばいい
使用者は各社のテレビごとに異なる操作方法を知る必要がなく、リモコンの操作方法さえ知っていれば
全社のテレビを、電源ON/OFF、チャネル切り替え、音量変更など全て同じように操作できる
その代わりに、学習リモコンは全社のテレビを操作するために必要な「インタ―フェース」を実装しなければならない
この必要なインターフェースを基本となるインターフェースにすべて実装しなければならないという制約が発生する
しかしその制約以外は何でもアリで、同じリモコンを使ってビデオデッキを操作してもいいし
各社のテレビは直接操作することも全く別のリモコンから同時に操作されることさえ許される

継承における基本クラスは各社がテレビを作る際に必要となるリファレンスモデルのようなものだ
リファレンスモデルであっても放送受信、映像表示および音声出力などテレビとしての基本機能は網羅している
各社はリファレンスモデルに色付けした自社製品としてのテレビを販売することになる
機能を追加するにしてもゼロからテレビを設計するには時間とコストがかかる
だからリファレンスモデルをそのまま拝借してそこへ追加機能を実装するスタイルが継承だ
リファレンスモデルは自分で実装する必要もなくどういう仕組みになっているか知らなくてもよい代わりに
テレビの基本性能はリファレンスモデルより劣ることもないが企業努力でそれを超えることもできない

201 :
ポエムはブログで

202 :
偉そうに
委譲どころか萎縮しちまうな

203 :
>>200
【インターフェース継承】

TV(クラス)がもつ機能でもリモコン(インターフェース)にそれを操作する機能が用意されていなければ使えない世界

【実装継承】

TV(クラス)がもつ機能ならリモコン(クラス)にその機能を使用する手段を実装することにより自由自在に使うことができる世界

204 :
例えば、パナソニック製TVだけがガンマ補正機能をもつ場合ガンマ補正の捜査が要求されたら
パナソニック製TVを使用するように判断し操作する

205 :
>>204
インターフェース継承でも

If USE_GAMMA_CORRECTION Then

  Set TV = PANASONIC

Else

  Set TV = SONY 

Endif

とか切り替えはできるけど、TVインターフェースにガンマ補正のためにインターフェースが実装されていないと
PANASONICクラス内のガンマ補正機能にアクセスする手段はないという事?

206 :
>>205
おいおい、大丈夫かよ
そのコードは一体どこに実装されると思ってるんだ?

207 :
VB6ってCastあったっけ?

208 :
あなたが苦労して取得した資格の平均最低月給ランキングは第何位?
民間や国家が認定している仕事の資格や免許。
その求人雇用市場での価値が一目瞭然で分かる。
(全求人情報平均最低月給196,500円)

ぼくらニッポンの民間・国家資格別平均最低月給ランキングはこれだ!

http://jobinjapan.jp/license/

209 :
>>206
もちろんクラスの外側だよ
それこそがインターフェース継承の欠点でもある

210 :
理解不能だ

211 :
無理スンナ 
ポエムでも読んでろ

212 :
>>211
一言だけ言うと、SOLIDについて調べるといいよ

213 :
頭大丈夫か?

214 :
VB6プログラマがインターフェイスとか背伸びすんな。
おまえらは長年寝かした秘伝のソースを改修すればいいんだよ。

215 :
VB6ってしばらく触っていないが、知らんうちにスゴイことになっているようだ
インターフェースの継承って一体どんなものなんだろう?
もしかするとインターフェースに抽象クラスの機能でも付いているのかな

216 :
抽象クラスの定義は中身が無いメソッドが少なくとも1つは含まれていることが条件だから
インターフェースは、すべて中身が無いメソッドので、抽象クラスでもあるよ。

217 :
概念はともかく文法的には別物扱いだよね

218 :
そりゃな。

C++では逆にインターフェースはなくて
抽象クラス代用してるし。

219 :
>>215
> インターフェースの継承って一体どんなものなんだろう?
本気で言ってるのかネタなのか区別つかんが、VB6/VBAでImplements IFooを
「インタフェース継承」あるいは「インタフェースを継承する」と言う人が結構いるってだけの話

あと、Javaクラスタの人にもいるみたいだ

220 :
あー、調べたら、Javaの方は本当にインタフェースの継承だった

interface A {
  void write(String str , int synchro);
}

interface B {
  String third = "逃げちゃだめだ";
}

interface C extends A , B {
  void write(String str);
}

221 :
実装継承ができない言語ならまだしも
実装継承とインタフェースの両方が使えるのに
あえてインタ^フェースを選択する人って一体?

222 :
JavaはInterfaceに実装も書けるようになってる
AbstractClassと重なる部分をマスクとして除けば、Interfaceの意味はより明確になった

223 :
>>221
一時期、実装継承は悪なんて風潮があったね
今考えると、LSP違反になりやすいとかそういうことが理由だったのかも
あと言語にもよるけど、実装継承を繰り返して継承すると、途中クラスの変更が
事実上できなくなったりするというのも理由の一つだと思う

224 :
>>223
だからと言って何でもOKのインターフェース継承がおすすめというのは何とも理解しがたい

225 :
>>221
そりゃ多重継承禁止だからよ

226 :
よそのスレで相手にされないやつがここに流れてきているのか

227 :
みたいだな

228 :
>>224
インターフェース継承がなんでもOKというのは、どういう意味?

229 :
>>228
たとえば継承10連結とかでもできるってことじゃない?

230 :
俺みたいに、VB6のプログラムがWin8.1までは動いていたんだけど、
Win10にして動かなくなったって人いる?

231 :
インターフェースは継承とはレイヤーが違うので、概念上は制限が無いので、継承を包括し得る。C++のように継承でインタフェースを実現する事もありえるが、概念上は継承自体が制限となる。

232 :
>>230
>>83
>>86

233 :
用語1つで場をこんだけ混乱させてしまうオブジェクト指向ってプログラミングツールとしては最悪の部類だよね
でもそういう最悪をかき集めたものが飯の種になる矛盾を孕んでる
混乱が飯の種ってまるで火事場泥棒みたいなやつだ

234 :
staticおじさん乙

235 :
いやあこの話題の中で委譲の話を持ち出す人が居たのには驚いたわ
確かにインターフェースは委譲出来ないけど、ソレは抽象クラスでも同じことだからね

236 :
これがニッポンの民間・国家資格別平均最低月給ランキング。

将来有望な資格も見えてくる。
資格別の求人件数と平均最低月給ランキング。
あなたの資格の市場価値が一目瞭然!

http://jobinjapan.jp/license/
プログラマーの大切な資格は正当に評価されているか確認しよう。

237 :
古代VB

そういえば、どこに消えちまったんだよ

238 :
イスカンダル辺りじゃないかな?

239 :
>>237
XP以降、VB6のランタイムはWindowsに包含されているから
EXE配布だけで実行させられるんで意外に重宝してる。
日本語表示させるためにはVBJP.dllとかが必要になるんで面倒だけど

240 :
>>233
馬鹿が集まっているスレだからという方が10000万倍説得力があるわ

241 :
いちまんまん

なるほど、馬鹿の集まりだわ。

242 :
馬鹿に遠吠えする馬鹿はさらに恥ずかしい

243 :
VB6の後継かどうか知らんがVBAを拡張する計画があるみたいね

Excelユーザーに感謝せんとな

244 :
やっとか…

245 :
VBAが拡張されるとしたら、おそらくECMAScriptの最新機能を
取り込んでくるだろうな。

246 :
Roslynでやるんじゃねーの?

247 :
何の因果か未経験からVB6でのシステム保守に携わっています。
川口輝久の「Visual basic6 基礎編」は持ってるのですが
何とか理解できるようになったので
生産性向上のため見るべきサイトや本などが
あればお願いします。
漠然とした質問で申し訳ないですが
よろしくお願いします

248 :
まず知識より挫けない強い心が必要

249 :
>>247
できるだけ他言語の新しい知識には接しないことだな。
VB6がクソに思えてしまう。

250 :
Fowlerのリファクタリングなんて良いんじゃないかな
VB6の場合いかにして手に負えないレガシーの塊を解きほぐすかって方針で勉強したほうが役に立つだろう
この方針なら他の言語に移った時にも学んだ事は無駄にならない
方向を誤ってVB6マスターを目指しちゃうと将来的に有意義な経験がなにも残らない

251 :
CODE COMPLETE読め

252 :
今VBってどこで使われてるの?

253 :
>>247の会社

254 :
>>250
VB6でテスト用意してリファクタリングするのは恐ろしく時間の無駄になる予感がするんだが・・・

255 :
みなさんありがとうございます。
開発といいましても既存の画面の修正からなのでリファクタリングというのをやってきます

256 :
日本の会社はリファクタリングにお金なんて出さないから注意な

257 :
リファクタリングっていうのは解析作業の一種で、
複雑になってしまったコードを解析して
その結果を反映させること。

リファクタリングに金を出さないという話であれば、
複雑になったコードを解析するのにも金を出さないって話だぞ。
そのとおりだが。


解析して、コードは修正せずに、バグと戦って、次回も解析するか、
解析して、コードを修正して、バグなく楽に修正、次回も楽になるか
の違いだ。

258 :
質問させてください。
Windows7 pro 32bitにVB6.0Professionalを入れました。
これに適用するべき、MSが配布している更新ファイルを調べてみたのですが、

Vs6sp6B.exe
VB6.0-KB290887-X86.exe(=vbrun60sp6.exe)
VB60SP6-KB2708437-x86-JPN.msi

この3つ以外にもありますでしょうか?

259 :
俺もそういう更新ファイルとか分からんから適当に入れた

http://pastebin.com/sSPzxYHt
リストアップしてみた(関係ないのもあるけど)

260 :
>>247
解析ツール買ってもらえ

261 :
お前ら教えろください

同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?

直感的にダメな気がするんですが、なぜダメなのか説明出来ません

どちらにしても誰か理由を説明出来る人いますか?
教えてエロい人

262 :
だめな理由などなにもない

263 :
同意

264 :
直感的でダメって、お前の尺度で全て決まるんかいw

265 :
イベントが発生してないのにイベントハンドラが実行されたら困惑するだろう
平日にハロウィンコスプレするようなもんだ

266 :
どーせイベントの内容をコピペしたメソッド作ってそっちを呼ぶんだろ?
それなら最初からイベント呼んでおけ

267 :
VB屋はこれだから嫌だね

268 :
普通はイベントの中身をメソッドにして、両方共其のメソッドを呼ぶように作るものだな

269 :
>>267
> VB屋はこれだから嫌だね

どれのこと?
わざとらしいアンチぐらい
見分けようよw

270 :
>>261
> 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?
なし

> 直感的にダメな気がするんですが、なぜダメなのか説明出来ません
その直感は正しいよ。理由はいくつか有る。

まず、一般的にフォームというのはユーザーの入力と処理を結びつけるためにある。
結びつけるだけなのでなるべくフォームに処理は書かない。
処理はフォームとは別に(ビジネスロジック用の)クラスに分離する。
このクラスはフォーム関連コードは一切ない。これにより自動テストがしやすくなる。
このように分離するので、二つのイベントハンドラから、共通のクラスのメソッドを呼び出すので
_Clickを直接呼び出すことはない。

これが大きな理由では有るんだが、クラスを使うほどじゃない場合でも
処理はprivateメソッドに書いて、内部的には処理と結びつけるコードは分離させておいたほうがいい。

それから、もう少しわかりやすい理由として、依存関係の話がある。
_Clickというのは、ボタンだったりするわけだが、そのボタンの存在に処理が依存しているのか?ということ。
通常はボタンには依存していないだろう。仮にボタンをなくしたとしても、処理の内容は変わらないだろう?
だが、_Clickを呼ぶと処理の中にそのボタンが紛れ込んでしまってるわけだ。こういうふうに
余計なものが混ざるとUIを変更した時の影響範囲が大きくなる。

どちらにも共通することは、その責任が明確に分離されていること。単一責任の原則とも言われている。
自分の担当範囲の処理だけを行うことで、それぞれの処理がシンプルになる。
絡み合わせる必要が無いものを、絡み合わせてはいけない。

271 :
>>261
お前さんの直感は正しくて基本的には良いことじゃないけど、まあ程度問題ではある。

良いことじゃない理由は、メソッドの名前と実態が乖離するから。
(ボタンがクリックされた時に呼ばれるはずのメソッドが、それ以外の時にも呼ばれることになる)

これは、「イベントハンドラが呼ばれるのはイベントが発生した時だけだ」という前提でコードを読んでいる
プログラマの期待を裏切ることになる。

程度問題なのは、そうは言っても十分短いコードなら上記の前提が正しくないことに
プログラマは気づくことができる。

272 :
>>269
わざとらしいアンチって俺の事?

273 :
せめてインターフェース継承くらい深い議題でないと盛り上がらんな

274 :
ああ、また来てほしいな。ああいう変な奴。

275 :
VB6からVB.NETへの移植を体系的にまとめた本は有りませんか?
最悪VBではなく他の言語でも構いません
別言語への移植に関する情報が欲しいのです

276 :
>>275
あるわけないでしょ
http://www.microsoft.com/ja-jp/dev/vbrun/default.aspx

277 :
>>275
移植元、移植先の両言語をちゃんと理解すれば移植は簡単だろう

278 :
>>275
新しくはないけど
http://www.amazon.co.jp/gp/product/4798102164/ref=s9_simh_bw_p14_d0_i1?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=merchandised-search-4&pf_rd_r=1RM0Y8MGQP2Y6H6E51H9&pf_rd_t=101&pf_rd_p=204601349&pf_rd_i=465392 👀
Rock54: Caution(BBR-MD5:60fb6bd37e268099e6257349e1247e68)


279 :
sage

280 :
windows8.1をupdateしたらIDEが使えなくなった
xp 7 10では大丈夫なのに

281 :
仮想マシンで飼えばいいんじゃね?

282 :
Visual Basic 6.0 が扱えるスレッドについて質問させてください。
私はVB6.0で作られた業務アプリのユーザーです。
プログラミングはかじった程度ですが、訳あってこの周辺を調べています。

第4回 Background Workerで夢のマルチスレッドがついに!
ttp://www.atmarkit.co.jp/fdotnet/vb2005/vb2005_04/vb2005_04_01.html
を読むと、「VB6.0まではスレッドが使えなかった」と書いてあります。

Visual Basic .NET におけるコンポーネント作成の変更点
ttps://msdn.microsoft.com/ja-jp/library/cc437477(v=vs.71).aspx
を読むと、ActiveX に関してはスレッドが使える、旨の記載があります。

これは、「GUIコントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
よろしくお願いします。

283 :
>>282
> これは、「GUIコントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
主語は?

あとt抜きとかやめろ

284 :
tは抜いていないと思うんだが

285 :
>>

286 :
操作ミス失礼。

>>283
「Visual Basic 6.0 でアプリケーションを組んだ場合、GUIコントロールでのみスレッドが扱える」
という理解で良いかどうか、ということになります。
逆に言えば、
「画面の無いコマンド(VB6.0で作れるかは分かりません)を作る場合、スレッドを使った処理を実装できない」
という理解で良いかどうか、ということになります。

287 :
>>286
一体何が知りたくて質問してるのかしらないが、>>282で自分で答え書いてるじゃん。
「GUIコントロールでスレッドが使える」とか意味わからんし。

・VB6ではスレッドは使えない
・VB .NET以降は使える

288 :
>>287
ありがとうございました。
すみません、ActiveX.exe、ActiveX.dll が良く分からなかったので「GUIコントロール」という書き方をしてしまいました。

A Thread to Visual Basic: Multi-Threading In VB5 and VB6
http://www.freevbcode.com/ShowCode.asp?ID=1287

この文献に行き着いたので時間をかけて読んでみます。

289 :
>>288
日本語より英語の方が堪能とかじゃないなら、「VB6 ActiveX DLL」とかで検索した
日本語ページ読んだ方がいいんじゃないの?

290 :
>>289
ありがとうございます。調べてみます。

291 :
ActiveX.EXEて非同期で動くんでそ?

292 :
VB6でスレッドとか変態的だからメンテの関係でやめたほうがいいんでない

293 :
素人質問で申し訳ありませんが、昨今においてWin7にVB6で組んで納品、という形態は存在するのでしょうか?

294 :
しません

295 :
>>286
ActiveXオブジェクトはVB以外でも作成できる
VB6ではマルチスレッドはサポートされてない
(API呼び出しで無理やりやる方法もあるけど、問題になる事もある)
これが全て。GUIとか何とか関係ない

>>291
たしかに非同期で動くけど、それ別EXEだからマルチスレッドじゃなくて別プロセスじゃね

296 :
>>295
やっぱそういうことですよねm(_ _)m

297 :
やっと分かりました!

1. Visual Basic 6.0 で作成する「アプリケーション」ではスレッドは使えない。

2. Visual Basic 6.0 の開発環境では、「再利用可能コンポーネント」として ActiveX(≒COM)コンポーネントが作れる
 このコンポーネントではスレッドが使用可能。
 ただし、ActiveX は単独では動作できない。他から呼ばれる専用。

ということだったんですね…。
ありがとうございました。

298 :
>>297
つか、やりたいのは「スレッドを使う」ではなくて、非同期処理をしたいんじゃないの?
だったら、スレッドは不要。

299 :
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


300 :
Dim a As Date

a = CDate("2016/5/14")
とか
a = DateSerial(2016, 5, 14)
で日付のみ入った状態に、後から時刻を設定するにはどうしたらいいでしょうか

DateAdd("s", h*3600 + m*60 + s, a)
だと、時刻を文字列に持っていた場合はちょっと面倒

301 :
>>300
こんなのでいいんだろうか
a = CDate(Format(a, "yyyy/mm/dd") & " 16:45:37")

302 :
>>301
ありがとうございます
こんなのでいけてしまいました
Dim a As Date
a = CDate("2016/1/2")
a = a & " 12:34:56"

303 :
Windows10 64bitで昔作ったソフトを動かしてみたところ
入力系コントロール→他コントロール (テキストボックス→その他)のフォーカス移動がものすごく遅いことに気付いたんですが
原因わかりますか?

テキストボックAに「123」と入力、入力直後にテキストボックBをクリックしても1〜2秒フォーカスが移動しない。
グリッドでも同様(同一グリッド内の別セルや別グリッド)

304 :
vb.netを使わない理由は?

305 :
>>304
パソコンだけリプレースなので。

306 :
VBさん25歳の誕生日おめでとう
https://blogs.msdn.microsoft.com/dotnet/2016/05/20/happy-25th-birthday-vb/

307 :
VBももうそんな歳かぁ

308 :
https://www.youtube.com/watch?v=SDaMdk0VWV4

309 :
>>303
当方ではそんな現象でないですけど

310 :
ドラッグ&ドロップして、パスなしのファイル名だけ取得するにはどうしたらよい?
↓だとフルパスで取得してしまう

Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter

'ドラッグされている内容が文字列型に変換可能な場合
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
'コピーを許可するようにドラッグ元に通知する
e.Effect = DragDropEffects.Copy
End If

End Sub

Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop

'ドロップされた内容を表示する
TextBox1.Text = e.Data.GetData(DataFormats.FileDrop)(0)

End Sub

311 :
>>310

フルパスからファイル名抜き出すってのじゃいかんの?

312 :
円マークで分割して最後を取得みたいに?
最悪それでもいいんだけどVBさんならちょっとしたオプションで出来るかなと思って

313 :
>>311
探しても見つからなかったから分割してやった。レスありがとう

314 :
fso.GetFileName(フルパス)

315 :
プログラム保存し忘れたんだけど復活させる方法ありますか?
ソースファイル単位では保存してます

316 :
ありますん

317 :
>>295
マルチスレッドと別プロセスって実際どんだけ違うものなのかな?

318 :
>>317
プロセスが別=メモリ空間が別,別プロセスになると切り替えにコストが多く発生する

319 :
プロセス単位だとリソースをいくらリークさせても終わった時点でOSが面倒見てくれる
スレッドは自分で管理しないとプロセスが生きてる限りリークし放題
Excel VBAでしょーもない再起動が必要になったりするのはそれが原因

320 :
PNGを表示するのに明熊さんのTransG32.dllを使ってる人いる?
4000ピクセル四方程度のPNGは開けたりクラッシュしたり
どういう条件だとクラッシュするのか、
PNGの幅x高さの値と関係するのか調べても境界がはっきりしない
じゃあファイルのバイトサイズかなぁとログをとって気長に調べているのだけど
何か知ってる人はいますか

321 :
ああそうだ、開けるPNGファイルを
メモリの少ないPCでも開けるかやってみればいいか

322 :
すいません、
VB6の頃のopen文だっけ?に比べてVB.netやC#のファイル操作は遅くて
別のものを使うとVB6より速くなるみたいな
そんな記事をかなり昔みた記憶をふと思い出してググってみたのですが、その記事が見つかりませんでした。

どなたかこれの内容って覚えていませんか?

323 :
誘導されてきました。
質問させてください。以下の現象が解決できず悩んでいます。
何か思い当たる解決方法をご存知の方がいれば、情報提供をお願いします。

■開発言語 : VB6.0(SP6だったと思う)
■プラットフォーム : Windows10(64bit)
■互換モード : Windows2000
■現象 : 「CommonDialog.ShowOpen」時にエラーが発生
■エラー内容 :
Microsoft Visual C++ Runtime Library
Runtime Error!
Program:xxxx\xxxx.exe
abnormal program termination

Windows8.1(64bit)では問題なく動作します。
互換モードをWindows2000以外にした場合、Windows10(64bit)でも問題なく動作します。
コモンダイアログはファイルを開く目的で実装しており、エラーが発生してもダイアログ自体は表示されます。
エラーを無視すればファイルの選択を行うことも可能で後続の処理も問題なく動作します。

以下のことは試したのですが、効果がありませんでした。
・「VB6Runtime」の最新化
・正常に動作する環境(Win8.1等)の「COMDLG32.OCX」を適用
・「VC++Runtime 2005〜2015」のインストール

以上、よろしくお願いします。

324 :
Win2000互換に拘る理由

325 :
>>324
件のプロセスをキックする親プロセスがいるのですが、
親プロセスがWindows2000互換で動作しているため、引きずられてWindows2000互換で動作してしまいます。

親プロセスの互換モードを変えれば、エラーは発生しないのですが、この親プロセスからは
他に300近いプロセスをキックしているため、変更した互換モードで他のプロセスの動作検証を行う必要が出てきます。

それは避けたいため、Windows2000互換のままでも解決できる方法を探している状況です。

326 :
子プロセスの互換モードって絶対親と同じじゃないとダメなんだっけ?
互換性データベースとかいじれば何とかならんのかな

327 :
>>323
本件については、質問してから時間が経ってしまったこともあり
工期の問題もあったため、2003SV互換ですべて検証し直しました。

Win7(64bit)なんかではWScript.Runで呼び出すことで子プロセスに設定された互換モードで動かせていたみたいです。
Win10ではそれも効かなくなっているみたいですが。

>>326
色々調べた中で互換性データベースについては初めて目にしました。調べてみます。

328 :
整数型はLongを扱うプロパティが大部分なのとループも4バイト整数が効率的なはずなのに、
他人の書いたコードは大部分がIntegerです。この型を選ぶ理由を教えてください。

329 :
>>328
強いて言うなら、範囲制限。

330 :
>>328
大昔のBASICにlong型がなかったから
当時の人材が今でも活躍してるんで。

331 :
コモンダイアログは使っちゃだめだよね
将来的に使えなくなる可能性があるからAPIで書いておかないと
という話の「将来」が今田

332 :
将来的にVBは産廃になるから移行しやすいようにレイヤー分割しとけよ
という話が教会に異端認定されて迫害されたから今苦労してるんだよね

333 :
質問させてください。
VB初心者です。(普段はもっと古代言語を使用しています)

環境:windows7,office2010,vb6,activereports2.0j

VBのフォームにOLEを配置してEXCELを表示し、
ボタンを押すと、doverbメソッドが実行されてそのEXCELを編集出来るというプログラムがあります。
開発環境では問題無く動いたのですが、
実行環境で編集ボタンを押すと、押した時にはEXCELがアクティブになるのですが、
すぐにフォームのほうがアクティブになってしまい、EXCELを編集出来ません。
何度EXCELのほうにマウスを当てても戻ってしまいます。
環境かな?と思うのですが、何が原因なのか検討もつきません。
どなたか、何か思いつくことがあれば教えていただけないでしょうか?
よろしくお願いします。

334 :
timerイベントで以下の処理を行っているのが原因でした。
If Me.Enabled = True Then
Me.SetFocus
End If
根本的な原因では無さそうな気がしますが、
特に問題もないようなのでこの処理を削除しました。

335 :
それはよかたですね

336 :
XPか7以降だったか
プロセスやスレッド間をまたがるフォーカス移動の挙動は仕様が変わってるから
SetFocusだけでは意図通り動かないと思う
説明がめんどくさいので解決したならいいけど

337 :
まだVB.NETスレとパート数20くらい差があるのはすごい

338 :
まだまだ使えう

339 :
VBで困ったときにネット検索しても余り出てこなくなったんだよ

340 :
パーツをペタペタ貼れるVB系は6.0しかないの?
.netでもそれさえあれば移行するのに。

341 :
Win7で普通に組めるのは良いが配置したコントロール類を一括ドラッグ、位置調整するのが辛いな

342 :
>>340
.netでも、ふつうにパーツペタペタ出来る

343 :
>>342
マジで?
そういうツールが売ってるの?

344 :
>>343
パーツがボタンやラベルのことならば標準機能で貼れる
お試し版あるからダウンロードして試したらヨカ

345 :
Microsoft Team Explorer for Visual Studio 2013のMicrosoft Visual Basic 2013を使ってみたのですけど、コントロールを貼り付けられるようには出来てないような?
VB6でいうところのオブジェクトを表示する事が出来ませんよね?

346 :
>>345
1回死んでから出直すといい

347 :
新規プロジェクトで
Windowsフォームアプリケーション選び
form1.vb選択して、右クリック
ビューデザイナー開いておいて
左側のツールボックス開いたらコントロール群あるから
選んで貼り付け

348 :
ファイルリストボックスって
なまじっか英数字のファイル名だとソートしてるから、そのまま使えると思ってたら
漢字は中途半端なソートするね

349 :
もう今年で20年だろw
まだ使ってる人いるのかw
いい加減成仏させてやれよw

350 :
>>347
おぉぉ出来ました、ありがとうございます、ありがとうございます。

351 :
>>346
色々あってよく分からなかったのですが、もしかしてこれは.netでは無いとか?

352 :
>>351
2013のvb.net
2015と2017もある

353 :
>>351
だからお前のような馬鹿は1回死んで出直せ

354 :
何イライラしてんの?生理?

355 :
馬鹿が嫌いなだけ

356 :
そうか、でも自分の事は嫌いになるなよ

357 :
馬鹿に馬鹿と指摘すると、悔しがってこうやって別IDで食って掛かってくるから楽しい

358 :
自称「馬鹿に馬鹿と指摘する」馬鹿さん、馬鹿にされて楽しそう。

359 :
>>350-351dすが、自分のせいで荒れてしまってすいません。

360 :
気にすんな

361 :
俺は気にした方がいいと思うよw
さすがにこのやり取りは質問者が叩かれて当たり前。

これが2002年ならわかる。2018年にもなってこれはない。
さすがに釣りだとと思ったらどうやら大真面目らしいのも何とも

362 :
本当は質問があって嬉しかったくせに

363 :
好きな子にいじわるしたくなっちゃう小学生男子の気持ち?

364 :
こんなこともわからない馬鹿が開発なんかするなと

365 :
知らん事は馬鹿ではない
知らん事を馬鹿だと思っている事が馬鹿なのだ

366 :
村本?

367 :
>>365
いじってみてもどうなっているか理解できないから馬鹿だろうが。そもそも製品の構成すら理解しとらん馬鹿だし。

368 :
>>367
そんな事よりもボクはキミ自身が馬鹿なのだよという話をしているのだけれども

369 :
知らないこと と 自分の力で理解できないことを一緒にして他人を煽ることしかできない馬鹿

ID:3WbICYQr

370 :
開発中に気が触れてしまう人もいるので、そっとしておきましょう
ここでは、開発が本業でなく、例えば八百屋さんがプログラムをいじってるなんて場合もあるのだから
自分の狭い専門分野で人を見下すのはバカ丸出しなんだよね

371 :
>>370
八百屋ナメんなよコラ。お前市場行ってセリで買えるか?セリにsnipetなんかねえんだよ。
全部キロ単位の値段設定だぜ?即座に頭で歩留まり計算しておかないと儲け出ねえんだぜ?
八百屋、魚屋のような生モノ扱う仕事は常にtry-catch-finaryでロスが出ねえように考えて仕入れ販売
しないとあっさり赤字こくんだよ。
コード屋はそりゃ大変だろうが、楽な仕事なんかねえんだよ

372 :
>>370
青果市場のセリで、キャベツを指差しして「これは白菜ですね!」とか大声で叫んでみろよ。
お前のようなゆとりの馬鹿が社会をダメにする。

373 :
気がふれた自覚があるのこの人?

374 :
Integerが2バイトしかないなんてヒドイ

375 :
VB6では任意に例外を投げることはできないのでしょうか

376 :
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

377 :
Private Sub Form_Load()
  Text1 = "106.456"
  Command1.Caption = "▲"
End Sub
となっています

1ドルなん円という数字が入っていて
小数2位以下はいらないので▲ボタンを押すごとに
106.456→106.500→106.600→106.700・・・
となるように
Private Sub Command1_Click()
Dim v&
  v& = Int(Val(Text1) * 10) + 1
  Text1 = Format(v& / 10, "0.000")
End Sub
2行のプログラムをつくりましたが、あら不思議、これは動きません
Intが悪さをしている、Intはいらないと分かったのですが
なぜIntが悪さをするのでしょうか

378 :
整数型に変換するから

379 :
整数型に変換してるんですけど
INTの外にある「+1」が無効になる感じです

380 :
v& = Clng(Val(Text1) * 10) + 1

381 :
Dim v&
この瞬間見る気が失せた

v& = Int(Val(Text1) * 10) + 1
    ↓
v& = CInt(Val(Text1) * 10) + 1

382 :
お二方のは、最初の1回だけ動いて、
以降は動かなくなりましたよ
しかしCsngやValだと
106.456→106.500→106.600→106.700・・・
としたいところ
106.456→106.600→106.700・・・
になってしまうけど、まぁ動きました
お手間をとらせました、有難うございました

383 :
根本的にわかってない奴

384 :
ああ分かったよ
実数の扱いの深い部分だね
Debug.Printで見ても表示されないから分からなかったわけだ

385 :
これだ
? Csng("125.600") * 10
1256

? Csng("125.600") * 10 + 0!
1256

? Csng("125.600") * 10 + 0.0
1255.99998474121

386 :
こんなやつが作ったソフトを使う人がいるのかと思うと・・・

387 :
>>386
と思うだろ?ところがすっとこどっこい
お前が使ってるソフトを作ってるやつも似たりよったりなんだぜw

388 :
VB.Net ではなくVB6.0を愛用してます。
世の中64ビットOSになり、次は128ビットになりっとどんどん大きくなると思うんですが、
今まで作成した私のVB6.0のアプリは今度どうなるのでしょうか。
多少VC++が分かるんですが、実装するのはやっぱり使い慣れたVB6.0が手っ取り早いし簡単で、ずっと使いたいんですが、、、

389 :
>>388
馬鹿はRばいいよ

390 :
>>388
切迫感無いですね
保全関係の請負で食べてる人ですか?
それだけ過去資産持ってるならそれをC++なりで再現する方向で精進するのが普通の発想だと思いますがね

391 :
>>388
OSがランタイムサポート打ち切るだろうからお前も死亡

392 :
>>391
具体的にサポート切る話出てます?

393 :
Basic系の言語って
今でも有るのですか

394 :
「系」で良いのなら全ての現代的プログラミング言語は
BASICの影響を受けたBASIC系言語と言えるよ
プログラミング言語の系図ぐぐってみ

395 :
修正
Basic言語って
今でも有るのですか

396 :
>>395
MicrosoftのOffice,WORD,Excel,PowerPoint
はVisual Basicで組まれているのでは無いのですか?

https://ja.m.wikipedia.org/wiki/Microsoft_Visual_Basic

2008年でサポート終了

https://ja.m.wikipedia.org/wiki/Microsoft_Visual_Basic_.NET

397 :
>>395
馬鹿はRばいいよ

398 :
>>397
おまえそれしか言えないの?

399 :
大昔N88やクイックBasicで
遊んでいたのでちょっと気に成った

400 :
YoutubeをTHXでダウンロードすると動画タイトルがファイル名になることがあって
動画タイトルに連音符のような特殊文字が使われているとVBで扱えなくなる
エクスプローラでリネームしてやれば済む話だけども
寝てる間にダウンロードして所定のフォルダに所定のファイル名で保存するプログラムは動作しない

変な文字コードが入り込んだファイルというのはFileListBox上には存在するけども
FileLen,Open,Name,FileCopyなどでは存在しないファイルとなる
実際のファイル名とVBが見ているファイル名が違うからだと思われる

401 :
例えば適当なテキストファイルがあって、それをエクスプローラで
12♬34.txt
とリネームします
これをVBのプログラムで読むには?

402 :
そもそもVB6ってロングファイルネームサポートされてないんじゃ?
8.3形式のファイル名で読むしかないんじゃね

403 :
>>398
そいつはこの板を荒らしてるBasicジジイだ。触っちゃいけない

404 :
>>401
そもそも VB6.0 のコードエディタに貼り付けても化けちゃうしw
CreateFileW 等の API を使ってゴリゴリ書くしかないだろうね。

あと、MAX_PATH を超えるような場合は \\?\ や \\?\UNC\ 等のプレフィックスをつける必要がある。
ttps://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

405 :
まだ使ってる人いるのかw
VBって割と最初からUnicode対応だと思ったけど、IDEのエディターやコンパイラは対応してなかったのかw

406 :
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

LVCSB

407 :
LVCSB

408 :
EXEはVBPと同じフォルダに作られるのがデフォルトだったけど
どうもWindows10の新しいバージョンになってから
EXEが作られるフォルダのデフォルトというのがカレントフォルダとは限らないようだ
いったい何を見てEXEを作るフォルダのデフォルトを決めているのだろう

409 :
Win10の最近の更新からVB6がインストールができなくなったという情報あり
Win10をUSBなりからクリーン・インストールしたら
まずVBをインストールして、その後にWinの更新をすればいいのかも

410 :
ついに殺しにかかったか

411 :
>>409
なぜその情報元を書かないのか

412 :
R75

413 :
R75

414 :
最後の行だけ改行コードがついてないテキストファイルがあって
それを読みながら修正などしながら、別ファイルに書き出すという処理で
最後の行には、どうしたって改行コードがついてしまうよね

415 :
>>414
Write使えば付かないでしょ。

416 :
最後の行だけWriteを使う?

417 :
そこは工夫の問題じゃない?
最初だけ改行なしでWrite、次からは改行+Writeでも良い。

418 :
全て書出し終わったファイルをバイナリで再度開いて末尾の0D0Aだけ削除

419 :
なるほどー
「まずバイナリでファイル末尾の改行の有無を判定する
末尾に改行なしなら、2行目以降は、改行コードを頭に付けて出力する」
ありがとうございました

自分にない発想に出会うと感動しますね
数年前に阿修羅で出会った感動の書き込みを紹介しますと
「日米戦争はイカサマだった→東京裁判は昭和天皇が進駐軍にやらせたものだった」
これにはぶっ飛びました
自分では色々考えたつもりでも、それは所詮自分の殻の中の世界であって
真実に到達できていない可能性があるんだと思い知らされました

420 :
>>419
周りが馬鹿やめろよと思っていることに気付かない人かな

421 :
別におかしくはないが

422 :
こういうのをおかしくないと思うような頭だからまだVBなんかを平然と使うのかね

423 :
どこがおかしいか言えないくせに

424 :
>>423
( ´,_ゝ`)プッ

425 :
セミコロンしか思いつかない

426 :
天皇が日本人殺し専門家だったということかな

427 :
開業医が美人の受付を雇うのと同じ?

428 :
2発の原爆のうちの
広島の方は天皇原爆だったという話だよ

429 :
VB6.0を現代的なOSで動くようにしたら需要あるだろうか?

430 :
>>429
実際に求められてるのって実はその辺だと思う
最近の言語は進化が作成者のオナニーになっているというか
素養のない一般の人(だが仕事で必要)には
VBAレベルが限界だと思う
OfficeのVBAがVB6ベースでも世の中そんなに困ってない

431 :
だよね
Windowsにしても買い替えさせるために不要な変更を行ってる
というか改悪している

432 :
VB6でクラスライブラリをビルドしてるんだけど、
1)Constみたいな定数を実装する方法は無いのかな?
2)Optional ByRef引数の指定が省略されたかどうかを、その関数内で判定するのはどうするのがいいだろ?

433 :
>>432の補足
ActiveX DLLとしてビルドして、外部プロジェクト(VBA)から利用しようとしている
1)外部プロジェクトからConstみたいに参照できる定数をActiveX DLLに実装できないか

434 :
VBSで、ウインドウハンドルを持たないボタンを安定して押す方法ってあります?
SendKey連打で切り抜けられるものもありますが、
→→↓↓Enterとか、必殺技コマンドみたいなのが必要な状況では、いまいち安定しません。
5秒待つとかダルいですし、そんなに待ってもダメな時もありますし・・。
もしくは、JSでもいいんですけど。

435 :
>>432
1.
Property Getだけ用意する
2.
IsMIssingてのがあるけどまずありえない値を初期値にしおく
http://www.openreference.org/articles/view/239

436 :
>>434
ブラウザ上のボタンはどうやって押すんだろね
分からんのでUWSC使ってる
UWSCはハンドルじゃなくてプロセスIDと座標を使ってるから
SendMessageじゃないAPIがあるんじゃないかと思う

437 :
>>436
ブラウザは、IEで、htmlで書かれている部分ならgetElementsByXXXXという関数で簡単に押せます。
ダウンロード通知バー内のボタンが難しい。

438 :
VBSじゃなければUIAutomationかAccesibilityでいけるんだが、VBSだと難しいかも。

>>436
webの話なの?
それならVBSでもいけるでしょ。
それからUWSCはAccesibility使えた筈。

439 :
VBSじゃなくて良いならPowerShellでUIAutomationは使える。

440 :
>>435
ありがとう。

2)
IsMissingなんて使ったことなかったw
まさにVariant型で配列を渡す引数だったし、良さそう
VBAでは初期値NullにしてIsNullで判定してたけど、VB6だと引数初期値Nullでコンパイルエラーになるから困ってた

1)
Optional引数の初期値には指定できなさそうだ
現在、InstancingプロパティをGlobalMultiUseにして、Publicメンバ変数にして、Initializeイベントで初期化してるんだけど、これもOptional引数の初期値には出来ない

441 :
>>429
需要ある
VBAのライブラリ開発では重宝してる。
VSTOみたいにバージョン相性もないし、ほぼそのままユーザフォームを含むVBA資産を再利用できるし。
現行では、いちいちファイル保存先を指定したり、ビルド先を指定したり、インターフェースの機能構成が不便だ。
あと勝手にレジストリにDLLが登録されるのはどうにかして欲しい(管理者権限を付けないで起動すれば登録されないけど)

442 :
>>441
そんなあなたに
https://eijiman.com/windows10-vb6-runtime/#Window10VB6

Microsoftによって機械翻訳された内容ですが、次の記載があります。

VB6 ランタイムは Windows 10 に付属し、その OS の有効期間にわたってサポートされます。

出典:Visual Basic 6.0 のサポートに関する声明 | Microsoft Docs

つまり「Windows10でVB6ランタイムが継続的に実行できるようにサポートし続けていく」ということになるのでしょう。

443 :
>>441
VBAのライブラリをVB6で作って意味あるの?w
UI以外はVB6で書けるならVBAで書けるでしょw
それにVSTOの代替にはならんでしょ

444 :
つーか、20年前に死んでる開発ツールをなぜまだ使うのw
もういい加減成仏させてやろうよ

445 :
>>444
死んでないからでしょ。

446 :
>>443
「ライブラリ」の意味も分からん中卒無能は黙っていろ

447 :
>>446
ライブラリはオフィスだけでも作れるんだけど....
むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。
上にも書いたが、UI以外はできることは同じなんだけど

448 :
> むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。

VB6ランタイムに依存することが
何のデメリットになるのかわからん

449 :
>>447
>ライブラリはオフィスだけでも作れる

どういう実装形態を言っているのか?
ワークブック参照とか言い出すんじゃないだろな?

450 :
>>438
VBSでもExcel経由でAccessibleObjectFromWindowが使えそうなんですが、
どうやってIID_IAccessibleを渡せばいいかわからないんです。
IID_IDispatch(?)を試そうとしたら、今度はStrPtr関数が使えないという。

451 :
>>782
いい加減にしやがれ
アベサポ

452 :
おう

453 :
win10でVB6使ってるけど
フォーム上に配置したコントロールを複数選択して移動すると
ヌルヌルして時間かかるよね
ま、問題ないけど

454 :
>>453
VB6でコントロールの編集が重い場合

デスクトップ コンポジションを無効にしないとデザイン画面が重い。
 1.コントロールパネルで「パフォーマンス」を検索
 2.パフォーマンスの情報とツール
 3.視覚効果の調整→視覚効果タブ
 4.カスタム内の[デスクトップコンポジションを有効にする]のチェックを外す

455 :
コントロールパネル
→システム
→システムの詳細設定
→「詳細設定」タブ
→パホーマンス
→カスタム
このチェックボックス付きリストの中に
「デスクトップコンポジションを有効にする」はありませんでした
Win10 Homeだからかもしれません

元々アニメーション表示のような「効果」は大嫌いなので、ほとんどOFFにしてましたが
全部OFFにしても変わりありませんでした
でもまぁWin10でコンパイルできるだけでも御の字
お手数をおかけしました

456 :
アニメーションて好き嫌いでするもんとちゃうで

457 :
DOS窓では上手くいくのに、VB6から以下を実行するとうまく動きません。
何がいけないのでしょうか?

Shell "powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON'-verb runas & shutdown /r /t 0", vbHide

458 :
TESTSIGNING ONの後のスペースが抜けてましたが、相変わらず動かない・・・。

powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON' -verb runas & shutdown /r /t 0

459 :
DOS窓で動くけど、VB6からは動かないと言ったら
昔ならDOS時代のカレントフォルダ上で動くアプリだからってことだったけど
パワーシェルとかわからん

460 :
なんやカレントフォルダ上で動くて

461 :
VBからShellでPowerShell呼び出して何かを動かすの?
ピタゴラスイッチみたいなことするね。

普通にプログラミングしてる奴なら気持ち悪いとか、かっこ悪いと思うんじゃないかな。

462 :
世の中使えるソフト屋と使えないソフト屋といるだろ?
気にならないということはつまりそういうこと

463 :
VBのコード編集画面てWin10でカーソル太く設定しても変わらないんだ
しかも点滅が5秒で終わるしバカじゃなかろかWin10

464 :
ピクチャの高さを設定して、設定できたか確認する
Picture1.Height = 50
Debug.Print Picture1.Height

巨大なピクチャはメモリの都合か、設定できないのは知ってるんだけど
こういう小さいピクチャでも設定できないケースがあるというのは、
どういうことが考えられるでしょうか
Picture1.Refreshを入れてもDoEventsを入れても変わらず
Win10です

465 :
464は削除しといて
勘違いだったかもしれない

466 :
PowerShellねえ
Windows API利用する方法探る方が良い様な

467 :
>>440
初期値Nullなんて止めとけ
属性でMAX値設定する方が固い

468 :
画面だけVBで裏ではコンソールアプリ動かすなんてよくやってたから違和感ない

469 :
VB6のFormat 関数の和暦変換
レジストリの和暦データ見るようになったよね

470 :
つまり今まで見てなかったのか?
VB6のランタイムに何か修正あったのか?

471 :
最初からこうなることがわかってたら独自実装のFormat作らなかったのに。遅いねん

472 :
MS も公にはVB6 対応しまーす
とは言いにくかったんでしょう

473 :
今のままでは令和に変換できなかったってこと?
で、今後は改元に対応するようにランタイムが修正されたと。

474 :
Windows10(64bit版)、Jet4.0(DAO3.6)でSQL文(OpenRecordset"SELECT...")を実行すると
まれにフリーズ(応答なし)になるの何で?
同じプログラムでもWindows7(32bit版)だとフリーズせず結果が帰ってくる

475 :
地元でVB6→VB.NETへのマイグレーション案件有るんだが
移行が一足飛びで出来ない事実を知って炎上必須っぽいので様子見

476 :
Win10のmsvbvm60.dllのタイムスタンプは2018年になってる
天皇の生前トンズラが分かった時点でレジストリを見るように対応したってことだろうか

477 :
自分用のメーラー作ってるんだけど
BASP21使ったことある人いる?
RcvMailとRcvMail2があって、それぞれSAVEコマンドがある
どう違うの?
コールバック関数で処理を中断できるようにした2を後から追加したってことなのか

478 :
Windowsには、標準でVBのコンパイラが入ってるそうだけど、
GUI作るときはどうすんの?

479 :
>>478
標準でVBのコンパイラについてはよく知らないけど、GUIはWin32APIだけで出来ることは出来る。

480 :
コンパイラじゃなくてランタイムのことでしょい

481 :
>>478
方法: コマンド ラインから Windows フォーム アプリケーションを作成する。
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/how-to-create-a-windows-forms-application-from-the-command-line

482 :
>>481
それ、VB6.0で通用する要素0に見えるんだが。

483 :
う〜ん、普通にVSでGUI作って、
コンパイルだけ標準コンパイラって無理かな?

484 :
VBAのインタープリタなら入ってる気がする。

485 :
ニュー速+でwin10アップデートするとVB6/VBA全滅するってスレ立ってたけど、こっちは静かだな。

486 :
ParamArrayなんて使ったことないし

487 :
2019 年 8 月の更新プログラムに記載されている VB6、VBA、VBScript の問題について
https://social.technet.microsoft.com/Forums/ja-jp/7bc50952-4cdb-4c94-b513-710ce91380e0/2019-24180-8?forum=Wcsupportja

488 :
それは知らなかった
おれはバリアント型の配列を使ったことが無いから無事だっただけか

しかしWin10はおかしいな
毎月、システム丸ごと入れ替えてるんじゃないかと思うほど大変更をして
メモ帳の仕様を変更しましたとか、誰も望んでいないようなことを言う
絶対なにか企んでるよな

489 :
>>488
1. この程度の変更は普通
2. ユーザーの要望を受け付けてる
3. メモ帳の変更は1809で人気第二位になった機能
https://insider.windows.com/ja-jp/community-news/windows-insiders-vote-for-their-favorite-features/
#2 ? A better Notepad

WSLの素晴らしさは開発者ならだれでもそう思うし、
WSL=Linux対応に関連するメモ帳の機能強化は当然の結果。やらないほうがおかしい。

490 :
この程度の変更は普通って誰基準で普通などと言うのか
Win10を出して何年経ってるんだ
毎回広範囲な変更しやがって
試行錯誤でユーザーに試験させている
サービスで言うと毎回20サービスくらい変更している
一向に収まる気配なし
どんだけ完成度低いんだ
UIは子供が作ったようにメチャクチャだし

491 :
>>Variant型配列
セキュリティ上宜しく無いと言う話
何でも受け入れるVariant型は確かに問題有る

492 :
まあ古代VBプログラマの板に来る奴なんて保守派だよな

設定アプリとコントロールパネルをいい加減統一して欲しい
ついでに言えば管理ツールも

493 :
>>490
> Win10を出して何年経ってるんだ
> 毎回広範囲な変更しやがって

イミフ。1ヶ月で広範な変更したら怒るだろ?
何年も経ってるんだから、そりゃ最初に比べれば
変更は多いだろうさ

494 :
普通ならそのレスが何を言いたいのかはっきりわかるはず

495 :
うん。>>490が実は何も困ってないのに
文句だけ言ってるってことはわかるよw

496 :
RmDir直後にMkDirしたら「ファイル名または番号が正しくありません。」になるのやめてくれ

497 :
メモ帳でテキストを作っったら
プログラムから正常に読めなくて悩んじゃったよ
時代は変わっているのじゃのう

498 :
BOMかな
なんでデフォルトがありなんだろうね
今無い方が主流だよね

499 :
メモ帳ってデフォルトでBOMつけたっけ?

500 :
今のメモ帳はBOMなしUTF-8がデフォだよ

>>498
Windowsは複数の文字コードに対応している。
その文字コードを正しく認識するにはどうしてもBOMが必要になる。
例えばShiftJISとBOMなしUTF-8を完全に見分けることは不可能
ASCII文字しか書かれてないファイルはShiftJISとしてもUTF-8としても正しい
そこに日本語文字を追加する時どちらで追加すればいいかなんてわからない

LinuxはUTF-8(正確にはLANGで設定されたもの)が基本です。
他の文字コードは知りません。とアクティブな文字コードを一つに限定した。
一方Windowsは過去の文字コードも考慮しつつ、同時にUTF-8に設定を変えることなく
対応することにした。その互換性に関する考え方の違いからそうなった。

501 :
Unicodeの最大の成果は「固定長の文字コードとかあり得ない」という事が明らかになったこと

502 :
いまからVB6の開発環境を作るためにはどうしたらいいでしょうか?

VisualStudioサブスクリプションに含まれていますか?

503 :
VS6をヤフオクで買えば
いやVB6だけ買えばいいか
Win10でも動くよ

504 :
>>502

Visual Studio SubscriptionsにならVisual Basic 6.0 Enterpriseあるで。

505 :
久しぶりにVB6を導入しようとしたらMSDNライブラリディスクを紛失してしまいヘルプが開かない
VB6開発環境導入済みのPCからヘルプライブラリをコピーしただけではF1どころかCOLファイルも開けなくて困った
もちろん私の事だから解決できましたけどね

506 :
>>505
> MSDNライブラリディスク
2年間で何セットか送ってきてて最後のを入れるようにしてたけどオンラインにもあるんだよね
無いんだっけ?

507 :
>>506
ある時期以降にサブスクリプションで送られてきたMSDNライブラリは使えませんでした
身辺整理のために古いディスクを大量廃棄したのですが、その時にVB6本体ディスクだけあれば良いと思ってしまいました

508 :
オンラインには英語のライブラリだけはありますが、IDEからF1で引っ張れないし使いずらい

509 :
MSDNに昔のMSDNLibraryあるで。

510 :
サブスクリプションを解約してすぐ必要になるというのは皮肉なものです

511 :
MSDNライブラリ日本語版が取れないのは痛いですね
https://馬ちゃん.com/Agent/index.html

512 :
>>511
英語版で良ければVisual Studio 6.0とMSDN Libraryの両方が揃いますね
日本語版Visual Studio 6.0と英語版MSDN Libraryでは不整合になると思います

513 :
50にもなって魔界の仮面弁士(笑)

514 :
若手が育たないからこんなことでもしないとね

515 :
ああ、マイナーなやり方を調べている時に、よく出てくる人ね。
何者なのかと思っていたが。

516 :
>>513
お前、よっぽどレベル低いんだな。
魔界の仮面弁士さんを知らないとはw
この20数年の間、VB界隈で日本で1番の大物だぞ。
VB6.0、VBA、VB.netで上級者を自認する者達で、彼にお世話になってない奴なんていないだろう。

517 :
恥ずかしい人には恥ずかしいファンが付くんだな、としか思わないと思うよw
デーモン小暮を連想させるね

518 :
自分よりレベルの高い、明らかに手が届かない人を叩きたくなる心理は
劣等感や反骨精神旺盛な人に見られるそうだが
該当するだろうか?

519 :
叩いてるのは明らかに手が届かないとすら分からないレベルだと思うよ。
ある程度のスキルが有れば手が届かないと思っても憧れるだろ。

520 :
>>519
ネットではリアルと別人格になる人が多いものです
憧れも匿名の世界では邪悪な憎しみや妬みに変わることは珍しくありません

521 :
>>517
デーモン小暮は立派な人物だぞ
「神」が人間に戦争させてきた
「日本の神」は京都大学に原爆を開発させ広島で自爆させた
広島に住んでいたデーモンは、神こそ人類の敵だと知った
それを伝えたいための悪魔のキャラだったが
伝わらなかったと嘆いていたよ

522 :
>>521
高校が俺と同じ横浜の桐蔭学園だからな
俺より成績が少し悪くて違うクラスだったがよく知ってた
アイツは早稲田へ行ったが俺は筑波大学へ行った
違う人種で良かったと思うわ

523 :
村上さん

524 :
変なの発見した
VB6、ブラウザ:クローム @Win10だけど
デザイン時のフォーム上で、マウスによる範囲選択の要領で
マウスボタン押したままマウスをグルグルと動かしていると像が浮かび上がって来る
ブラウザ上の映像に違いないのだけど、今表示しているページとは違う

525 :
期間工ブログの収入は1500万円でした。【フリーランスの現実&底辺からの復活編】
https://www.youtube.com/watch?v=aijLjFLOuC4
工場勤務、30代フリーターが「ブログ」で200万稼げた理由! ◯◯があったから?
https://www.youtube.com/watch?v=Cjmk4XusQVM
ブログで月200万稼ぐ、フリーランスの1日
https://www.youtube.com/watch?v=jaV2GyBgNX4
【クラウドソーシング】Webライティングで月商100万円まで稼ぐ方法をプロに解説してもらった!
https://www.youtube.com/watch?v=oYoaBwQt0Cg
1年半でライターの地位を確立した営業術!駆け出しフリーランスは要チェック【ニシキドアヤト】
https://www.youtube.com/watch?v=DFtmkhw-lHM

526 :
昔からある「Wingdings」という絵文字フォントが
ボタンのキャプションにすると便利そうだと、今さら気付いたんだけど
実際に使ってみると、Win10の文字コード表とちょっと違うところがある
具体的には、コードで&h81から31文字、&hE0から29文字が使えない
そこに矢印とかチェックマークとか使いたいのがあるのに
なんで使えないのでしょう

527 :
VBでもうちょっとかっこいい画面作れないんですかね。visual srudioの共通?コントロールださすぎ。

528 :
今更なんか作るの?

529 :
プログラムでSQL作る箇所?、一つの変数に項目やらウェア句やらを代入してSQLを
作る箇所を書くのが、(インシデントの調整等)毎回めんどくさいなと思っていたから、
テキストボックスにSQLを書くと、自動でSQL作る箇所を作ってくれるプログラムを作ろうと
一瞬思ったけど、画面がダサくて作る気失せた。

530 :2020/04/21
嫌な事件だったね……

Excel VBA 質問スレ Part65
プログラミングを勉強したいのだが
delphiで作った有名ソフトって何があるの?
俺主催囲碁プログラミングコンテスト
Android SDK以外でのアプリ作成を全面禁止へ
C言語の設計ミスった危険な関数トップ10決めようぜ
プログラミング言語の難易度ランク作りました ご覧ください
【.NET】F#について語れ2【OCAML】
Androidプログラミング質問スレ revision54
【漏れは】猫でもわかる質問スレ【猫以下です】
--------------------
BABYMETAL総合★1257【ベビーメタル】
日本の労働環境を世界に誇っていけ
【ファンキル】ファントムオブキル493【5周年 詐欺 糞運営 糞泉】
【スギ花粉】殺伐広場へR162周山街道【注意】50周目
【GYT・GTV】北関東のアニメ事情5
【速報】大雨特別警報 数十年に一度の災害
M-1グランプリ 2019Part23
【児童教職員84人死亡】大川小の教訓を防災教育に 遺族語り部活動 宮城・石巻市教委など初参加
女流落語家てR上手いのが多そう
アジア系とヒスパニックの友人しかできない
xxx 将国のアルタイル 第12州 xxx カトウコトノ
複勝1.0-1.1で馬券圏外になった人気馬
初音ミクの肛門について
【ロッドもリールも】バスワン10【お値段以上】
裏口入学事件で、野党議員2人が「霞が関ブローカー」との関係を認めました ネット「羽田、吉田を国会へ。党首様は辞任だよな」
☆☆☆ゲーム製作板を、盛り上げる企画スレ☆☆☆
【ツイパク】宇陀魔ヲチスレ part.17【トレパク】
やる夫がプロ野球チームを作るようです3
【頭文字】カローラなどリコール
【台風19号】荒川 氾濫危険水位に到達 ★9
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼