古代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/
※「まず自分で調べる」クセを身につけよう。 っていうか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で書き直す作業をプログラムわからない人に説明したい場合、
どういう例えだせばわかりやすいかな・・・・?