古代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/
※「まず自分で調べる」クセを身につけよう。 >>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からの移行は皆嫌ってるって事か