こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VB 6 を VS 2012に変換するには?

長いこと、VB6で開発をしてきました。このプログラムはハードはRS-232Cを使い入力したデーターをグラフや表で表示したりするものです。VB6を何も不足もなく使って来ましたが、時代に取り残されないように、VisualStudio2012 Professional with MSDN(以下VS2012と略す)を購入しました。ところがプロジェクトファイルの拡張子が違うので読み込めないのです。拡張子が違うことは内容も違うことが考えられます。VB6 ->VS2012 変換をする方法をご教授ください。VS2010に変換する方法で結構ですので皆様、教えて下さい。

ツールボックスからボタンや何やら、最初から同じ名前で作り、ベーシックのソースだけコピーすれば出来るのではと、一度は試しましたが、例として UnLoad xxx 等の重要な関数が付いていないようでコンパイルできないのです。 この方法で、解決された方がおりましたら、回答、お願いいたします。

投稿日時 - 2012-11-12 14:52:37

QNo.7794035

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

Microsoft の VB マイグレーションセンター
http://www.microsoft.com/ja-jp/dev/vbrun/default.aspx

既出の通り Visual Studio 2010/2012 には VB 6.0 で作成したソースコードを .NET Framework 向けに変換するツールが搭載されなくなったので、上記記事では Visual Studio 2008 Express Edition を使ってみれば? ということが書いてある。

今更 VB 2008 Express Edition が入手可能なのかわからないが、上記ページの下の方にある [移行ツールの提供] の中の 「注意) Visual Studio 2010 で Visual Basic 6.0 からアップグレードするには」 のリンクを開く。
(リンク先)
http://msdn.microsoft.com/ja-jp/library/bszew91f.aspx?ocid=aff-n-jp-mba--nsat-com

開いた先の MSDN ライブラリのページには 「1. Visual Basic 2008 Express Edition を開きます。これは、Microsoft Visual Studio Express Editions の Web サイトから無償でダウンロードできます。」 とあり、リンクになっている。
(リンク先)
http://go.microsoft.com/fwlink/?LinkId=139164
http://www.microsoft.com/ja-jp/dev/express/default.aspx

残念ながらリンク先のページは Visual Studio 2010 Express Edition に差し替わっている。
しかしながら、そのページの一番下に小さく 「過去のバージョン」 というリンクがあり、PDF ファイルへのリンクになっている。
(リンク先)
vstudio_2008_product_express_default.pdf

PDF をダウンロードして開いてみると、Visual Studio 2008 Express Edition 時代のページ内容が再現されている。
Visual Basic 2008 Express Edition のバナーの下に 「Web インストール(ダウンロード)」というリンクがあり、クリックすると vssetup.exe がダウンロードできるようになっている。

この vssetup.exe が VB 2008 Express Edition の物かどうかは試していないが、試してみる価値はあると思う。

というのが一応の回答だが、悪いことは言わないから VB 6.0 の時のドキュメントやソースが残っているなら、Visual Studio 2012 で設計しなおしてゼロから作り直すことをお勧めする。
VB 6.0 のコードをツールで変換しても VB.NET 特有の機能で無理やり機能させるコードが生成されるばかりで、.NET 向けに開発されたコードとは言えないものが出来上がる。
.NET Framework 向けのコードを知れば知るほど、ツールで自動変換されたコードの無茶苦茶さ加減がわかってしまい、いつかどこかでゼロから作り直したくなると思う。

投稿日時 - 2012-11-13 02:09:20

お礼

御指導ありがとうございました。今回も、VB6で逃げ切り、次回のプロジェクトからVS2012を採用することにします。そう言いながらVB6を使い続けることになってます。VS2012の良さが分からないのですが、現状ではVB6でも十分間に合っています。
ありがとうございました。

投稿日時 - 2012-11-13 08:46:04

ANo.3

Wr5

>そもそも、アップグレードウィザード自体、VS2012やVS2010では削除されています。

とのことですので…やっぱり作り直しですね。
VS2008を入手してアップグレードウィザードで変換して、
さらにVS2012に……なんて手もあるかも知れませんが、まずまともに動作しないでしょうから……変換を数回噛ませる意味もなさそうですな。
ダメ元で……試行してみるのは自由ですが。
# 「with MSDN」ならVS2008もDLでき…ますかね??

投稿日時 - 2012-11-12 16:35:29

ANo.2

最近のVBは、.NET Frameworkを使用する言語に変更になっています。
下位互換性がかなり失われていますので、アップグレードウィザードを使用したり、関数単位でソースをコピーしても、まともに動きません。1から作り直しと考えた方がいいです。
そもそも、アップグレードウィザード自体、VS2012やVS2010では削除されています。

投稿日時 - 2012-11-12 15:34:20

ANo.1

Wr5

>ところがプロジェクトファイルの拡張子が違うので読み込めないのです。

ちゃんと動くかはかなり怪しいですが……
そのままダブルクリックで開こうとしたらVS2012での変換ウィザードとか開きませんか?
# 変換できても動かない可能性が高い…ですけどねぇ。
# VB6のコードをVB.Netに合うように手直しが必要…でしょう。(規模によっては作り直した方が…なんて事にも…)

VS2012になって、いろいろ変わっている可能性もあるので変換出来ませんかねぇ……。
# VS2005かVS2008なら変換自体は出来たんではないかと。やっぱり手直しは必要でしょうけどね。

投稿日時 - 2012-11-12 15:30:38

お礼

プロジェクトファイルの拡張子はVB6=*.VBP、 VS2012=*.vbpproj です。 *.vbpprojをダブルクリックしても "このファイルを開けません ~ ~ 動作を選択して下さい。" と表示されるだけで一切の動作はしません。
ソースをコピーしても、重要な関数名が変わっているので不可能と思われるので、まだVB6のお世話になります。 14万円も出したVS2012 with MSDN は当分、倉庫に入れておきます。
回答を頂きました皆様、心からお礼を申し上げます。今後 VS2012に路線を切り替えようとしている皆様の参考になれば、幸いです。 もし製造元の技術の方が読んでおられたら、解決策、御指導下さい。

投稿日時 - 2012-11-12 17:53:23

あなたにオススメの質問