古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net
ここは古代に使われていた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/
※「まず自分で調べる」クセを身につけよう。 古代かいw
もっと古いのを使ってた俺みたいなのも居るのに! 古代の言語なんだろうけど、全然使いこなしていないんだよな(w) いにしえの古代兵器がオーパーツであるのは
何時の時代のファンタジーも一緒だ。 >>5
ありがと。
>>全然使いこなしていないんだよな(w)
これ自分のことなんだよね。
奥が深いなと思っている。 >>5
オーパーツとおパンツって似てるよね。
そういう意味でもファンタジー。 古代でBASICといえばN−BASIC辺りを指しそうなもんだけれどな
俺も歳をとったのか 結局スレタイをどうこうしようと
VBに.NET以前のバージョンのVBが存在してることを知らない連中が紛れ込む悪寒 そんな奴はいねえよw
VB6以前を知らないのにあえてVBを選択する奴なんかいない。
仮にいてもVBでググれば嫌でもVB6の存在を知ることになる。 ググればすぐ分かるようなことをスレに質問に来るような連中って結構いるんだぞ >>8
古代BASICならそうかもしれないが、
古代Visual Basicなんだから、N-BASICは当てはまらない。 VB6を現役でコーディングしてる奴は、このスレに居るのだろうか? ここにいますよ
新規システムもバリバリ開発してますよ プログラマー集めて石を投げればJavaやってる奴に当たると言うくらい
Javaが横行している世の中で、VBばかりやってる奴は
相当な希少種だという話を聞いたことがある。 Javaの公式APIドキュメントとかで日本語版が用意されているのはJavaのメインの顧客は日本だからか?
VB6がWindows10でも使えるようになったのもやはり日本がVB6のメインの顧客だから? C→C++→Java→VB6→VB.NETと来て、VB6がメインな俺は貴重な存在
ほんとは早いうちに.NETに移行したいけど、予算や納期がまにあわん
客もフレームワークかえたら余分な金かかるだけだろってわかってるから
動くうちは当面VB6だわ
>>16
アメリカでもVB6は現役、もし未だにVB6つかってんのが日本だけじゃとっくに切られてると思うわ サードパーティー製のOCXとか使えなくなったりしないの?
グラフとかグリッドとかその他もろもろ。 俺の周りでは.netに移行してもvb6ののりでしかやってないやつばっか まだwindows2000のPC使ったコントローラが動いてて… うちなんかNT4のシステムが・・・VB5で・・・ううっ・・・ DOS機のフロッピーに組んだQuickBasicシステムが調子悪いっていう問合せがきた・・
さすがに勘弁してほしい・・
中古のHDD積んでWin98とVB5で造り直してやろうかなw QuickBasicは通信が出来たから
通信対戦テトリス作った記憶がある
電子専門学校行ってた俺の卒業論文代わりである >>28
ISAのハード積んでるのよ、これが。
どうやらそれ自体は生きてるみたいだからデバドラの事情でその辺の時代までしか進化させられないんだよね。 古代ってつけるから、古いBASICの話が盛り上がってしまうではないか 古代っていうからファルコムと何か関係があるのか思った >>34
祐三なら今、世界樹と不思議のダンジョンの音楽作ってたみたいだぞ 前スレで例外処理についてやってたみたいだけど
なるべくエラー行を特定するためにも
On Error Resume NextとErr.Clearでなんとかするって自分内で結論した
つまりエラーになる予測が立つメソッドを呼び出す時は呼び出す側が責任を持つけど
それより上の親とかは関知しない
処理が進まない致命的なエラーなら子に状態を返させて親が終了したりするけど
VBの例外機構ってネストの概念がないからOn Error Goto
とか凝ったことやろうとすると破綻する気がする >>38
いきなり結論覆して申し訳ないけど、そもそもエラーになる予測がつくところなら先にチェックしないか?
予測がつかない実行時エラーは中断するべきだろうから
親というよりは最上階層まで影響が出ることになるかも知れないし。
なるべくエラー行を特定したいと言うのも、どうせOn Error Resume Next使うということは
その先でエラーが起きたかどうかの分岐を入れるつもりなんでしょ?
そもそもそんな作りにするくらいの長い関数を作るつもりなのかを先に聞きたい。 >>39
ファイルオープンするために、いちいちファイルの存在チェックとか、パーミッションのチェックするの?
それでOKになったとしても、誰かが排他オープンしてて、オープン失敗とかあるかもだし。 >>40
ファイルの存在チェックくらいするだろうけどまぁいいや。
その辺を実行時エラーで捕まえるのはいいとしても、
責任?はもう少し考えた方がいいと思う。
例えば分散トランザクションとか、2度以上に渡って段階的にロールバックが必要で、
それぞれ別の階層で行われるような場合とか。
責任を与えるとしたらOnErrorが書いてあるところの責任はエラー情報の収集、
それ以外はそれぞれの処理に合わせて臨機応変になると思うよ。 >>41
責任について会話したつもりはないし、するつもりはない。
アトミックな動作で成功か失敗かわかるのに、わざわざ不十分で不要なエラーチェックを
事前にして、なおかつそれでOKでもさらに失敗する可能性があるようなことを勧めるのは
どうかと思っただけ。
socket.connectしてみれば、有効なネットワークI/Fが無いところから、ホスト名が解決できない、
解決はできたが接続不可、接続タイムアウト、そして予見可能なさまざまなエラーが
わかるんだが。 >>39
> そもそもエラーになる予測がつくところなら先にチェックしないか?
実行時エラーっていうのは、先にチェックが出来ないものなんだよ。
先にチェックした所で意味が無い。(例外はある)
例えば、ファイルが有るか? を調べた後に別プロセスが消したらどうする?
データベースに接続できるか?をチェックした後に接続が切れたらどうする?
ロックかけられるか?を調べた後に別プロセスがロックしたらどうする?
先にチェックするという考えをしたら
それは間違いだと思ったほうがいい。 VB6と関係ないプログラミング一般論で熱くなるなよ…
そもそもVB6に常識は通用しない(キリッ >>43
Windowsはファイルオープン後にファイルが消される心配はない、つまりオープンでエラーチェックすればいい
データベース接続にしても、実際にコネクトだしてみて成功か失敗かで判定するから何の問題もない
先にロックされていたらロック待ちに入るだけだから何の問題もない、タイムアウトするまで気長に待てばいい
トランザクション開始後に何かエラーがおきても、とりあえずロールバックだせばいい
それにロールバック前にプロセスが死んでもTPモニタがトランザクションを回収してくれるから安心していいぞ
分散トランだろうろうがローカルトランだろうが、そこらへんは同じだ >>45
実行時エラーを、事前にチェックで発生しないように出来はしないって話
話わかってないなら参加しないでね。
あと、そこに書いてあること、
全部間違いだから。 ははは、単に書いてあることが理解できなかっただけでしょ
ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ
いろいろ糞なSymfowareでもさえそんなことしないぞ 当たり前だけど>>46の方が正しいね。
このレベルが議論になるってプログラマ1年生かよw
前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。 >>48
> 前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。
同一人物じゃないの? >>47
> ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ
http://www.kitagawa-hanga.com/se/s_vberr.html#EJ005
> Q:実行時エラー'''-2147217900(80040e14) ロックできませんでした。
> A1:ACCESSのDBが開いていた。
それにもともとデータベースのロックとは書かれてないので
ファイルのロックの可能性もある。 実行してみなければ、実行できるかどうかわからないことがある。
ということを理解できるかどうかという壁があるんだと思うね。
外部リソースを使うようなもの。
例えばファイルとかデータベースとかは
どんな操作でも実行時エラーになる可能性がある。
例えば、大量のデータを書き込んでる途中で
ネットワークが切れたらどうするの?とか
ディスクがいっぱいになったらどうするの?とか
こういうのは書き込み前にいくらチェックした所で
問題なく処理が完了するかどうかはわからない。 なんか話がずれてきた感があるな。
そういう本当に実行してみるまでわからない場合じゃなくて、わかる場合でさえ、ほとんどの場合は
事前エラーチェックなんて不要だって話なんだが。
例えば、ファイルオープンチェック前のファイル存在チェックなんかいらないとか。
(ファイルが存在しない場合にオープンエラーになるケース) >>52
俺の定義では、ファイルのオープン前の存在チェックは
「実行するまでわからない」に含まれています。
なぜなら、存在チェックした後で
ファイルが消される可能性があるから。
実行する前にわかるものは0除算チェックとかね。
ただ重要な事はアプリを作る上では原則としてどこの行でも
実行エラーが発生するかもしれないという前提で作ること。 >>53
> 俺の定義では、ファイルのオープン前の存在チェックは
> 「実行するまでわからない」に含まれています。
俺もそうだよ。
実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。
同じこと何回も言ってる気がする。 >>51
大量書込みの場合は、書き込み処理前の空き容量チェックと
write実行時の両方でエラーチェックするのが当然なんだけど
なんで事前チェックが不要だと思ったのかが聞きたいな >>55
どうでもいいけど、ファイルを読み込みオープンする前にファイルの存在チェックはするの? >>55
事前チェックは単なるユーザビリティ用。
例えば空き容量チェックをすることで
30分たってからエラーになるよりも
その前にわかったほうが、ユーザビリティは良い。
だがこれはディスクに空き容量があることの保証にはならない。
なぜならチェックした後に、他のプロセスが書き込んで
チェックした時よりも減ることがあるからだ。
だから事前チェックは「空き容量があるだろうチェック」であり
そのチェックを通っても、空き容量がないというエラーが発生することがある。
簡潔に言うと
・事前チェック=必ずしも必要ではないう(追加でやっても良い)
・実行時エラー=必ず必要 >>54
> 実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。
俺は最初から、事前エラーチェックはしなくても良い
してもいいが、事前にチェックした項目でも、エラーが発生することがある
って言ってるんだが? >>56
ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて? >>56
するときもあるし、しないときもある
するときっていうのは、>>57のいっているようなユーザビリティのためってことが多い
処理が何フェーズかに分かれていて、それぞれ処理に数分かかり使うファイルが異なる
ような場合だと、あらかじめ各フェーズで使用するファイルやその他処理実行に必要な
要件を満たしているかを、すべてチェックしてから最初のフェーズを開始したほうが
何十分も処理したあげく途中で失敗してユーザを落胆(もしくは激怒)させる可能性が低くなる
しないときは、それが必要のない時とか、そんなプログラム書くのが面倒くさくなった時も含まれる なんで、あんたらVB6と無関係な話を延々とし続けるんだ? >>59
> ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?
ファイルリストボックスに列挙されてなくても、ファイルがある時はあるし、
列挙されていても、ファイルがないときもある。 VBだとフォーム上のコントロールにデータをもたせると比較的簡単にプログラムが組めてしまうから
逆にプログラマがバカなまま育たないのかも知れないな
最初からVBしかやってない人と、ほかの言語からVBに来た人では、
データ構造とかエラーチェックに対する考え方がまるで違う気がする >>63
> 最初からVBしかやってない人と、ほかの言語からVBに来た人では、
> データ構造とかエラーチェックに対する考え方がまるで違う気がする
だから何なの? 多分、自分がVBしかやっていないから他の言語から来た人を余計な事をする
馬鹿だと言いたいんじゃない? ほかの言語って具体的に何を想定してるんだろうな
VB時代の言語でVBと同程度のRADツールで比べてもそう言う結論になるのかどうか delphi…
OSSでこういうのができないものか >>68
VBと比較するのに同程度じゃないものとくらべる方がおかしくないか?
たとえばアセンブラとVBで
>データ構造とかエラーチェックに対する考え方がまるで違う
って言われても、そりゃそうだとしか思わんが なんかWIN7でVB6のIDEが動かなくなったんだけど
MSパッチでもきたのかな。
以下のメッセージが出て
コンポーネント'ComDlg32.OCX'、またはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。
Continue?
以下コマンドを管理者権限で実行しても改善せず。
C:\Windows\regtlib.exe C:\Windows\system32\msdatsrc.tlb 自己解決。
regsvr32 /u c:\windows\syswow64\comdlg32.ocx
regsvr32 c:\windows\syswow64\comdlg32.ocx 過疎化ってるからチラ裏でも良いよね?
>>27だけど、Win2000とVB6で作っちゃったよw
全てにおいで懐かしかったな。
久々のVBいじりだったけど楽しかった。 そのWin2kはライセンスされてるのかね?
アクティベーションがない時代なんだよね
おれも知り合いの中国人に円盤もらったわ VB6プログラマなら、Win98やNTや2Kのパッケージくらい持ってるだろ Win98のCDパッケージをポケットに入れて、ポンポンと叩くとあら不思議!
WinNT4.0とWin2kのCDパッケージ二つに…
なるわけないよね… 最初のVBはWin3.1上のVB2だった
イベントドリブンが何だか分からなくて苦労したが
BASICの232C通信で使うON COM GOTOで既にあったんだよな VB2.0は神だったけど作ってた人はdelphiに移ったんだっけ VB6のIDEがWindows 10 x64に乗らん
みんなどうしてる? >>83
VMware WorkstationのゲストにVB6のIDEが動くWindows 7を入れてその上で使っている
いずれにせよx64でVB6 IDEを使うのは問題が多い
動かんわけではないが うちはとりあえずVirtualBox上のXPにインストールして使ってます >>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を使わず作れという案件があって使わせてもらったところ いまやランタイム個別インストールの要るVBはOKだったのかい >>87
VB6の日本ランタイムはXP以降では個別インストールは不要
?Msvbvm60.dll
?Stdole2.tlb
?Oleaut32.dll
?Olepro32.dll
?Comcat.dll
?Asycfilt.dll
?Ctl3d32.dll
但し、英語版を前提にしているので日本語を使用する場合は
vb6jp.dlのみシステムフォルダへコピー要
l
いまやと言われるが
?Msvbvm60.dll
?vb6jp.dll >>88
日本語版Windowsにはvb6jp.dllをプリインストールしておいて欲しいよな
そしたらEXEだけの配布であたかも動くように錯覚させられる >>89
日本語の文字はイメージにして貼り付けて原寸で表示すればいい。
実際にはランタイムで動くが配布はexe一本で済むから
.netのバージョンがどうとかサイドバイサイドにしたりやめたり訳わからん
C++ライブラリやMFCのバージョン依存からも解放される VC6使ってmsvcrt.dllだけリンクすればどこでも動くよ的なことをVB6でやろうとしてるのかな DLLの静的リンクとデフォで導入されたDLLを前提とするEXEでは意味が全然違う 昔ボーランド製言語でランタイムごと静的リンクってやってたよな
ちょっとしたアプリすら数MBのEXEになるってやつ
あれはあれで楽だった 悪の組織はVBとかGWーBASICでセキュリティーシステム構築しているよな VB6で接続出来るSQL serverのバージョンは2008、2012あたりまで? >>96
2016もできますよ
Native Clientもまだ使えるし、驚くなかれCOMのDMOでさえDLLをコピーしてレジストすれば使えてしまうのですわん! サポートされない = 使えない
と考える大手企業の俺としては× >>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さんは何が言いたいんだべか >>97
有り難う御座います!
ideも10にのるようだし、まだ何とか使えそうな感じですね vb6はwindowsを使い続けてもらうアイテムとしては
ほんと優秀だなw >>100
サポートされないとアナウンスされても実は使えることを発見した喜びと
大手企業の従業員で変なことはできない自分の立場との狭間で
気がおかしくなってしまった社会人だろうが >>102
最近は若者のパソコン離れが進行していて、プログラマはnetからスタートする人が多い
旧称VB.netが扱える人にVB6のコーディングをお願いした、ら絶対無理と断られた
VB6でコーディングできる人は希少になってる >>104
Excel とかでVBAでマクロ組んでる人を連れてくれば非常に短時間で習得しますよ。
ただ、最近はVBAの方が高機能になっているので、「なに?これできないの?だせー」
とか生意気なことを言われてもそこは我慢な。 へーそうなんだ 素直にVB6を継承したVB7を出さないマイクロソフト ダせぇ〜
CPUの進化の方向性の予測をマイクロソフトは完全に見誤ったな 高性能じゃなくて高機能だって言ってるようだが
VBAにVB6以降で追加された機能なんてそんなにあったか >VBAにVB6以降で追加された機能なんてそんなにあったか
連想配列、インタフェース継承ではない実装継承、stdcallだけでなくcdecl呼び出しのDLLも扱える
その他いろいろあるが、肝心のビルドはできないというお粗末な結果に・・・ >>109
え?
VBAっていつから普通に継承が使えるようになったの? VBAに連想配列もなかったはずだけどなぁ
ScriptingはVBAの機能じゃないし Windows3.1ですら現役なのだからVB6の現役引退なんて何十年後になるやら・・・
パリの空港で一時的に離着陸できない事態 原因はWindows 3.1搭載システムの障害
http://nlab.itmedia.co.jp/nl/articles/1511/16/news087.html 検索してもScriptingしかでない
なんてキーワードなん? 言葉遣いの機微からして魔界の仮面弁士さんだと思うけど
さすがとしか言えない >>115
魔界の仮面弁士さんが女性だって知らないだろ? VB6で作っていた業務プログラムがWindows 10で動かなくなりました。
スキルがVB6で止まっています。
VB .Net以降も試しましたがチンプンカンプンです。
他にDelphiでも多少プログラムを作ったことがあります。
こんな私はどのような環境に移行した方がいいでしょうか? 移行するまでもない
10に仮想マシン入れてその中で飼えばいつまでも使えるよ みんな、魔界の仮面弁士は、
恥ずかしい名前だからという理由で覚えてるだろ?w 仮想マシン上で動かすWindowsはどうやって確保するのさ
Virtual PCなんかはUSBとか認識しないとかじゃなかったっけ? VirtualBoxとやらはUSBもかなり使えるらしいが。
試してないけど。 >>121
VB6ユーザーがスキルそのままで移行するBASICって何がいいんだろう。 >>127
REALbasicから変貌を遂げたXojo(ゾージョー)がおすすめ
https://xojo.grapecity.com/
試しに作った婚活アプリがiOSとAndoroidで動いたのは圧巻だったわ >>126
Virtual PCは、Win8以降では使えないのでは? >>120
Delphiやればいいんじゃね?
Delphiはスマホアプリも作れるしWindows10アプリも作れるし今でも現役な言語だよ!
https://www.embarcadero.com/jp/products/delphi >>128
なんかこれ良さそう。
まさにVB6ユーザーの移行先?
RealBasicとの関係はどんな関係? REALbasic作ってたReal Software社が社名と製品名をXojoに変えただけ
Xojoの日本での代理販売会社はグレープシティ株式会社 グレープシティ株式会社と聞いてうさん臭さが・・・
やはり.netがスケーラビリティを拡大してくれることに期待して
MSと心中する覚悟で行ったほうが良いかも >>132
そうなら、REALbasicの不安定さ、バグの多さはそのままな感じ?
それとも別物になったのかなぁ〜? >>120
さわってれば似たような開発方法なんで分かって来るはずだよ
俺の周りのやつでもオブジェクト指向とかしらんやつがVB6ののりだけでやっていけてるぜ
がんがれ >>128
サイト見たらAndoroidで動くなんて書いてないんだけど。 >>135
オブジェクト指向は韓国人が得意だと思う
慰安婦をはじめ歴史に対する願望や妄想を具現化するのが得意だからだ
オブジェクト指向の設計には「こういうのがあったらいいなぁ」という発想が大切だ
夢を夢でなく現実なものにする
そしてその現実を組み立ててスキームを作る
それこそがオブジェクト指向のキモだと思う 右巻きとか左巻きとか関係なく純粋に韓国人はオブジェクト指向設計がうまいというだけの話だよ
日本人は誰かがやってくれると思って自分からは何もしない人が多いから Andoroidで動くんか!と目を真っ赤にしてググった情弱に言われたくない
誰かおバカなこの俺にインタフェース継承と実装継承の違いを説明してくんろ! ここVB6スレだから実装継承なんて知らなくてもいいよ たこが入ってないたこやきがインタフェース継承で
たこが入ったたこ焼きが実装継承? 実際にたこが入ってないのはたこ焼きとは呼びません
たこが入ってる保障がなくても、実際にたこが入っていればたこ焼きと呼びます >>145
そもそもインターフェイス継承って言葉そのものがおかしい。
実装継承って言い回しと対になってる対義語のような感じなんだろうけど。
インターフェイスは実装するものであって継承するものじゃない。
VBのキーワードもそうなってるでしょ。 タコ焼き焼き器がインなんとか継承で
タコ焼き焼き器に具を入れて焼いた状態がタコ焼き 実装継承なんて依存関係がややこしくなるからインターフェイスだけにしたVB6は実は賢かった >>139
リアルな世界でもネトウヨするなよ。
恥ずかしいから。 フォームやユーザーコントロールでインタフェースを実装できないゴミ Xojo使ってみた (転記)
最低限のコンポはひと通り揃っている
画面は見やすい
コードエディタがチカチカして遅い。補完も遅い。
言語は馴染みやすい
画面周りで冗長な部分がある(Delphiより手数が多い)
基本無料 ビルドするときにライセンス必要
エディタはTMemoと同程度だった
HTML系が充実しているので、これはとてもよさげ
ざっとの感想
Delphiほど業務的には作れず、軽めのものをマルチプラットフォームで作る感じだった。
これからの充実に期待。 結局インターフェース継承が実装継承とどう違うか説明できた人は皆無というお話でしたか? インターフェイスてのはクラスを使う側にプロパティやメソッドの存在を約束するためのもの
継承は元となったクラスの機能を土台にして機能を追加していくためのもの
ぐらいの理解しかしてない >>156
インターフェイスと継承の違いがよくわかる説明ではありますが
肝心な実装継承とインタ−フェース継承の違いが説明されてないような気がします >ID:546gewgT
これ以上の説明はここじゃなくてオブジェクト指向スレを探したほうがいい。
このスレでこの話題をすることにこだわる理由はある? >>158
そもそもインターフェース継承って何?
VBだと違うクラスの中で共通なクラスのインスタンスを生成して
プロパティやメソッドの引数や戻り値を引渡して、そのシグネチャをインターフェースに設定して多態性を持たせることを言ってる?
だとしたらそれは継承ではなく移譲(VB6では委託?)の一環で継承と同じような機能を作ったと言うだけ。
継承と決定的に違うのは、シグネチャが同じであれば元がどんなインスタンスであれ、インスタンスの中身を知らずに実装出来ると言う点。
例えばフォームのインスタンスだろうが普通のクラスのインスタンスだろうが
インターフェースに設定されたシグネチャさえ合っていれば多態性を持たせる事が出来る。 なんかめんどくせーやつがいるなぁ。
インターフェースIがある。クラスAがある。
クラスAがインターフェースIを持っていると主張する = インターフェース(を)継承(している)
その持っていると主張するインターフェースの中身を実装する = インターフェースの実装
その実装の中身が他のクラスを呼んでいるだけ = 移譲
だろうが。
インターフェースを継承しているといったとしても、その実装が移譲になるとは限らない。 インターフェイスを継承する、という言葉使いが古臭い それより継承や移譲をカタカナ英語にしないのはなぜかなー
インターフェースやクラスを漢字で書かないのはなぜかなー >>163
インターフェースは実装するものであって継承するものではないよ >>165
移譲はコンポジションって言うけどな。
試しにクラスやインターフェースを漢字で書いて見てよ。 >>166
そうだよ?
インターフェースは実装するもの。
だけど実装はしていないけど、継承だけしている状態ってのもある。
それはコンパイルエラーではあるが、概念としてはインターフェースの継承 >>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。
苦裸巣、韻断腑餌巣 >>165
それより一をカタカナ英語にしないのはなぜかなー
ゼロを漢字で書かないのはなぜかなー >>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。
階級、界面 インターフェースを継承したインターフェースというのはあるが >>172
そう言うのがあるから尚更インターフェース継承という言葉に違和感を感じるんだよなぁ クラス書くときにインターフェースを指定する、とはいうが継承するとはいわないね
クラスの継承と区別できていない人の誤用じゃないかと思う。 インターフェースを継承して・・・
それからインターフェースを実装する。
>>172みたいなのは、
インターフェースを継承して・・・
以上
インターフェースを継承する部分のコードは
どちらも同じ書き方をするはずだ。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) とりあえず「インターフェイスを継承して」さんにはVB6のMSDNを熟読されることをおすすめします。
それと>>172はVB6では不可能です。
以上 ここまで説明下手の連中が集まるとは驚きだ
インターフェース継承という言葉自体がおかしいとか逃げ口実まで出る始末
そんなんでは後輩がついてきませんよ これだけ丁寧に説明されておいて逃げ口上だと理解する人にどうしろと? >>167
ん?
移譲はdelegationじゃないの?
compositionはdelegationの手段。 考え方が逆だよ
同じインターフェースを持つ場合に継承する
まずはこれを理解しないとね やくざの親分が基本クラスで子分が派生クラスと考えた場合
親分はどの子分にも同じ言い方で指示しても子分は指示通り正しく動く
親分でないやくざが子分に指示しても子分は親分の指示でないから意を解せず動かない
このとき、親分と子分の間の意思疎通のルールがインターフェースに相当する
継承がインタフェースか実装かは親分と子分との関係によって決まる
親分よりも保身が第一と考える子分ならインタフェース継承
親分のためなら命を張れる子分の場合は実装継承 VB6ユーザーの俺にはチンプンカンプンなので、分かる内容に変えてください。 >>185
気に入った女の子と仲良くなりたいときに、直接女の子にアプローチするのと
その女の子を知ってる人に間に入ってもらって紹介してもらうのと
どっちが気が楽でしかも成功率が高いと思う?
この場合、間に入ってもらう人が基本クラスに相当し、女の子が派生クラスに相当する
その間に入ってもらう人(基本クラス)が多くの女の子(派生クラス)と知り合いであった場合
その知り合いに毎回同じ方法、手続きで違う女の子を紹介してもらうことができる
見ず知らずの女の子に声をかけてナンパする場合(継承を使わない場合)の成功率と
(基本クラス)に間に入ってもらって、同じ手続きで違う女の子にアプローチできる(派生クラス)
どちらの方が良いかはVB6ユーザーでもわかるはずだ 結局インターフェイス継承と実装継承それぞれのの長所・短所はどうなりますか? インターフェイス継承はインターフェースだけを継承しているから、
インターフェースを実装しなければ使いものにならない。
実装継承は実装を継承しているから一応使える。 いまいちインターフェース継承ってのが何を言ってるのか分からん。
例えば、クラスAをスーパークラス、クラスBがクラスAを継承したサブクラスとしよう。
VB6のスレ的に考えれば、クラスBでクラスAのインスタンスを生成して、
そのメソッドやプロパティの引数や戻り値をクラスBから内部に持ってるクラスAに引渡していることを言っているなら、まだ分からんでも無かった。
だが>>163辺りを見ていると、インターフェースをクラスで実装すること事態を
インターフェース継承と言っているように見える。
>>163はインターフェースを介することによって、どのクラスがどのクラスを継承するようになるのか説明出来るのか? ここは古代VBプログラマーのスレですよ。
オブジェクト指向の話は別スレでお願いします。 xojoってフリーソフトを配布するときもライセンス買わないとだめなの?
やけに高いよね? 消防車 is a 車
消防車 has a ハンドル
is a は継承。〜の一種。クラス
has a は、〜の機能を持つ・実装。インターフェイス。
例えば、携帯電話にカメラ機能を付けるなど、
相互に全く関係ないものをくっつける オブジェクト指向ってなんかしっくりこないんですけど。 インターフェースの継承は実装継承と比較するようなものではない
・インターフェースを拡張したインターフェースを定義する場合
・インターフェースを提供する(必ずしも実装はしない)クラスなどを継承するクラスなどを定義もしくは実装する場合
の後者はインターフェース継承ではない VB6のコントロール配列の特殊性はどうなの?
ハンドルも回すタイプとかステックタイプとかボタン付いてるのもあるな >>192
すごい!ここ数日の中で一番分かりやすい説明です!
本当に驚きました。ありがとうございます!
>>194
またカオスになってきた様相・・・ >>192
それを >>186の説明に適用すると
紹介者はおっさんでも美しい女性でも成立するが
紹介者がおっさんの場合、紹介される女性とは完全異質なのでインターフェース継承だが
紹介者が美しい女性の場合、紹介者でありながら自分も紹介される女性として成立するから
実装継承という事になるわけだよな >>195
フォームとそれに貼り付けられた(コンテナに入った)ボタンとの関係こそインターフェース継承だと思う
VB6でのGUI開発はその本質がインターフェース継承だがあえてそれをそう呼ばず
自分が定義したクラス間で同じような世界を実現するための仕様が Inheritsなのかもしれない インターフェースと継承の違いは基本となるインターフェースおよびクラスの特性で明白
インターフェースは各社のテレビを一元で操作できる学習リモコンのようなものだと思えばいい
使用者は各社のテレビごとに異なる操作方法を知る必要がなく、リモコンの操作方法さえ知っていれば
全社のテレビを、電源ON/OFF、チャネル切り替え、音量変更など全て同じように操作できる
その代わりに、学習リモコンは全社のテレビを操作するために必要な「インタ―フェース」を実装しなければならない
この必要なインターフェースを基本となるインターフェースにすべて実装しなければならないという制約が発生する
しかしその制約以外は何でもアリで、同じリモコンを使ってビデオデッキを操作してもいいし
各社のテレビは直接操作することも全く別のリモコンから同時に操作されることさえ許される
継承における基本クラスは各社がテレビを作る際に必要となるリファレンスモデルのようなものだ
リファレンスモデルであっても放送受信、映像表示および音声出力などテレビとしての基本機能は網羅している
各社はリファレンスモデルに色付けした自社製品としてのテレビを販売することになる
機能を追加するにしてもゼロからテレビを設計するには時間とコストがかかる
だからリファレンスモデルをそのまま拝借してそこへ追加機能を実装するスタイルが継承だ
リファレンスモデルは自分で実装する必要もなくどういう仕組みになっているか知らなくてもよい代わりに
テレビの基本性能はリファレンスモデルより劣ることもないが企業努力でそれを超えることもできない >>200
【インターフェース継承】
TV(クラス)がもつ機能でもリモコン(インターフェース)にそれを操作する機能が用意されていなければ使えない世界
【実装継承】
TV(クラス)がもつ機能ならリモコン(クラス)にその機能を使用する手段を実装することにより自由自在に使うことができる世界 例えば、パナソニック製TVだけがガンマ補正機能をもつ場合ガンマ補正の捜査が要求されたら
パナソニック製TVを使用するように判断し操作する >>204
インターフェース継承でも
If USE_GAMMA_CORRECTION Then
Set TV = PANASONIC
Else
Set TV = SONY
Endif
とか切り替えはできるけど、TVインターフェースにガンマ補正のためにインターフェースが実装されていないと
PANASONICクラス内のガンマ補正機能にアクセスする手段はないという事? >>205
おいおい、大丈夫かよ
そのコードは一体どこに実装されると思ってるんだ? あなたが苦労して取得した資格の平均最低月給ランキングは第何位?
民間や国家が認定している仕事の資格や免許。
その求人雇用市場での価値が一目瞭然で分かる。
(全求人情報平均最低月給196,500円)
ぼくらニッポンの民間・国家資格別平均最低月給ランキングはこれだ!
http://jobinjapan.jp/license/ >>206
もちろんクラスの外側だよ
それこそがインターフェース継承の欠点でもある >>211
一言だけ言うと、SOLIDについて調べるといいよ VB6プログラマがインターフェイスとか背伸びすんな。
おまえらは長年寝かした秘伝のソースを改修すればいいんだよ。 VB6ってしばらく触っていないが、知らんうちにスゴイことになっているようだ
インターフェースの継承って一体どんなものなんだろう?
もしかするとインターフェースに抽象クラスの機能でも付いているのかな 抽象クラスの定義は中身が無いメソッドが少なくとも1つは含まれていることが条件だから
インターフェースは、すべて中身が無いメソッドので、抽象クラスでもあるよ。 そりゃな。
C++では逆にインターフェースはなくて
抽象クラス代用してるし。 >>215
> インターフェースの継承って一体どんなものなんだろう?
本気で言ってるのかネタなのか区別つかんが、VB6/VBAでImplements IFooを
「インタフェース継承」あるいは「インタフェースを継承する」と言う人が結構いるってだけの話
あと、Javaクラスタの人にもいるみたいだ あー、調べたら、Javaの方は本当にインタフェースの継承だった
interface A {
void write(String str , int synchro);
}
interface B {
String third = "逃げちゃだめだ";
}
interface C extends A , B {
void write(String str);
} 実装継承ができない言語ならまだしも
実装継承とインタフェースの両方が使えるのに
あえてインタ^フェースを選択する人って一体? JavaはInterfaceに実装も書けるようになってる
AbstractClassと重なる部分をマスクとして除けば、Interfaceの意味はより明確になった >>221
一時期、実装継承は悪なんて風潮があったね
今考えると、LSP違反になりやすいとかそういうことが理由だったのかも
あと言語にもよるけど、実装継承を繰り返して継承すると、途中クラスの変更が
事実上できなくなったりするというのも理由の一つだと思う >>223
だからと言って何でもOKのインターフェース継承がおすすめというのは何とも理解しがたい よそのスレで相手にされないやつがここに流れてきているのか >>224
インターフェース継承がなんでもOKというのは、どういう意味? >>228
たとえば継承10連結とかでもできるってことじゃない? 俺みたいに、VB6のプログラムがWin8.1までは動いていたんだけど、
Win10にして動かなくなったって人いる? インターフェースは継承とはレイヤーが違うので、概念上は制限が無いので、継承を包括し得る。C++のように継承でインタフェースを実現する事もありえるが、概念上は継承自体が制限となる。 用語1つで場をこんだけ混乱させてしまうオブジェクト指向ってプログラミングツールとしては最悪の部類だよね
でもそういう最悪をかき集めたものが飯の種になる矛盾を孕んでる
混乱が飯の種ってまるで火事場泥棒みたいなやつだ いやあこの話題の中で委譲の話を持ち出す人が居たのには驚いたわ
確かにインターフェースは委譲出来ないけど、ソレは抽象クラスでも同じことだからね これがニッポンの民間・国家資格別平均最低月給ランキング。
将来有望な資格も見えてくる。
資格別の求人件数と平均最低月給ランキング。
あなたの資格の市場価値が一目瞭然!
http://jobinjapan.jp/license/
プログラマーの大切な資格は正当に評価されているか確認しよう。 >>237
XP以降、VB6のランタイムはWindowsに包含されているから
EXE配布だけで実行させられるんで意外に重宝してる。
日本語表示させるためにはVBJP.dllとかが必要になるんで面倒だけど >>233
馬鹿が集まっているスレだからという方が10000万倍説得力があるわ VB6の後継かどうか知らんがVBAを拡張する計画があるみたいね
Excelユーザーに感謝せんとな VBAが拡張されるとしたら、おそらくECMAScriptの最新機能を
取り込んでくるだろうな。 何の因果か未経験からVB6でのシステム保守に携わっています。
川口輝久の「Visual basic6 基礎編」は持ってるのですが
何とか理解できるようになったので
生産性向上のため見るべきサイトや本などが
あればお願いします。
漠然とした質問で申し訳ないですが
よろしくお願いします >>247
できるだけ他言語の新しい知識には接しないことだな。
VB6がクソに思えてしまう。 Fowlerのリファクタリングなんて良いんじゃないかな
VB6の場合いかにして手に負えないレガシーの塊を解きほぐすかって方針で勉強したほうが役に立つだろう
この方針なら他の言語に移った時にも学んだ事は無駄にならない
方向を誤ってVB6マスターを目指しちゃうと将来的に有意義な経験がなにも残らない >>250
VB6でテスト用意してリファクタリングするのは恐ろしく時間の無駄になる予感がするんだが・・・ みなさんありがとうございます。
開発といいましても既存の画面の修正からなのでリファクタリングというのをやってきます 日本の会社はリファクタリングにお金なんて出さないから注意な リファクタリングっていうのは解析作業の一種で、
複雑になってしまったコードを解析して
その結果を反映させること。
リファクタリングに金を出さないという話であれば、
複雑になったコードを解析するのにも金を出さないって話だぞ。
そのとおりだが。
解析して、コードは修正せずに、バグと戦って、次回も解析するか、
解析して、コードを修正して、バグなく楽に修正、次回も楽になるか
の違いだ。 質問させてください。
Windows7 pro 32bitにVB6.0Professionalを入れました。
これに適用するべき、MSが配布している更新ファイルを調べてみたのですが、
Vs6sp6B.exe
VB6.0-KB290887-X86.exe(=vbrun60sp6.exe)
VB60SP6-KB2708437-x86-JPN.msi
この3つ以外にもありますでしょうか? 俺もそういう更新ファイルとか分からんから適当に入れた
http://pastebin.com/sSPzxYHt
リストアップしてみた(関係ないのもあるけど) お前ら教えろください
同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?
直感的にダメな気がするんですが、なぜダメなのか説明出来ません
どちらにしても誰か理由を説明出来る人いますか?
教えてエロい人 イベントが発生してないのにイベントハンドラが実行されたら困惑するだろう
平日にハロウィンコスプレするようなもんだ どーせイベントの内容をコピペしたメソッド作ってそっちを呼ぶんだろ?
それなら最初からイベント呼んでおけ 普通はイベントの中身をメソッドにして、両方共其のメソッドを呼ぶように作るものだな >>267
> VB屋はこれだから嫌だね
どれのこと?
わざとらしいアンチぐらい
見分けようよw >>261
> 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?
なし
> 直感的にダメな気がするんですが、なぜダメなのか説明出来ません
その直感は正しいよ。理由はいくつか有る。
まず、一般的にフォームというのはユーザーの入力と処理を結びつけるためにある。
結びつけるだけなのでなるべくフォームに処理は書かない。
処理はフォームとは別に(ビジネスロジック用の)クラスに分離する。
このクラスはフォーム関連コードは一切ない。これにより自動テストがしやすくなる。
このように分離するので、二つのイベントハンドラから、共通のクラスのメソッドを呼び出すので
_Clickを直接呼び出すことはない。
これが大きな理由では有るんだが、クラスを使うほどじゃない場合でも
処理はprivateメソッドに書いて、内部的には処理と結びつけるコードは分離させておいたほうがいい。
それから、もう少しわかりやすい理由として、依存関係の話がある。
_Clickというのは、ボタンだったりするわけだが、そのボタンの存在に処理が依存しているのか?ということ。
通常はボタンには依存していないだろう。仮にボタンをなくしたとしても、処理の内容は変わらないだろう?
だが、_Clickを呼ぶと処理の中にそのボタンが紛れ込んでしまってるわけだ。こういうふうに
余計なものが混ざるとUIを変更した時の影響範囲が大きくなる。
どちらにも共通することは、その責任が明確に分離されていること。単一責任の原則とも言われている。
自分の担当範囲の処理だけを行うことで、それぞれの処理がシンプルになる。
絡み合わせる必要が無いものを、絡み合わせてはいけない。 >>261
お前さんの直感は正しくて基本的には良いことじゃないけど、まあ程度問題ではある。
良いことじゃない理由は、メソッドの名前と実態が乖離するから。
(ボタンがクリックされた時に呼ばれるはずのメソッドが、それ以外の時にも呼ばれることになる)
これは、「イベントハンドラが呼ばれるのはイベントが発生した時だけだ」という前提でコードを読んでいる
プログラマの期待を裏切ることになる。
程度問題なのは、そうは言っても十分短いコードなら上記の前提が正しくないことに
プログラマは気づくことができる。 せめてインターフェース継承くらい深い議題でないと盛り上がらんな VB6からVB.NETへの移植を体系的にまとめた本は有りませんか?
最悪VBではなく他の言語でも構いません
別言語への移植に関する情報が欲しいのです >>275
移植元、移植先の両言語をちゃんと理解すれば移植は簡単だろう >>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) windows8.1をupdateしたらIDEが使えなくなった
xp 7 10では大丈夫なのに 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コントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
よろしくお願いします。 >>282
> これは、「GUIコントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
主語は?
あとt抜きとかやめろ 操作ミス失礼。
>>283
「Visual Basic 6.0 でアプリケーションを組んだ場合、GUIコントロールでのみスレッドが扱える」
という理解で良いかどうか、ということになります。
逆に言えば、
「画面の無いコマンド(VB6.0で作れるかは分かりません)を作る場合、スレッドを使った処理を実装できない」
という理解で良いかどうか、ということになります。 >>286
一体何が知りたくて質問してるのかしらないが、>>282で自分で答え書いてるじゃん。
「GUIコントロールでスレッドが使える」とか意味わからんし。
・VB6ではスレッドは使えない
・VB .NET以降は使える >>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
この文献に行き着いたので時間をかけて読んでみます。 >>288
日本語より英語の方が堪能とかじゃないなら、「VB6 ActiveX DLL」とかで検索した
日本語ページ読んだ方がいいんじゃないの? VB6でスレッドとか変態的だからメンテの関係でやめたほうがいいんでない 素人質問で申し訳ありませんが、昨今においてWin7にVB6で組んで納品、という形態は存在するのでしょうか? >>286
ActiveXオブジェクトはVB以外でも作成できる
VB6ではマルチスレッドはサポートされてない
(API呼び出しで無理やりやる方法もあるけど、問題になる事もある)
これが全て。GUIとか何とか関係ない
>>291
たしかに非同期で動くけど、それ別EXEだからマルチスレッドじゃなくて別プロセスじゃね >>295
やっぱそういうことですよねm(_ _)m やっと分かりました!
1. Visual Basic 6.0 で作成する「アプリケーション」ではスレッドは使えない。
2. Visual Basic 6.0 の開発環境では、「再利用可能コンポーネント」として ActiveX(≒COM)コンポーネントが作れる
このコンポーネントではスレッドが使用可能。
ただし、ActiveX は単独では動作できない。他から呼ばれる専用。
ということだったんですね…。
ありがとうございました。 >>297
つか、やりたいのは「スレッドを使う」ではなくて、非同期処理をしたいんじゃないの?
だったら、スレッドは不要。 匿名通信(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的に分散され、特定のサーバーに依存しません
、 Dim a As Date
a = CDate("2016/5/14")
とか
a = DateSerial(2016, 5, 14)
で日付のみ入った状態に、後から時刻を設定するにはどうしたらいいでしょうか
DateAdd("s", h*3600 + m*60 + s, a)
だと、時刻を文字列に持っていた場合はちょっと面倒 >>300
こんなのでいいんだろうか
a = CDate(Format(a, "yyyy/mm/dd") & " 16:45:37") >>301
ありがとうございます
こんなのでいけてしまいました
Dim a As Date
a = CDate("2016/1/2")
a = a & " 12:34:56" Windows10 64bitで昔作ったソフトを動かしてみたところ
入力系コントロール→他コントロール (テキストボックス→その他)のフォーカス移動がものすごく遅いことに気付いたんですが
原因わかりますか?
テキストボックAに「123」と入力、入力直後にテキストボックBをクリックしても1〜2秒フォーカスが移動しない。
グリッドでも同様(同一グリッド内の別セルや別グリッド) ドラッグ&ドロップして、パスなしのファイル名だけ取得するにはどうしたらよい?
↓だとフルパスで取得してしまう
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 >>310
フルパスからファイル名抜き出すってのじゃいかんの? 円マークで分割して最後を取得みたいに?
最悪それでもいいんだけどVBさんならちょっとしたオプションで出来るかなと思って >>311
探しても見つからなかったから分割してやった。レスありがとう プログラム保存し忘れたんだけど復活させる方法ありますか?
ソースファイル単位では保存してます >>295
マルチスレッドと別プロセスって実際どんだけ違うものなのかな? >>317
プロセスが別=メモリ空間が別,別プロセスになると切り替えにコストが多く発生する プロセス単位だとリソースをいくらリークさせても終わった時点でOSが面倒見てくれる
スレッドは自分で管理しないとプロセスが生きてる限りリークし放題
Excel VBAでしょーもない再起動が必要になったりするのはそれが原因 PNGを表示するのに明熊さんのTransG32.dllを使ってる人いる?
4000ピクセル四方程度のPNGは開けたりクラッシュしたり
どういう条件だとクラッシュするのか、
PNGの幅x高さの値と関係するのか調べても境界がはっきりしない
じゃあファイルのバイトサイズかなぁとログをとって気長に調べているのだけど
何か知ってる人はいますか ああそうだ、開けるPNGファイルを
メモリの少ないPCでも開けるかやってみればいいか すいません、
VB6の頃のopen文だっけ?に比べてVB.netやC#のファイル操作は遅くて
別のものを使うとVB6より速くなるみたいな
そんな記事をかなり昔みた記憶をふと思い出してググってみたのですが、その記事が見つかりませんでした。
どなたかこれの内容って覚えていませんか? 誘導されてきました。
質問させてください。以下の現象が解決できず悩んでいます。
何か思い当たる解決方法をご存知の方がいれば、情報提供をお願いします。
■開発言語 : 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
件のプロセスをキックする親プロセスがいるのですが、
親プロセスがWindows2000互換で動作しているため、引きずられてWindows2000互換で動作してしまいます。
親プロセスの互換モードを変えれば、エラーは発生しないのですが、この親プロセスからは
他に300近いプロセスをキックしているため、変更した互換モードで他のプロセスの動作検証を行う必要が出てきます。
それは避けたいため、Windows2000互換のままでも解決できる方法を探している状況です。 子プロセスの互換モードって絶対親と同じじゃないとダメなんだっけ?
互換性データベースとかいじれば何とかならんのかな >>323
本件については、質問してから時間が経ってしまったこともあり
工期の問題もあったため、2003SV互換ですべて検証し直しました。
Win7(64bit)なんかではWScript.Runで呼び出すことで子プロセスに設定された互換モードで動かせていたみたいです。
Win10ではそれも効かなくなっているみたいですが。
>>326
色々調べた中で互換性データベースについては初めて目にしました。調べてみます。 整数型はLongを扱うプロパティが大部分なのとループも4バイト整数が効率的なはずなのに、
他人の書いたコードは大部分がIntegerです。この型を選ぶ理由を教えてください。 >>328
大昔のBASICにlong型がなかったから
当時の人材が今でも活躍してるんで。 コモンダイアログは使っちゃだめだよね
将来的に使えなくなる可能性があるからAPIで書いておかないと
という話の「将来」が今田 将来的にVBは産廃になるから移行しやすいようにレイヤー分割しとけよ
という話が教会に異端認定されて迫害されたから今苦労してるんだよね 質問させてください。
VB初心者です。(普段はもっと古代言語を使用しています)
環境:windows7,office2010,vb6,activereports2.0j
VBのフォームにOLEを配置してEXCELを表示し、
ボタンを押すと、doverbメソッドが実行されてそのEXCELを編集出来るというプログラムがあります。
開発環境では問題無く動いたのですが、
実行環境で編集ボタンを押すと、押した時にはEXCELがアクティブになるのですが、
すぐにフォームのほうがアクティブになってしまい、EXCELを編集出来ません。
何度EXCELのほうにマウスを当てても戻ってしまいます。
環境かな?と思うのですが、何が原因なのか検討もつきません。
どなたか、何か思いつくことがあれば教えていただけないでしょうか?
よろしくお願いします。 timerイベントで以下の処理を行っているのが原因でした。
If Me.Enabled = True Then
Me.SetFocus
End If
根本的な原因では無さそうな気がしますが、
特に問題もないようなのでこの処理を削除しました。 XPか7以降だったか
プロセスやスレッド間をまたがるフォーカス移動の挙動は仕様が変わってるから
SetFocusだけでは意図通り動かないと思う
説明がめんどくさいので解決したならいいけど まだVB.NETスレとパート数20くらい差があるのはすごい VBで困ったときにネット検索しても余り出てこなくなったんだよ パーツをペタペタ貼れるVB系は6.0しかないの?
.netでもそれさえあれば移行するのに。 Win7で普通に組めるのは良いが配置したコントロール類を一括ドラッグ、位置調整するのが辛いな >>340
.netでも、ふつうにパーツペタペタ出来る >>342
マジで?
そういうツールが売ってるの? >>343
パーツがボタンやラベルのことならば標準機能で貼れる
お試し版あるからダウンロードして試したらヨカ Microsoft Team Explorer for Visual Studio 2013のMicrosoft Visual Basic 2013を使ってみたのですけど、コントロールを貼り付けられるようには出来てないような?
VB6でいうところのオブジェクトを表示する事が出来ませんよね? 新規プロジェクトで
Windowsフォームアプリケーション選び
form1.vb選択して、右クリック
ビューデザイナー開いておいて
左側のツールボックス開いたらコントロール群あるから
選んで貼り付け ファイルリストボックスって
なまじっか英数字のファイル名だとソートしてるから、そのまま使えると思ってたら
漢字は中途半端なソートするね もう今年で20年だろw
まだ使ってる人いるのかw
いい加減成仏させてやれよw >>347
おぉぉ出来ました、ありがとうございます、ありがとうございます。 >>346
色々あってよく分からなかったのですが、もしかしてこれは.netでは無いとか? >>351
2013のvb.net
2015と2017もある >>351
だからお前のような馬鹿は1回死んで出直せ 馬鹿に馬鹿と指摘すると、悔しがってこうやって別IDで食って掛かってくるから楽しい 自称「馬鹿に馬鹿と指摘する」馬鹿さん、馬鹿にされて楽しそう。 >>350-351dすが、自分のせいで荒れてしまってすいません。 俺は気にした方がいいと思うよw
さすがにこのやり取りは質問者が叩かれて当たり前。
これが2002年ならわかる。2018年にもなってこれはない。
さすがに釣りだとと思ったらどうやら大真面目らしいのも何とも 好きな子にいじわるしたくなっちゃう小学生男子の気持ち? 知らん事は馬鹿ではない
知らん事を馬鹿だと思っている事が馬鹿なのだ >>365
いじってみてもどうなっているか理解できないから馬鹿だろうが。そもそも製品の構成すら理解しとらん馬鹿だし。 >>367
そんな事よりもボクはキミ自身が馬鹿なのだよという話をしているのだけれども 知らないこと と 自分の力で理解できないことを一緒にして他人を煽ることしかできない馬鹿
↓
ID:3WbICYQr 開発中に気が触れてしまう人もいるので、そっとしておきましょう
ここでは、開発が本業でなく、例えば八百屋さんがプログラムをいじってるなんて場合もあるのだから
自分の狭い専門分野で人を見下すのはバカ丸出しなんだよね >>370
八百屋ナメんなよコラ。お前市場行ってセリで買えるか?セリにsnipetなんかねえんだよ。
全部キロ単位の値段設定だぜ?即座に頭で歩留まり計算しておかないと儲け出ねえんだぜ?
八百屋、魚屋のような生モノ扱う仕事は常にtry-catch-finaryでロスが出ねえように考えて仕入れ販売
しないとあっさり赤字こくんだよ。
コード屋はそりゃ大変だろうが、楽な仕事なんかねえんだよ >>370
青果市場のセリで、キャベツを指差しして「これは白菜ですね!」とか大声で叫んでみろよ。
お前のようなゆとりの馬鹿が社会をダメにする。 VB6では任意に例外を投げることはできないのでしょうか ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ 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が悪さをするのでしょうか 整数型に変換してるんですけど
INTの外にある「+1」が無効になる感じです v& = Clng(Val(Text1) * 10) + 1 Dim v&
この瞬間見る気が失せた
v& = Int(Val(Text1) * 10) + 1
↓
v& = CInt(Val(Text1) * 10) + 1 お二方のは、最初の1回だけ動いて、
以降は動かなくなりましたよ
しかしCsngやValだと
106.456→106.500→106.600→106.700・・・
としたいところ
106.456→106.600→106.700・・・
になってしまうけど、まぁ動きました
お手間をとらせました、有難うございました ああ分かったよ
実数の扱いの深い部分だね
Debug.Printで見ても表示されないから分からなかったわけだ これだ
? Csng("125.600") * 10
1256
? Csng("125.600") * 10 + 0!
1256
? Csng("125.600") * 10 + 0.0
1255.99998474121 こんなやつが作ったソフトを使う人がいるのかと思うと・・・ >>386
と思うだろ?ところがすっとこどっこい
お前が使ってるソフトを作ってるやつも似たりよったりなんだぜw VB.Net ではなくVB6.0を愛用してます。
世の中64ビットOSになり、次は128ビットになりっとどんどん大きくなると思うんですが、
今まで作成した私のVB6.0のアプリは今度どうなるのでしょうか。
多少VC++が分かるんですが、実装するのはやっぱり使い慣れたVB6.0が手っ取り早いし簡単で、ずっと使いたいんですが、、、 >>388
切迫感無いですね
保全関係の請負で食べてる人ですか?
それだけ過去資産持ってるならそれをC++なりで再現する方向で精進するのが普通の発想だと思いますがね >>388
OSがランタイムサポート打ち切るだろうからお前も死亡 「系」で良いのなら全ての現代的プログラミング言語は
BASICの影響を受けたBASIC系言語と言えるよ
プログラミング言語の系図ぐぐってみ 大昔N88やクイックBasicで
遊んでいたのでちょっと気に成った YoutubeをTHXでダウンロードすると動画タイトルがファイル名になることがあって
動画タイトルに連音符のような特殊文字が使われているとVBで扱えなくなる
エクスプローラでリネームしてやれば済む話だけども
寝てる間にダウンロードして所定のフォルダに所定のファイル名で保存するプログラムは動作しない
変な文字コードが入り込んだファイルというのはFileListBox上には存在するけども
FileLen,Open,Name,FileCopyなどでは存在しないファイルとなる
実際のファイル名とVBが見ているファイル名が違うからだと思われる 例えば適当なテキストファイルがあって、それをエクスプローラで
12♬34.txt
とリネームします
これをVBのプログラムで読むには? そもそもVB6ってロングファイルネームサポートされてないんじゃ?
8.3形式のファイル名で読むしかないんじゃね >>398
そいつはこの板を荒らしてるBasicジジイだ。触っちゃいけない >>401
そもそも VB6.0 のコードエディタに貼り付けても化けちゃうしw
CreateFileW 等の API を使ってゴリゴリ書くしかないだろうね。
あと、MAX_PATH を超えるような場合は \\?\ や \\?\UNC\ 等のプレフィックスをつける必要がある。
ttps://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx まだ使ってる人いるのかw
VBって割と最初からUnicode対応だと思ったけど、IDEのエディターやコンパイラは対応してなかったのかw 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
LVCSB EXEはVBPと同じフォルダに作られるのがデフォルトだったけど
どうもWindows10の新しいバージョンになってから
EXEが作られるフォルダのデフォルトというのがカレントフォルダとは限らないようだ
いったい何を見てEXEを作るフォルダのデフォルトを決めているのだろう Win10の最近の更新からVB6がインストールができなくなったという情報あり
Win10をUSBなりからクリーン・インストールしたら
まずVBをインストールして、その後にWinの更新をすればいいのかも 最後の行だけ改行コードがついてないテキストファイルがあって
それを読みながら修正などしながら、別ファイルに書き出すという処理で
最後の行には、どうしたって改行コードがついてしまうよね そこは工夫の問題じゃない?
最初だけ改行なしでWrite、次からは改行+Writeでも良い。 全て書出し終わったファイルをバイナリで再度開いて末尾の0D0Aだけ削除 なるほどー
「まずバイナリでファイル末尾の改行の有無を判定する
末尾に改行なしなら、2行目以降は、改行コードを頭に付けて出力する」
ありがとうございました
自分にない発想に出会うと感動しますね
数年前に阿修羅で出会った感動の書き込みを紹介しますと
「日米戦争はイカサマだった→東京裁判は昭和天皇が進駐軍にやらせたものだった」
これにはぶっ飛びました
自分では色々考えたつもりでも、それは所詮自分の殻の中の世界であって
真実に到達できていない可能性があるんだと思い知らされました >>419
周りが馬鹿やめろよと思っていることに気付かない人かな こういうのをおかしくないと思うような頭だからまだVBなんかを平然と使うのかね 2発の原爆のうちの
広島の方は天皇原爆だったという話だよ VB6.0を現代的なOSで動くようにしたら需要あるだろうか? >>429
実際に求められてるのって実はその辺だと思う
最近の言語は進化が作成者のオナニーになっているというか
素養のない一般の人(だが仕事で必要)には
VBAレベルが限界だと思う
OfficeのVBAがVB6ベースでも世の中そんなに困ってない だよね
Windowsにしても買い替えさせるために不要な変更を行ってる
というか改悪している VB6でクラスライブラリをビルドしてるんだけど、
1)Constみたいな定数を実装する方法は無いのかな?
2)Optional ByRef引数の指定が省略されたかどうかを、その関数内で判定するのはどうするのがいいだろ? >>432の補足
ActiveX DLLとしてビルドして、外部プロジェクト(VBA)から利用しようとしている
1)外部プロジェクトからConstみたいに参照できる定数をActiveX DLLに実装できないか VBSで、ウインドウハンドルを持たないボタンを安定して押す方法ってあります?
SendKey連打で切り抜けられるものもありますが、
→→↓↓Enterとか、必殺技コマンドみたいなのが必要な状況では、いまいち安定しません。
5秒待つとかダルいですし、そんなに待ってもダメな時もありますし・・。
もしくは、JSでもいいんですけど。 >>432
1.
Property Getだけ用意する
2.
IsMIssingてのがあるけどまずありえない値を初期値にしおく
http://www.openreference.org/articles/view/239 >>434
ブラウザ上のボタンはどうやって押すんだろね
分からんのでUWSC使ってる
UWSCはハンドルじゃなくてプロセスIDと座標を使ってるから
SendMessageじゃないAPIがあるんじゃないかと思う >>436
ブラウザは、IEで、htmlで書かれている部分ならgetElementsByXXXXという関数で簡単に押せます。
ダウンロード通知バー内のボタンが難しい。 VBSじゃなければUIAutomationかAccesibilityでいけるんだが、VBSだと難しいかも。
>>436
webの話なの?
それならVBSでもいけるでしょ。
それからUWSCはAccesibility使えた筈。 VBSじゃなくて良いならPowerShellでUIAutomationは使える。 >>435
ありがとう。
2)
IsMissingなんて使ったことなかったw
まさにVariant型で配列を渡す引数だったし、良さそう
VBAでは初期値NullにしてIsNullで判定してたけど、VB6だと引数初期値Nullでコンパイルエラーになるから困ってた
1)
Optional引数の初期値には指定できなさそうだ
現在、InstancingプロパティをGlobalMultiUseにして、Publicメンバ変数にして、Initializeイベントで初期化してるんだけど、これもOptional引数の初期値には出来ない >>429
需要ある
VBAのライブラリ開発では重宝してる。
VSTOみたいにバージョン相性もないし、ほぼそのままユーザフォームを含むVBA資産を再利用できるし。
現行では、いちいちファイル保存先を指定したり、ビルド先を指定したり、インターフェースの機能構成が不便だ。
あと勝手にレジストリにDLLが登録されるのはどうにかして欲しい(管理者権限を付けないで起動すれば登録されないけど) >>441
そんなあなたに
https://eijiman.com/windows10-vb6-runtime/#Window10VB6
Microsoftによって機械翻訳された内容ですが、次の記載があります。
VB6 ランタイムは Windows 10 に付属し、その OS の有効期間にわたってサポートされます。
出典:Visual Basic 6.0 のサポートに関する声明 | Microsoft Docs
つまり「Windows10でVB6ランタイムが継続的に実行できるようにサポートし続けていく」ということになるのでしょう。 >>441
VBAのライブラリをVB6で作って意味あるの?w
UI以外はVB6で書けるならVBAで書けるでしょw
それにVSTOの代替にはならんでしょ つーか、20年前に死んでる開発ツールをなぜまだ使うのw
もういい加減成仏させてやろうよ >>443
「ライブラリ」の意味も分からん中卒無能は黙っていろ >>446
ライブラリはオフィスだけでも作れるんだけど....
むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。
上にも書いたが、UI以外はできることは同じなんだけど > むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。
VB6ランタイムに依存することが
何のデメリットになるのかわからん >>447
>ライブラリはオフィスだけでも作れる
どういう実装形態を言っているのか?
ワークブック参照とか言い出すんじゃないだろな? >>438
VBSでもExcel経由でAccessibleObjectFromWindowが使えそうなんですが、
どうやってIID_IAccessibleを渡せばいいかわからないんです。
IID_IDispatch(?)を試そうとしたら、今度はStrPtr関数が使えないという。 win10でVB6使ってるけど
フォーム上に配置したコントロールを複数選択して移動すると
ヌルヌルして時間かかるよね
ま、問題ないけど >>453
VB6でコントロールの編集が重い場合
デスクトップ コンポジションを無効にしないとデザイン画面が重い。
1.コントロールパネルで「パフォーマンス」を検索
2.パフォーマンスの情報とツール
3.視覚効果の調整→視覚効果タブ
4.カスタム内の[デスクトップコンポジションを有効にする]のチェックを外す コントロールパネル
→システム
→システムの詳細設定
→「詳細設定」タブ
→パホーマンス
→カスタム
このチェックボックス付きリストの中に
「デスクトップコンポジションを有効にする」はありませんでした
Win10 Homeだからかもしれません
元々アニメーション表示のような「効果」は大嫌いなので、ほとんどOFFにしてましたが
全部OFFにしても変わりありませんでした
でもまぁWin10でコンパイルできるだけでも御の字
お手数をおかけしました DOS窓では上手くいくのに、VB6から以下を実行するとうまく動きません。
何がいけないのでしょうか?
Shell "powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON'-verb runas & shutdown /r /t 0", vbHide TESTSIGNING ONの後のスペースが抜けてましたが、相変わらず動かない・・・。
powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON' -verb runas & shutdown /r /t 0 DOS窓で動くけど、VB6からは動かないと言ったら
昔ならDOS時代のカレントフォルダ上で動くアプリだからってことだったけど
パワーシェルとかわからん VBからShellでPowerShell呼び出して何かを動かすの?
ピタゴラスイッチみたいなことするね。
普通にプログラミングしてる奴なら気持ち悪いとか、かっこ悪いと思うんじゃないかな。 世の中使えるソフト屋と使えないソフト屋といるだろ?
気にならないということはつまりそういうこと VBのコード編集画面てWin10でカーソル太く設定しても変わらないんだ
しかも点滅が5秒で終わるしバカじゃなかろかWin10 ピクチャの高さを設定して、設定できたか確認する
Picture1.Height = 50
Debug.Print Picture1.Height
巨大なピクチャはメモリの都合か、設定できないのは知ってるんだけど
こういう小さいピクチャでも設定できないケースがあるというのは、
どういうことが考えられるでしょうか
Picture1.Refreshを入れてもDoEventsを入れても変わらず
Win10です PowerShellねえ
Windows API利用する方法探る方が良い様な >>440
初期値Nullなんて止めとけ
属性でMAX値設定する方が固い 画面だけVBで裏ではコンソールアプリ動かすなんてよくやってたから違和感ない VB6のFormat 関数の和暦変換
レジストリの和暦データ見るようになったよね つまり今まで見てなかったのか?
VB6のランタイムに何か修正あったのか? 最初からこうなることがわかってたら独自実装のFormat作らなかったのに。遅いねん MS も公にはVB6 対応しまーす
とは言いにくかったんでしょう 今のままでは令和に変換できなかったってこと?
で、今後は改元に対応するようにランタイムが修正されたと。 Windows10(64bit版)、Jet4.0(DAO3.6)でSQL文(OpenRecordset"SELECT...")を実行すると
まれにフリーズ(応答なし)になるの何で?
同じプログラムでもWindows7(32bit版)だとフリーズせず結果が帰ってくる 地元でVB6→VB.NETへのマイグレーション案件有るんだが
移行が一足飛びで出来ない事実を知って炎上必須っぽいので様子見 Win10のmsvbvm60.dllのタイムスタンプは2018年になってる
天皇の生前トンズラが分かった時点でレジストリを見るように対応したってことだろうか 自分用のメーラー作ってるんだけど
BASP21使ったことある人いる?
RcvMailとRcvMail2があって、それぞれSAVEコマンドがある
どう違うの?
コールバック関数で処理を中断できるようにした2を後から追加したってことなのか Windowsには、標準でVBのコンパイラが入ってるそうだけど、
GUI作るときはどうすんの? >>478
標準でVBのコンパイラについてはよく知らないけど、GUIはWin32APIだけで出来ることは出来る。 >>481
それ、VB6.0で通用する要素0に見えるんだが。 う〜ん、普通にVSでGUI作って、
コンパイルだけ標準コンパイラって無理かな? ニュー速+でwin10アップデートするとVB6/VBA全滅するってスレ立ってたけど、こっちは静かだな。 それは知らなかった
おれはバリアント型の配列を使ったことが無いから無事だっただけか
しかしWin10はおかしいな
毎月、システム丸ごと入れ替えてるんじゃないかと思うほど大変更をして
メモ帳の仕様を変更しましたとか、誰も望んでいないようなことを言う
絶対なにか企んでるよな >>487
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対応に関連するメモ帳の機能強化は当然の結果。やらないほうがおかしい。 この程度の変更は普通って誰基準で普通などと言うのか
Win10を出して何年経ってるんだ
毎回広範囲な変更しやがって
試行錯誤でユーザーに試験させている
サービスで言うと毎回20サービスくらい変更している
一向に収まる気配なし
どんだけ完成度低いんだ
UIは子供が作ったようにメチャクチャだし >>Variant型配列
セキュリティ上宜しく無いと言う話
何でも受け入れるVariant型は確かに問題有る まあ古代VBプログラマの板に来る奴なんて保守派だよな
設定アプリとコントロールパネルをいい加減統一して欲しい
ついでに言えば管理ツールも >>489
> Win10を出して何年経ってるんだ
> 毎回広範囲な変更しやがって
イミフ。1ヶ月で広範な変更したら怒るだろ?
何年も経ってるんだから、そりゃ最初に比べれば
変更は多いだろうさ 普通ならそのレスが何を言いたいのかはっきりわかるはず うん。>>489が実は何も困ってないのに
文句だけ言ってるってことはわかるよw RmDir直後にMkDirしたら「ファイル名または番号が正しくありません。」になるのやめてくれ メモ帳でテキストを作っったら
プログラムから正常に読めなくて悩んじゃったよ
時代は変わっているのじゃのう BOMかな
なんでデフォルトがありなんだろうね
今無い方が主流だよね 今のメモ帳はBOMなしUTF-8がデフォだよ
>>497
Windowsは複数の文字コードに対応している。
その文字コードを正しく認識するにはどうしてもBOMが必要になる。
例えばShiftJISとBOMなしUTF-8を完全に見分けることは不可能
ASCII文字しか書かれてないファイルはShiftJISとしてもUTF-8としても正しい
そこに日本語文字を追加する時どちらで追加すればいいかなんてわからない
LinuxはUTF-8(正確にはLANGで設定されたもの)が基本です。
他の文字コードは知りません。とアクティブな文字コードを一つに限定した。
一方Windowsは過去の文字コードも考慮しつつ、同時にUTF-8に設定を変えることなく
対応することにした。その互換性に関する考え方の違いからそうなった。 Unicodeの最大の成果は「固定長の文字コードとかあり得ない」という事が明らかになったこと いまからVB6の開発環境を作るためにはどうしたらいいでしょうか?
VisualStudioサブスクリプションに含まれていますか? VS6をヤフオクで買えば
いやVB6だけ買えばいいか
Win10でも動くよ >>501
Visual Studio SubscriptionsにならVisual Basic 6.0 Enterpriseあるで。 久しぶりにVB6を導入しようとしたらMSDNライブラリディスクを紛失してしまいヘルプが開かない
VB6開発環境導入済みのPCからヘルプライブラリをコピーしただけではF1どころかCOLファイルも開けなくて困った
もちろん私の事だから解決できましたけどね >>504
> MSDNライブラリディスク
2年間で何セットか送ってきてて最後のを入れるようにしてたけどオンラインにもあるんだよね
無いんだっけ? >>505
ある時期以降にサブスクリプションで送られてきたMSDNライブラリは使えませんでした
身辺整理のために古いディスクを大量廃棄したのですが、その時にVB6本体ディスクだけあれば良いと思ってしまいました オンラインには英語のライブラリだけはありますが、IDEからF1で引っ張れないし使いずらい サブスクリプションを解約してすぐ必要になるというのは皮肉なものです MSDNライブラリ日本語版が取れないのは痛いですね
https://馬ちゃん.com/Agent/index.html >>510
英語版で良ければVisual Studio 6.0とMSDN Libraryの両方が揃いますね
日本語版Visual Studio 6.0と英語版MSDN Libraryでは不整合になると思います ああ、マイナーなやり方を調べている時に、よく出てくる人ね。
何者なのかと思っていたが。 >>512
お前、よっぽどレベル低いんだな。
魔界の仮面弁士さんを知らないとはw
この20数年の間、VB界隈で日本で1番の大物だぞ。
VB6.0、VBA、VB.netで上級者を自認する者達で、彼にお世話になってない奴なんていないだろう。 恥ずかしい人には恥ずかしいファンが付くんだな、としか思わないと思うよw
デーモン小暮を連想させるね 自分よりレベルの高い、明らかに手が届かない人を叩きたくなる心理は
劣等感や反骨精神旺盛な人に見られるそうだが
該当するだろうか? 叩いてるのは明らかに手が届かないとすら分からないレベルだと思うよ。
ある程度のスキルが有れば手が届かないと思っても憧れるだろ。 >>518
ネットではリアルと別人格になる人が多いものです
憧れも匿名の世界では邪悪な憎しみや妬みに変わることは珍しくありません >>516
デーモン小暮は立派な人物だぞ
「神」が人間に戦争させてきた
「日本の神」は京都大学に原爆を開発させ広島で自爆させた
広島に住んでいたデーモンは、神こそ人類の敵だと知った
それを伝えたいための悪魔のキャラだったが
伝わらなかったと嘆いていたよ >>520
高校が俺と同じ横浜の桐蔭学園だからな
俺より成績が少し悪くて違うクラスだったがよく知ってた
アイツは早稲田へ行ったが俺は筑波大学へ行った
違う人種で良かったと思うわ 変なの発見した
VB6、ブラウザ:クローム @Win10だけど
デザイン時のフォーム上で、マウスによる範囲選択の要領で
マウスボタン押したままマウスをグルグルと動かしていると像が浮かび上がって来る
ブラウザ上の映像に違いないのだけど、今表示しているページとは違う 昔からある「Wingdings」という絵文字フォントが
ボタンのキャプションにすると便利そうだと、今さら気付いたんだけど
実際に使ってみると、Win10の文字コード表とちょっと違うところがある
具体的には、コードで&h81から31文字、&hE0から29文字が使えない
そこに矢印とかチェックマークとか使いたいのがあるのに
なんで使えないのでしょう VBでもうちょっとかっこいい画面作れないんですかね。visual srudioの共通?コントロールださすぎ。 プログラムでSQL作る箇所?、一つの変数に項目やらウェア句やらを代入してSQLを
作る箇所を書くのが、(インシデントの調整等)毎回めんどくさいなと思っていたから、
テキストボックスにSQLを書くと、自動でSQL作る箇所を作ってくれるプログラムを作ろうと
一瞬思ったけど、画面がダサくて作る気失せた。 ほんと過疎スレですね。語られさえしない言語ですやん。 ワンポイントレッスン
FileCopyは属性はコピーされない ボタンの上にピクチャが被せてあって
ピクチャはクリックされると、簡単な処理をして消すんだが
下のボタンにもクリックイベントが発生するな
おかしいよWin10 知恵袋とマルチですまん。
検索エンジンで ”VB6 ダイエット”と検索するとVisualBasic6に関してのHPとダイエットに関するHPがストライプ状に、
無茶苦茶に入り混じったHPがいくつも候補にあがるのですがこれはハッカーがトロイを仕掛けて開発コードを盗み取るための罠でしょうか? >>534
おそらく、あなたが作成したブログ群では? >>535 いやいや、ブログとかそういう感じじゃなくてHPのメイン部分のソースがクシ状にされて
VBの有名どころのHPとよくわからないダイエットHPが合体しているんですよ。
普通は壊れたHPは検索エンジントップに上がる事はすくないのにいくつもあがっているんです。
vb6 ダイエットというVB6のソースをスリム化する新しいソフトができたのかと思っていくつも開いてしまいました。
で、怪しい広告の攻撃にあったわけです。 VB6とは何の関係もないVB6ダイエットのHPばかり見つかるけど。
と思ったがスマホで検索するとたくさん出てくるなw
多分、検索されてるワード集めて、それを組み合わせてぺージ自動生成してるんだろうな。
詐欺メールと同じやりかたなんだろう。 VB6ダイエットって何だよ。
柔道カラオケみたいなものか? >>538
いや、略が違う。
VB6と言ってもVはヴィーガンとか。 自作アプリから、とある動画変換アプリにファイルをドロップしても受け付けない
エクスプローラからドロップした場合とどこが違うのかと思って調べたら
ドラッグ&ドロップのEffectにCopyとかMoveとか、
ヘルプには4種類のモードが載ってるんだが
エクスプローラは「7」を出していた
いつの間にか新しいモードが追加されてたようだ Office2010終了で、2019へ乗り換えたら、Excelの起動に失敗することが増えてきたんですけど考えられる原因ってなんなんですかね
ActiveX.EXE(本件ではExcel)からの応答時間の調整とかあるんでしょうか
現在Sleepを入れて待たせると動くことが多いので、それで対処しています
SKYSEAとかも嫌な挙動してそうなかんじはします VB6でのシステム開発は流石に厳しくなって来たね
VB6→VB.NETマイグレーション案件もちらほら見かけるし
Delphi同様にもうダメなプログラミング言語なんだろうな >>546
VB6の新規案件って無いよ
メンテぐらい VB6アプリのスクロールバーがおかしくなる現象が発生中!
今週のwindows updateが原因か!? >>549
いくつか不具合のあったけど、今のところ互換モードにして回避できてるよ
無難なXpのSP3指定している
Win10は7や8よりは互換性があって良かったのに、最近のアップデートは影響が出てきてる感じだね
7の時は開発環境で文字化けしてコードが変わることがあった 今更だけど、TextBoxなどはUnicodeに対応しているの?
自分が使ったときは文字化けしましたorz 最近VB6.0→VB.NETマイグレーション案件増えて来たね >>552
なにかあったのかな
それにしてもVB.NETマイグレーションか
C#にしておけばよいものを >>553
流石にVB6.0じゃセキュリティ的に問題だからでしょ
今はVB.NETでも良い
C#のみで出来る事も限られる あるツイート
ただ、仕事のシステムリプレース案件で、マイグレーションの名のもとに VB 6→VB .NET 自動コンバート手法を採用するのは本当にやめてほしい。 予算と工数の関係もあって、上層部は簡単に考えているようだけど、結果的にメンテナンスが大変になります。 きちんと費用をかけてマイグレーションすべき。 リプレース案件でまともに書かれたVB6のコードを見たことがない >>557,558
自動的にコンバート出来ると思ってるんだろ
VB6→VB.NET2008→VB.NET最新のしないと移行出来ないからな いよいよVB6も終わるのかよ?
VB6しか使えないサンデープログラマは終わりか。 >>559
そのコンバータも出来が悪いからな
マイクロソフトはマイグレーションソフトウェアにもっと投資してほしかった >>560
既にセキュリティ的には終わってる
本来VB.NET2008ぐらいの時期にはVB.NETに移行すべきだったよ >>562 そうなんですね。よくセキュリティーの問題云々って言った発表があるけど
攻撃にされて実害にあう可能性ってどのくらいなんだろうね。
今でも毎営業日Xp上のVB6で作ったアプリで金融取引してるよ。
それよか次世代Windows出すとのアナウンスがあったようだが最後だと思ってWin10に乗り換えたのに騙された気分だわ。
次はVB6のIDEは動かないんだろうね。office2000も。 >>563
Win7になった時ぐらいからIDEの挙動がおかしいこともあったけど、Xpモードの環境をそのままWin10でも使ってるよ
古いファイルのメンテナンス用にOFFICE2003も入れてる
会社ではOSを単独で購入したライセンスが少なくて、クライアント環境で使うのはちょっと無理だけど開発環境ではサブスクリプションで導入してたからそのまま使ってる
VisualStudioのサブスクリプションで未だに古いOSって入手可能なんだっけ? 開発環境は仮想マシンのXPでIDEにはMZ-Tools等をてんこ盛り、コントロールはMS製を極力排除して、VBCCRとVBFLXGRIDで置き換えて、他に必要ならVCで自作、サブクラス化にはThe Modern Subclassing Thunk、UMMMでmanifest作成、インストーラー作成はWIX Toolsetが今VB6で作る者の標準だと勝手に思ってる。 >>566
それ気になってて色々と検索してるけど、まだ確かな情報が見つからない・・・。 >>565
そこまでしてVB6.0に拘泥することはないと思うわ VBAが切り捨てられない限り保証されないまでも動くには動くんじゃね? >>569
おー、Windows11でも動きそうですね。
https://www.youtube.com/watch?v=J-u_qCEsrmU
でもGoogleの翻訳で訳してみたら動いたと書いてるようなので、おそらく大丈夫かな?
自分の公開しているソフトもあと数年は延命できそうだw Windows11では Internet Explorer が廃止されるのが一番問題なんだよねー。
CreateObject("InternetExplorer.Application")
からWebページへの自動入力などの操作も行ってるんだけど、これらが出来なくなる。
Edgeで同じことをやろうとするとかなり難しそう。何か良い方法がないものか・・・? Edgeには一応IEモードが付いているけど
実際IE使われてるシステムでそれ使っても結構キツそうな感じだった
後、VBが終わっても出来ればVB.NetじゃなくC#をやるようにした方がいいよ
文法以外はそんなに変わらないしVB.Netは.Net Coreからも.Net Codeからも外されている。
もうあまり先がない言語なんだよ。 Ruby on Rails のテストツールなら、
Selenium Webdriver, Capybara, Nokogiri など
静的なサイトなら、curl でも良いけど、
JavaScript で動的に作られるサイトなら、
Selenium Webdriver で、ブラウザそのものを操作しないといけない Selenium Webdriver や curl などですかー。名前を聞いた程度の知識しかないので、
IEに替えてEdge等で実行させようと思ったら、自分にはやはり敷居が高そうです・・・。
一般公開してるソフトで不特定多数のユーザー環境で実行してもらうのに
最適だと思われるのはどれが良いと考えられるでしょうか? (勉強してみます)
ユーザーにインストールしてもらうプログラムや設定変更等が、出来るだけ少ない方がいいもので・・・。
ユーザーが実行する操作は、Webページへの注文入力 (例. 株や馬券みたいな) がメインです。 >>578
ヒントとなるキーワードを有り難う。調べてみます。
しかしIEが廃止になることで、こんな面倒なことになるとは・・・。簡単に出来てたのに。 なにを盛り上がってるのかと思ったら
>>569のことか
みんな危機感持ってるんだな
VB7を出してくれるといいんだが >>568
いやー、デカくて予算も出ない大規模なVBプログラムのメンテしてるんで、拘る必要はある。 専門職でない人には.NETは敷居が高すぎる
これはたぶん世界の多くの人が思っているはず
自分の仕事は別な分野にあって、そこでVBを利用してきた人は古代VBの復活を待っている Windows11にVB6の開発環境をインストールしてみた
Windows10の時と同じようにやれば問題なく導入できビルドもできる
画面のRedraw問題もそのまま継承してる
ランタイムも入っているので実行時も問題ない VB6発売当時を知らない世代だけど、ググってみたら、DOS時代からデザイナあったのね。
DOS = CUIって印象だったから、今更ながら衝撃受けた。
https://www.cloudwisp.com/exploring-visual-basic-1-0-for-ms-dos/ >>584
Windows11も10と変わらないようだね、良かった。
時代はスマホが主流になって、新らたにVBソフトを作り替えるのも採算合わないから、
このまま行けるとこまでいって、ダメになったら終わりにしようと考えてる。 ここ数か月くらい、Window10が日本語入力処理を色々と変更していて
タスクマネージャーを見ても「IME」というプロセスは無くなって
別のものに置き換えられているのが分かる
その関係に違いないんだけど、VB6のテキストボックスの日本語変換がちょっとおかしい
「今日は」と打つときに,、漢字モードで
「kyou(SP)ha」と打つと「今日あ」となって「h」キーが無視される
「kyou(SP)(CR)ha」として(CR)で「今日」という変換を確定させる必要がある
と言っても、必ずしもそうなるわけではなく、
メモ帳のように普通に(CR)無しで入力できる場合もある
(CR)無しでいける場合と、ダメな場合と、何が違うのか
ある程度の文字数を扱うとダメなのか、マルチラインにするとダメなのか・・・
そうやって作り替えると、状況も変わるんだけど
これをこうすると、こうなるという法則が見つからない
Window10が不安定というしかない状況
VBで作ったものだけキー操作が違うと面倒で
誰か回避策見つけた人います? いませんか
全然おかしいですよ
フォームにテキストボックス2つ配置します
コードなんかなんも無し
プロパティはマルチラインTrueにするだけ
すると片方だけ上記の現象が出てる
で、現象の出ない方では、改行すると現象が出る
じゃあ1行目にはその現象が出ないってことか?と思って
↑キーで1行目に戻ったら、そもそも漢字入力ができなくなってる
数か月前はこんな現象無かったのにWin10の更新でボロボロ >>589
実行時に互換モードとかだとどうなりますか?
Windows10アップデートの度に動かないプログラムが増えてきてるんですけど、互換モードでどうにか動かしています IMEはなんかいろいろ不具合でてるっぽいから、あきらめるか
前のバージョンのIMEに戻して試せ >>590
互換モードのWin8とXPでやってみたけど状況に変化なしですね
たぶん最近のIMEに問題があって、
互換モードではそこまで戻してくれないというこtでしょう ねぇ、IMEは色々不具合出てるよね
突然漢字入力できなくなるのは、メモ帳だったら、それをいっぺん閉じないと治らない
漢字の候補が表で出る奴は、最下行が見えないし
なんでそんな単純なバグが発見されずに出荷してるか謎 IMEにバグがあるのは間違い無い
しばらく使ってると突然可笑しくなる
何がきっかけかは特定出来ていないが
可笑しくなったら必ずやることは
タスクマネージャーから
ctfmon.exe
を見付けて問答無用でkill
これで大抵は治ってる >>587
あるね
そのときにIMEを使用しているアプリによっても違うようだ >>587
もれはファイルのエクスプローラーの中でファイル名を変更しているときに遭遇することが多い
(それ以外の場合ももちろんある)
エディタとかだとあまりならないイメージ あとこれはVBに限った話じゃないから
むしろIMEスレとか
バグ報告スレでの話題にすべき
ム板で話しても良いとは思うが
VBスレでこれ以上話すのはなんかずれてるというかもったいない WM_CHAR フリーズ
で検索すると
microsoftのサイトで当面の回避策が出てきます
「以前のバージョンのMicrosoft IMEを使う」により回避できるようです おお、サンクス
漢字モードを変えるとモニタ中央に「A」とか「あ」とか出るバージョンね 未だにVB6使ってる所はヤバい
VB.NETに移行するにも厳しいし VB6@Win10
VBPを開こうとすると、1%か2%程度の確率で、
レジストリなんたらのエラーで失敗する
でももう一度やれば正常に開けるので問題は無いのだけど
Win10って、そういう不安定なもん? Win10のせいじゃなくて、VBPの問題じゃないかと思うが
10での開発環境はサポートされてなかったはずなので
自力で解決できないなら古いOSつかっとけとしか まだshiftjisで頑張ってるの?
早くunicodeにおいでよ Windows11でもVB6アプリが動くなんて凄いじゃん >>608
セキュリティホール意図的に作ってどうする? >>609
VB6のランタイムに致命的なセキュリティーホールがあるのか? 未だOfficeに搭載されているのはVer幾つなんだ? なにも.netにこだわらなくてもいいじゃない
昔なら数十万もしたようなC++がタダで手に入る時代なんだよ
今更糞重いVSのIDEなんて使ってられるか(会社が貧乏というのもありますがw) .netって成功してるのか?
未だにその存在意義を知らんのだけど VBみたいな古い言語でも.NET上にあれば殺さずメンテし続けられやすい >>614
それなりに.NETの案件は有る
しかしJavaやCOBOLやPHPほどでは無い えええ??
VB.NETはコボル以下?
それって大失敗じゃん >>617
>>VB.NETはCOBOL以下
そうだよ
マイクロソフトがVB.NETよりC#に重点移した時点でVB(.NET含む)は終了した
COBOLより案件少ない .NETが出たときに、その勉強を始めたものの
自分はプログラマ専門の仕事ではないんで
こんな煩雑な言語仕様に付き合う暇は無いというか
その面倒さに見合う恩恵があるとは思えなかったので見送った
MSはOSの方でも、変な方向に進んで大ヒンシュクを買っているが
VB.NETも失敗だったのだろう?
VCに比べて、短いコードで記述できる利点を捨てるなら
VCでやればいいじゃないかって話だよ .net6で派遣取る!
いやいや、時代はwebアプリでしょ なんかもうネットでもVB6の情報が出てこなくなってきたようなので質問させてください
構造体のメンバも、構造体自身も動的配列にしたいのですが
Private Type tt
aa As Integer
bb() As Integer
End Type
Dim INF() As tt
:
ReDim INF(10)
ReDim INF(10).bb(10)
INF(5).bb(5) = 123
最後の123を代入するところで
「実行時エラー9
インデックスが有効範囲にありません。」となります
どなたかご存じの方いらっしゃいますでしょうか そもそも構造体のメンバに動的配列なんぞ使えなった気がするが
それコンパイルは通ってbbのRedimは動いてるのか?
まあ、それでRedimされているのはINF(10).bbであってINF(5).bbではないがな やっぱりですかね
ReDim INF(10).bb(10)の後半のbb(10)は無視されている気がする
そこでエラーを出さないから悩んでしまう >>624
>>623の人が何言ってるのかちゃんと理解した方がいいよw っていうかさあ、どんなポンコツPCでもGB単位のメモリー持ってる時代に
KBオーダーのメモリー節約するために本当にそれやる必要あるの?w
っていうか今時VB6使ってるってことはもう20年選手だろうに
そのレベルの質問はないわ ちょっとVBAで試したけど構造体に動的配列できるっぽいな
まあ、なんでわざわざ構造体をサイズ可変にしたいのかわからんが
>>624
いやだから、ReDimしてるのはインデックス10の要素だけで、インデックス5の要素はReDimされてないだろ
ReDim INF(5).bb(10) しろよ まぁなんてことでしょう
そんなことになってたんですか
ループで回さないといけないんだ
ここで聞いて良かった
ありがとうございました 今月のwindows updateのせいでIMEに不具合出るようになったみたい
変換中にスペースキーを押すとカーソルが文字列の最初の方へ勝手に移動する MS-IME不具合は、「全角のカッコの開始終了などの二文字入力後に、その間に「ああああ」とか書いて確定したときに、カーソル位置が前方に行く」という現象
だと認識してたけど、そういうことなのか。
もちろんATOKやGoogle IMEでは発生しないね。
ちなみに、DevExpressの古いActiveXであるdxEditなどを同じFormに配置すると、この現象は消える。 IMEの古い方を使うっていう設定にしてる人だけに起きてるのかな? Win10をクリーンインストールしたPCでも発生してるよ
ギコナビでも発生してるらしい
ギコナビってVB製?
あと、"国"の前にカーソルがあると消えて見えないとかね
勘弁してほしい ギコナビはDelphiじゃなかったかな
それにしても相当古いはず 高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化 https://forest.watch.impress.co.jp/docs/news/1378596.html
ここに出てるね。
「Microsoftの日本語IMEだけでなく、他社(サードパーティー)の日本語IMEでも発生する」
とか書いてるけど、Google IMEやATOKでは起きなかったけどなぁ。 24時間以内に修正するってか、気合入ってるじゃん
相当なクレームが入ったのだろう
キーボード見ながら打ち込んでると、変なところに書いていてビックリだよ 文章編集中にカーソル位置が飛ぶバグが直ったと思ったら
その前ノバグがぶり返した 実行ファイル形式で動かしている時、実行時エラーが発生した際に
何もエラーが表示されずに落ちる様になった
何度もコードを書き換えて原因を確認したところ、
どうやら、UserControl_Paint内でクラスのインスタンスを生成するコードがあると、
実行時エラー発生時にメッセージボックスが表示されずに落ちる様だった
最初はクラスに問題があるのかと思ったのだが、何も実装していないクラスの
インスタンスを生成してもでもやっぱり同じだった
(ちなみにIDE上でデバッグしているときは実行時エラー発生時に
ちゃんとエラーメッセージが表示された)
一応最新のパッチは当たってるけど、これはどうしようもないのでしょうか?
(UserControl_Paint内でクラスのインスタンスを生成しないようにするしか
ないのでしょうか?)
例)
Private Sub UserControl_Paint()
Dim objClass1 As Class1
Set objClass1 = New Class1 ' ←クラスを生成するコードがあるとダメっぽい
Set objClass1 = Nothing
End Sub VBは時折不可解な挙動を示す。そういうもんだと思って諦めれ
まあPaintみたいな呼び出し頻度が高い処理で
インスタンス生成みたいな重い処理をやるべきではないな
objClass1をprivate変数とかにしておいて
Paintの中ではその関数使うだけに出来ないのか? >>639
確かにその通りですね
不具合の発生元は分かったので、挙動に合わせて修正することにします
ありがとうございました っていうかVBはもう20年も前に死んでるんだってw
いつまでゾンビに仕事をさせるんだよw
もういい加減墓の下で静かに眠らせてやれよマジでw Officeの中では普通に生き延びてるからなぁ
マクロのpython移行計画も潰えたはず >>643
VBAとVBはちがう
いまでもVBAの開発環境はたとえばEXCELのVBEとしてサポートされてる
VBは、開発環境たとえばVisual Studio6.0とかはすでにサポートされてない
それが動くOSもサポートされていない
だったらランタイムの動作もさっさとサポート切ってくれればまだいいんだか
すくなくともWin10では基本的なランタイムはサポートされてたはず
Win11はどうなったかしらん >>643
EXCELのpython搭載なんて、俺が知る限り
単にアンケートとっただけで、一度も正式に開発対象になったことないと思うが
python移行計画なんてどっから出てきたんだよ >>640
自己解決しました
今更興味ないかもしれませんが、一応書き込んでおきます
動作ログを取ってみてわかったのですが
実行形式ファイルの時だけ、実行時エラーが発生した後に
UserControl_Paintが呼び出されるようです
実行時エラーが発生した後は、多分終了処理に入っていると思いますので、
このタイミングでクラスのインスタンスを生成すると不具合が生じるのだと
思われます
解決策は簡単で、UserControl_Paintの先頭でErr.Numberをチェックし、
実行時エラーが発生していた場合は、Exit Subで抜けるようにしました
上記の対策で、正常にエラーメッセージが表示されるようになりました 最近、VBを使っている話を聞いたのだが、昔は当たり前のように宣言していた
Option Explicit On
は今ではしないのか? 開発が主務じゃないコンピュータ保守は初めて知ったと言っていたが。 たぶん普通は入れると思う
VB6は確かコード先頭に書いていたような気がするけど
以降はVisual Studio のコンパイルオプションにあって
最近のはデフォルトでオンになってるから
意識しないのでは? >>650
今はコンパイルオプションになっているのか?
情報ありがとうございます。 VBなんて10年くらい使ってなかったがこの動画をきっかけに思い出した。
https://youtu.be/h9RqM2fXssY?t=36 >>653
最後のトンネルの下りだと空荷のトレーラーじゃなく
横に止まっているVBが3台あるのだから、それでブロックしておけば良いはず。
というかあの映画の作者はVBを破壊しまくる程VBが嫌いなのか? このままVB6を葬り去るより
中国に売却した方が金になるし得だろう
そして中国で取り合えず64ビット対応をする
相当売れるはずだよ VB6でDouble型をLarge_Integer型に変換するにはどうすればいいんでしょうか?
ググって以下のソースを見つけたのですが、オーバーフローします。
QuadPart使えないし。。。
Private Function cvtDblToLi(Val As Double) As LARGE_INTEGER
Dim foo As LARGE_INTEGER
foo.lowpart = Val And &HFFFFFFFF
foo.highpart = RightShift(Val, 16)
cvtDblToLi = foo
End Function 大きさに困ったら通貨型使ったら
CCur(31アイスはダブルに限るね) >>657
つかさー
VB6のDouble 型ってIEEE754に準拠してるだろうから
もっと基数とか指数とか仮数とかちゃんとみて
変換掛けてやらないといけないんじゃない?(鼻ホジ)
なんかそれ見てると下位4バイトをlowPartに
上位6バイトをhighPartに突っ込んでるようにしか見えない >>658-659
レスthx
どっかのサイトの解説で、Currency型は整数15桁と小数4桁の8バイトで整数精度に問題あり。
LONGLONGと同じ8バイトのDouble型推奨って書いてたから、Double型との相互変換で
サンプル探してたけど、Double型が8バイトなのは最近のVBであって
VB6のDouble型って4バイトなのね。orz
Currency型とLARGE_INTEGER型の相互変換で探したら、すぐ見つかりました。
どうもお騒がせいたしました。 >>660
いやいや、むしろ問題があるのは
DOUBLE 型の方だろう。
整数の精度ではなく、浮動小数点で
10進と2進での計算のために誤差が出る。
整数を扱う場合はどちらも問題ないだろうが
Currency は通貨型と言われているものだから
計算に誤差があったらヤバいだろ。 国内フリーランス1670万人 1年で57%増 雇用不安背景、労働人口の2割超す
副業・兼業812万人の見通し 去年より100万人余増 コロナ影響か
副業収入、「副業が本業収入を超えた」21.8% 約7割が副業・複業先への転職にも前向き
副業のほうが本業より収入が多い 5人に1人
3000人が回答!「副業・ダブルワーク」実態調査2人に1人が「副業・ダブルワーク」の経験ありと回答。
20代の7割が「副業したい」、興味のある仕事は?
ランサーズ、『フリーランス実態調査 2021』を発表
〜フリーランス人口、経済規模は過去最大に〜
仕事は9割外注すれば売り上げが爆増する
フリーランス市場規模が20兆円を突破 -副業は8兆円- 新石器時代に合わせて新VB6が爆誕するのでしょうか? VB6は非GCでポトペタ開発ができる稀有な存在なんだがなぁ
こういうのをひとつくらい残してほしかったわ ちょこっと変更してVB64として売れば需要あるだろうに
世の中、プログラム作ってるのはプログラマだけではない
本業が別なとこにある人も使う
エクセルVBAは色々とうっとうしいしな >>669
興味はあったけど、糞高い割にはバグだらけらしいんだよなぁ
優秀は開発者はみんなM$にぶっこ抜かれるから仕方ないのか・・・ VB6はトライアンドエラーがやりやすいので素人でも扱いやすい
コンパイラ言語とスクリプト言語のいいとこ取りした感じ
次は、64bit整数対応、符号なし整数対応、シフト演算対応、ユニコードAPI呼び出し対応、
スレッド対応、継承対応、スクリプト実行(動的実行)対応のVB64か・・・(妄想) そこまでイヂり倒せる人なら既にC♯とかに引っ越ししてるような C#は素晴らしいんだが、GCがあるからなぁ
GCの無いお手軽言語が無い状況なのよね VBAさえ開発環境改良してないしなぁ…MSやるきなさすぎ >>676
VBA は変わらないからいいんですよ‥‥ VBはWindows SDKすら使えない人間が使うものとして用意された時点で終わっている。 >>678
あなた、遅れていますね…
VB/VBA から win32api は呼び放題なのに >>675
malloc/free地獄はもう嫌じゃぁ >>679
Windows SDKの開発を知らないのに反論するのは意味がわからない。
ネイティブ開発は、VBそのものを作るようなやり方だぞ。 >>680
そんなの忘れるようなコードを書いている方のレベルの問題 >>683
いや、だからさ、VB からでも win32api くらいなら簡単に呼び出せるよ
win32api さえ呼び出せるんだったら、それが C/C++ からであろうが、VBA からであろうが、できることはあまりかわらないのでは?
そりゃ DLL とかは無理だけどさ、アプリならほとんど同等に作れると思うよ >>685
だから、あんたはWindowsアプリケーションを作る基礎を知らないと言っているんだが?
Windowsが発しているメッセージを判断して、どうこうするレベルと、VBみたいにそこがすでに用意されているレベルのものでは、比べても意味がない。 >>685
VBがVBで作られている、ExcelがVBで作られていると説明すれば自分自身が変なことを言っているのかがわかるのかな? >>685
Excelのスレでcomポートの質問してるのは君か? >>686-686
では質問いたしましょう
exel VBA から win32api を直接呼び出せるか、それとも呼び出せないか?……①
①の質問に yes または no のいずれかひとつで答えてください。 >>685
よく読まないで横レスするけどwin32apiだけじゃ実用アプリは無理だろ >>689
出来るよ
でも出来るのと使えるのは違う >>691
十分使えますよ、この前テトリスを組んだばかりですよ VB6は最近の言語と違って構造がシンプルらしいから、
Windowsがバージョンアップを繰り返しても、
このまま生涯現役でいて欲しいわ >>689
呼び出せるよ。あんたWindowsアプリケーションをVBでしか作ったことがないから、悔しいらしいけど、VBはあくまで簡易的なアプリケーションの作成ツールだ。
だから、VBはいくらこねくり回してもよくはならない。 そりゃVBで簡単なアプリしか作ったことがないってことだぬ マイクロソフトがライブラリの作り方がわからない時期に提供した手段のひとつ Windows 95の時代にVisual Basic 4.0。
Windowsネイティブアプリケーションではないため、マイクロソフトもVBはあくまで仮の言語という位置づけだった。 このスレッドはコボラーと同じような思い込み強いじじいが多い。
VBはコンピューターの仕組みがわからなくても使えるから、コボラーみたいな勘違いが起こる。
仕事でしか興味がなかったから、VBがクソ環境だと思わなかったんだろう。 プログラムなんて簡単に組めればそれに越したことはない VBはできることが少ないのを、無理やり拡張したから、中途半端なものになった。
Windowsを誤解させてしまったという負の面が大きい。 VCなら出来るってのは、マルチスレッドとか
無くても困らないようなものばかり
上の人が言ってるように
手間かけずに作れるてことは
例えば、5年後に手直しが必要になったときに
その有難たみが実感できる なんだかんだでExcel VBAとかは未だに使うから、20年前にVB6で作った自作ソフトとか余裕で直せる。 >700
Windowsの、どこをどう誤解させたのか詳しく
ちなみにVBの拡張はVB以外でも作れるし、Windowsのアプリ連携機能の根っこだと思うんだがな >>704
高級な言語が低級な処理を覆い隠すのは当然の進化なんだが
それがWindowsのどこをどう誤解させたと? >>705
WindowsのようなOSとハードウェアの仕組み インテルの8ビットCPUは、日本人である嶋さんの設計だった
IBMですら、その将来性を見通せなかったのだから、
日本政府の無能ぶりは仕方ない
しかし日本政府はユダヤの商売を邪魔できないというのがあって
日本製OSは自滅させられてしまった
CPUやOSのような、稼げる分野に踏み込むことができないのだ
その一方で、中国製CPUはWindows10がサクサク動くまでになってきた
その価格で、そこまで動くなら充分だ、という方向に世界は動き
インテルのCPUは、一部の愚かなヲタしか購入しなくなるだろう
それに加えて、アメリカは基軸通貨の地位を失うことで米国債を売り浴びせられ
国が潰れることになるし、日欧も巻き込んで餓死者が大勢出るほどの大恐慌が目の前に迫っている
インテルもMSも先が無い
世界経済はBRICsが引き継ぐ
だからVB6は早く中国に売り払ってしまえと言うのだ >>708
VBはフレームワーク
Windowsのメッセージをループしながら、取得して判断する部分は初めから出来上がっている。
バカにされていると思っているのかもしれないが、あまりにできることが少ない状態でリリースしたマイクロソフトを恨んでくれ。 >>704
Windows APIが低級ってマジでいってんの?
超高級絢爛豪華APIだろ
DOSのころはディスク以外のデバイスは全てアプリケーション側で個別に操作しなくちゃいけなかったのに >>710
できることが少なくても、拡張することが前提だからな
ビルゲイツが拡張できるようにしろって言ったらしいが
>>711
比較の問題だろ
VBのような高級言語からみればOSのAPIは低級だわな >>712
だからVBではWindows SDKの開発と違いが大きすぎて、マイクロソフトは混乱してユーザーも混乱した。
そこにサンマイクロシステムズがJavaといううまく作られたライブラリを持って登場した。
マイクロソフトはMFCというライブラリを提供していたが、Javaのライブラリのような発想はまったく出てこなかったので、サンマイクロシステムズのライブラリに衝撃を受けた。
GUIのライブラリはこういうふうにすれば、いいのかとわかって、VBは6.0で捨てることが決まった。
マイクロソフトは自分でクビをしめていたわけ。
マイクロソフトはWindows SDKをみんな使ってくれると思っていたが、世の中のプログラマのレベルが想像以上に低かったせいで、とりあえずVBでしのいだだけ。
当然、C言語、C++プログラマでネイティブアプリを作るような人間は、Windows SDKの方が自由自在なので、こちらを使った。
DirectXを使うような一般人も当然、Windows SDKを使った開発をしている。
VBは何もかもしょぼくて話にならない。
ただ、なぜか日本の業務システムではVBを使ってしまって、日本はガラパゴスになった。
VBを多用したせいで、日本のWindowsアプリケーションのレベルが下がったとも言える。
プログラマのレベルも下がり、コンピューターがどう動いているのか、Windowsがどう動いているのかすら考えない人間がこんなスレッドを立てて、あたかもWindowsに詳しいかのように発言している。
VBを使っていた時点でまったくわかってねえんだよ! プログラム板の他のスレッドを見ないようなレベルの人間だからな。
やる気なし、関係あることでも調べない、仕事でVBを使っていたから知っているだけという勘違いで、VBが古代などと変なことを言ってしまっているやつらがいるのが、このスレッド。 無制限に時間を使える訳ではないからなぁ
個人的に興味があって、家で調べているならそれでもいいんだろうけど、
会社で調べてたらその分見積もり高くしろと言われてしまうし、
とにかく簡単に出来るほうがよい
Windowsの仕組みとか正直どうでもいい >>714
あなたが衝撃を受けたJava GUI って
AWT?
Swing?
JavaFX? Sub Japan_Cleaning()
Static Yamagami
If 朝鮮自民=0 Then End
Del 朝鮮自民
Yamagami++
Japan_Cleaning
End Sub VB6を運用続けるのも難しくなって来た
VB6→C#やVB.NETへの移行案件いろいろ出て来てるね >>720
移行が終わったら、呼んでくれ。
VB6からの移行なんて絶対やりたくない。w 新規開発用の環境はVB.NETは開発終了みたいだからC#へ移行 >>721
>>VB6からの移行
結構多いよ
どんだけVB6のまま放って置いたか分かる VB.NETも終わりなの?
じゃあVBとWindowsもひっくるめて中国に売っちゃえばいいのに
例えば、漢字変換が何十年も進歩しないアジア軽視は許せん
Windows自体が問題放置のお手上げ状態だし
まぁそろそろ人間の手には負えなくなってきたのだろうが VB.NETの進化は止まった
逆を言えば、それだけ完成度が極まった、とも言える Win11でも見捨てられずに動いちゃう(ランタイムとかの個別導入はいるけど)VB6の罪は極刑レベル。 エクセルVBA を買うと損するの?
エクセルVBA はこれからどうなるの? >>725
新しい機能はC#使えってことでしょ
VB.NETはこれまでも周回遅れだったじゃん ある意味エクセルVBAの勝利だな
エクセルVBAはユーザーが多いから無くなることはないだろう
Windowsを立ち上げたときの核心部分は、日本のNEC部隊が担当したそうだ
富士通とかもマイクロソフトに出向して、てっきり日本語対応の部分だけを担当してたのだと思ってた
インテルにしても初期の8ビットCPUは日本人の設計だしな
孫正義のような日本の足を引っ張る朝鮮人連中が、安倍死から絶賛崩壊中で
これから日本復活だよ
とはいえ欧米の崩壊に日本も巻き込まれるので暫くは地獄だが なんでWin11って日本語不自由なん?
ローカライズは日本語の話せるアジアンが担当して、生粋の日本人は参加してないん? >>731
>>エクセルVBA
無くならないだろうね
VBA案件も多い 15年位前からMSIMEの開発は中国に移ってるそうです
当時から精度劣化とか言われてた >>732
22H2の日本語表示はかなり中途半端になってたよ
配信開始したの知らないで、昨年末の21H2だと思ってダウンロードしたんだけど
隣り合ったメニューなのにterminalとターミナル(管理者)とか、インストーラが英語のままだったり
前のバージョンでできてたとこが間違ってた Windowsがオープンソース品質に近くなってきたな・・・ 本当にWindowsは酷い酷いってWindows板に書きまくったら
「他所でやってください」の規制がされてしまった
一例を挙げるなら、ファイルをコピーしようとして
「上書きしていいですか」のダイアログの意味不明さも酷いが
それをキャンセルしたら無処理で戻るはずが、プログレスバーがスルスルと伸びるんだよ
これ怖いよ、上書きしちゃったか確認が必要だ
漢字変換も使い込んだら30年前の、候補が頻度順で並んでる方が速いよ
もうあちこちメチャクチャ macOS や iOS でディレクトリというかフォルダのコピーするとき
同名のフォルダがあったら内容マージされるもんだと思って
確認ダイアログでOK押したら元々のフォルダの中身が消されたのは良い思い出 VB6のシステムをVB.netで書き直す作業をプログラムわからない人に説明したい場合、
どういう例えだせばわかりやすいかな・・・・? VB6とVB.netは名前に同じVBとついていますが、
別の言語です。翻訳の多大な労力が発生します。
日本語から中国語に翻訳する作業を同じ漢字を使う
文化なんだから簡単でしょと言っているようなものです。
とか?
中途半端に知識のある客
「でもVB6で書いてるものをVB.netに自動で変換
出来るって聞いたよ?」
COM、OCXを置き換えたり、
コントロール配列が使われているばあいの置き換え
VB6からVB.net2008、Visual Studioへの
2段階アップグレード等をどう説明したらいいんだ。
orz >>741
日本語と中国語の漢字で似て非なるものの説明いいかもしれないですね
ありがとうございます
開発期間すごく甘く見積もりされていて辛かったので
これで少しでも伸ばせたらいいなぁ・・・ >>741
中途半端に知識のある人には、自動変換ではCOM、OCXといった共通で使われる古い部品はそのままだから、新しい部品に置き換えないとVB6からVB.netに書き換えても今後動作しなくなる可能性が高く、.NETの部品は規格が違うから書き換え作業が増えますよと伝えていた
でも実際は、.NET Frameworkのサポート期間の方が短くて、初期のバージョンに移行した方が先に寿命を迎えた
コントロール配列の問題はCOM、OCX問題が無ければ、そのままでも機能するから書き換えてないのも見かけるよ
セキュリティ面では改善されたのかもしれないけど、VB6からVB.netへの書き換えって、本当に必要だったのかな、新しい機能を使うためには.NET Frameworkへ移行した方が良かったものもあるけど、VB.netの開発は終了されて今後新しい機能が追加されないみたいだから、移植時に新しい機能が必要なかった場合は意味が無かったと思う
COM、OCXがそのままでVB.net化されたのなんか、全く移植した意味が無かったと思う
>>740
最近のVB.net移植案件の目的ってなんなんでしょか?
うちの会社は最近のはC#へ移植してるよ
言語は併用できるから古いコードはVB.netへ移植して、新しい部分はC#でも良いけど、VB知らない人にはVB使う意味って無いよね
ところでVB.net化して、VB6名前空間がそのまま残ってるコードをどう思います? >>743
>最近のVB.net移植案件の目的ってなんなんでしょか?
私のケースの場合は、単に担当する私の経験がC#よりVB経験があったためと
依頼側はVB6とVBって似てるからいけるんじゃない?っていう認識のもとでの依頼でしたね
ここ数年C#触れてなかったけど、今の主流は次世代とかのこと考えるとC#のほうがいいのかなぁ VB6からの移植はIEみたいに
いつMSが切るか分からんのと
保守のVB6エンジニアの確保が難しいからじゃないの? >>743
VB6はランタイムはサポートされていても開発環境はすでにサポートされてないはずだが
.NETはサポート切れたら寿命なのに、VB6はサポート切れても寿命じゃないと? >>746
1.VB.NETは、新しい機能追加が終わったから、もしVB6の機能で良いというならVB6で良い
2.VB.NETでできることはC#でもできるから、どうせ移植するなら機能追加のあるC#の方が有利
3.実行環境については、VB6のサポートは続いてるけど、.NETはバージョンによっては終了
たとえば、NETFramework4.0は開発環境(VS2010)のサポートが終了されちゃったし、置き換えられて4.0実行環境もサポート終了された
開発環境のサポートが終了されたのを妥協するとしても、4.0で開発したなら最終バージョンの4.8の動作確認が必要になるけど、VS2010しか持ってないと対応できない
うちの職場は社内設備用の開発なんで、新しい開発環境が買ってもらえない
MS以外のメーカーから提供されるライブラリが高価で初期導入の時にしか買っていないのも問題なんだけどね
うちの職場ではWin11については現在確認中だけど、万一のためにVB6用にXpは仮想化してあるし、Win10までVB6の開発環境は現役で使えてる
VB.NETはMSのサポートが必要で、どうしてもVBが使いたい時だけの選択肢でしかない、それなら付加機能のあるC#に移行するよねって話で新しいものはC#に移行しているよ VB6のIDE環境だけどWIN11で普通に使えてるよ。
ランタイムとか自分で入れ直さないといけないけど。 旧VBはXPの仮想マシンで動かしてるわ
まるごとコピーすれば5分で準備できる それって、Win10上で、バーチャルXPを動かしてるってこと?
XPマシンがあるならVBの開発環境構築にバーチャルPCは不要だものね
Win10上でVBPを起動すると、レジストリの登録がなんたら〜とメッセージが出て
それはもう一度やれば正常にプロジェクトがロードされたのだけど
昨日は10回近くリトライしてもダメで
ダメなときはダメという感じになってきた
何かが不安定で、ネットで調べたら管理者権限で立ち上げるとかあって
今調べている最中だけど
なんか古代VBに対する配慮がなくなっているのではないかと不安
バーチャルXPが作れるなら、それも考えておかないといけないかも >>750
VB6 IDEをWin10以降で動かすネット記事は
初回起動時のみ管理者権限で起動って書いてるトコ多いけど
レジストリの読み書きするプログラム作る場合は
常に管理者権限で起動するようにしないと
書き込みエラーで怒られるよ。 >>750
うちはHyper-V使ってるよ
Xp用の統合環境用ドライバがServer2012R2くらいまでしか対応してなかったから、Server2012R2から持ってきた
多分Win8.1くらいまでは対応してたんだろうけど、Win10以降はWindowsUpdateでドライバ取得するようになって、Xp未対応なんだよね
Xpについては、XpモードのVHDをそのまま使ってるのもある
なぜかアクティベーションできたPCとできなかったPCがあって、仕方ないから新規に入れた環境もあるよ
Hyper-VはWin98やMeは対応できないみたいなんだけど、他社の仮想環境なら使えるのかな
VirtualPCやVirtualServerなら実行できるのにね
VB6もそうだけど、F-BASICの環境構築にXpは役立ってる
Xpより後のOSでは、デバッグができなかった
F-BASICはXpすら未対応ってことになってるけど、Xpなら動かすことができた VB6→C#への移行案件が地元で有るけど
募集かけても人が来ないのかずっと募集中
よほどVB6からの移行は皆嫌ってるって事か 単純に古代VB言語を使いこなす現役が少なくなっているんじゃないの? なんでC#にする必要があるのか聞いてみれば
たぶん、例えばTreeViewとかの非標準のコントロールを使っているから
起動すらしないということなんでしょ
そのコントロール相当のものを自作すれば済む話なんじゃないの
自作コントロールを作っておけば、そういう案件全部食えるのでは 例えばポップアップメニューの項目の中で、使えない項目は
Enabled=Falseにすると、エンボス表示になって、これは使えない項目だと瞬時に分かったのに
今時のWindowsはタブレット対応のためか、滲んだフォントを使うので、エンボス表示が使えない
そこで文字色を灰色にしたり、背景色を変えたりの統一されていない仕様になって非常に分かりにくい
それはほんの一例だが、Windows開発の先人たちが改良を重ねて使いやすくしてきたものを
全否定する今時のWindowsは、GUIが子供が作ったようにバカげたものになっている
コントロールパネル関係なんか悲惨すぎる
場当たり的な思いつきの仕様が使われて、もう末期的だろう
開発チームを統括してる奴がいないようだ
しかしXP時代のよきGUIがVBランタイムとして残されていくのは救いだな 今やWindowsの売上はMS全体の売上の2〜3割しかないからあまり工数を割けないんだろうねぇ >>758
今のWindowsって今までに蓄積したものをぶっ壊した挙句、
UIが中途半端なキメラ状態になってしまってるんだよな
もう、モバイル完敗なんだから、サッサと諦めて
今までのデスクトップ路線に戻してほしいわ XPが完成形だよな。それ以降は劣化だよ。
進数計算とか空で出来ない雑魚文系なので、XPの関数電卓は未だに重宝する。 今のWindowsの電卓は最低だわ
フリーソフト以下だ
たぶん新人の勉強のために作らせたんだろうが
あんなものをよく上司がOK出すなと思う
アンドロイドスマホの電卓はセンス良い
さすがGoogle >>757
かも知れないね、、
まあ.NET Coreとか視野に有るならVB.NETよりC#にしとく方が良いからね 古いプログラムは余り手を付けずに延命できるならそれに越したことはない
表面化してこなかったバグを掘り起こしてしまいかねない
C#に移行なんて話は、どうせ元のソースの全てを理解してやろうとは思ってないだろ 「Internet Explorer 11」は2023年2月の
パッチで完全無効化
~Microsoftがアナウンス/
そろそろクラシックVBも引導渡されるかな。 そもそもプロプライエタリな開発ソフトなんて時代遅れだからっ!
これからはフリーなg++またはclang++やろ?
もちろんGUIはwxWidgetsッ!
Qt?・・・もう知らん AmazonのKindle for PCがQtのようだ edgeをdom操作出来るようになるまではie消すなよ。 VB6の様な実行即起動のP-CODEライクな開発環境はもう出ないのでしょうか? VBだけで出来ることなら簡単だけど、
OSの機能にアクセスしようとすると急に難しくなる VBAにはコントロール配列が無かったから複数の同じコントロールを
操作するのが面倒だった気がする VBってトライ&エラーがやりやすいから
やっつけ的な糞コードができやすいというのはあるかも・・・ 難しいかどうかを気にするのって
やらない言い訳を探しているように見えるな vbもvbaどちら様も難しいございますわよ。
だってプログラミングなんだもん。 Picture1をコンテナとして、複数のImageコントロールが乗っています
そのイメージを
Clipboard.Clear
Clipboard.SetData Picture1.Picture か Picture1.Image
でクリップボードに入らないかと思ったらImageは無視されてしまいます
Picture1に直接描かずに、Imageを乗せるのは、
Imageはドラッグで動かすものだからです
ウインドウ丸ごとキャプチャは、Picture1がウインドウより大きくて
スクロールしながら見るものだからダメです
全Image を BitBild でPicture1にコピーしてから
Clipboard.SetData するしかないでしょうか >>781
Picture1のAutoRdrawをTrueにしてもダメでしょうか? >>781
これでどうでしょうか?
フォーム上に Picture1 と Command1 を置きました。
Picture1 上には任意の Image を置いてください。
※ Picture1 の ScaleMode プロパティは、「3 - ピクセル」に設定してください。 Option Explicit
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Const SRCCOPY = &HCC0020
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const CF_BITMAP As Long = 2
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal uFormat As Long, ByVal hData As Long) As Long Private Sub Command1_Click()
Dim hDC As Long
Dim hBitmap As Long
Dim hBitmapOld As Long
hDC = CreateCompatibleDC(Picture1.hDC)
hBitmap = CreateCompatibleBitmap(Picture1.hDC, Picture1.ScaleWidth, Picture1.ScaleHeight)
hBitmapOld = SelectObject(hDC, hBitmap)
BitBlt hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, SRCCOPY
If OpenClipboard(Me.hWnd) Then
If (EmptyClipboard()) Then
SetClipboardData CF_BITMAP, hBitmap
End If
CloseClipboard
End If
SelectObject hDC, hBitmapOld
'DeleteObject hBitmap
DeleteDC hDC
End Sub 全 Image を Picture1 に BitBlt する必要な無いみたいです。
VB6 の Clipboard オブジェクトを使用する場合は、StdPicture にする必要があるみたいですが、
hBitmap を StdPicture に変換するより Clipboard API を使用して hBitmap を渡す方が簡単だと思ったので
この様にしました。 ありがとうございます
ありがとうございます
ありがとうございます
できました!
複数のImageは透過Gifでして、重なり合っているので
ImageはたぶんBitbldできないから、一旦ワーク用のPictureBoxにコピーして
それをZオーダーの下層から順にPicture1にBitbldするのに
EnumWindowsとGetNextWindowを調べているところでした
でもPicture1はウインドウより大きいので
やはり見えない部分は内部では保持していないのでしょうね
そこはコードから少しずつスクロールしながらキャプって繋ぎ合わせようと思います
私の趣味に付き合って頂いた善意あるあなた様のご健康を願っていますので一言
「ワクチンは絶対に打ってはなりません」
これから世界は大混乱の終末の様相となり大勢の人々が無くなります
もし自由な時間がおありでしたら海外情報を紹介しているサイトをご覧になることをお勧めします オレはワクチン打つたびに副作用が強くなっていったから3回で止めたわ
人によっては1回目で強烈な副作用に襲われたらしいが・・・ マイクロソフトもWindowsアプリケーションの開発手段のひとつを提供しただけで、VB6.0はもともと本流ではない。 それなのに予想以上に人気が出てしまって(ソフトに掛けるお金や時間もなく)
切るに切れずに今に至るのでした
簡易的なものはDelphiに任せてどんと構えていれば良かったのかもしれないな でもVB4〜6の出来は素晴らしい
Windows本体やエクセルなんかより頑張ったと思う
文句の付け所がほとんど無い
思うに、MSはある時点で突然スタッフが劣化し
その前に終了したVBは良く見えると ホントかウソか分からんが実は日本人が裏で頑張ってた説もあるんだよな
ある日突然日本人に触らせなくなってから劣化して逝ったとか・・・
日本人はソフト開発向かないと言われているが
一部には特別優秀な人が居るんだなぁ MSIMEがうんこになったのは開発拠点を中国に移したせいだと聞いたな 日本から富士通やらNECやらがWindows開発部隊をMSに送り込んでいたのは事実
当時FM-TOWNSを持っていて、富士通系のパソコン雑誌でそういう記事が紹介されてた
てっきりWindowsの日本語化、2バイト文字対応をしてるのかと思ってたが
Windowsの核の部分から日本人技術者が担当してたと後から聞いた
すると松下が加勢した日本のOSであるTRONと、Windowsの戦いは
ある意味日本人同士の戦いだったのかも知れんね
戦いというほどではなかったのかも知れないが
ゲイツや孫一味によるJAL123便撃墜で終止符が打たれたから
アメリカの方では完全に戦いになってた
アメリカはスーパー301条を発動したからね
ペンタゴンまでTRONには国防上の大問題だとイキってたし
日本人は本当に優秀だよ
JAL撃墜のときの中曽根、そして小泉・竹中による日本潰しが始まった
こいつら日本人じゃないんだ
海外の調査でも、日本をトップに、香港など東アジア勢が知能指数が高いことが判っている
8ビットCPUの、ザイログZ80やインテル8080は日本人の嶋さんの設計で
嶋さんはインテルに引き抜かれた
カナダで製造された世界初の量子コンピューターの原理は日本人の発案
人工知能でブレイクスルーとなったディープ・ラーニングも日本人の発案
しかし日本には白人の言う通りに動く、いわば日本人の足かせとなっている民族がいる
政治家なんか全員そうだ そしてWindows安全神話が始まった
(実際は、アメリカに情報抜かれまくってたりして ビルド実行してもエラーもおきずEXEも吐き出されないのはどうやって原因追及すれば
突然VB6やることになってやばいです VB6の寿命半端ねぇっす
どうせならWindowsと共に生涯現役で・・・ 同じ機能、同じ性能のアプリを作れるなら
簡単に早く作れる方がいいに決まっているからね Windows10上のVBアプリで
テキストボックスに入力していると
そのうち漢字入力ができなくなる問題が放置されている
もう修正する気は無いのだろう
たぶんWindows11上でも同じなんでしょ?
VBアプリを再起動すれば復活するのだけど
何かコードを書いて、漢字モードのリセット的なことはできないでしょうか
つまり、漢字入力できなくなったら、
それ用のコードを仕込んだボタンをポチッと押すだけで
再び漢字入力できるような・・・ VB6.0なんてマイクロソフトがもう捨てろと言っているのにな マイクロソフトのライバルはマイクロソフトなのである!
つまり、VB6の様な手軽に開発出来るソフトを作ってしまったのがいけなかったんや
VBが無ければみんな泣きながらVC++使ってたろうから、多分.NETが救世主に見えたんじゃね? >>806
C++も無かった時代を知らないにわかですか?