「夫を成功」へ導く妻の秘訣 座談会

VB6.0で開発したプロジェクトをVB2005にアップグレードしたいのですが、どのような対応が必要で手間がどの位かかるのか教えて頂けないでしょうか。
又、GoSubやLenB等が未サポートになったようですが、廃止・新規のファンクションや2005の新機能等について掲載されている場所などご存じでしたら教えて頂けないでしょうか。

A 回答 (3件)

基本は、アップグレード・ウィザードというのを使って、


コンバートしますが、それでも限界は、あります。

おおまかな手順としては、

・Visual Studio 2005 をインストールする。
 (ただし、StandardやExpressではダメ。それ以上(Professional以上)のバージョンのものでインストールする)

・Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Toolをインストールする
 http://www.microsoft.com/downloads/details.aspx? …

・Code Advisor for Visual Basic 6.0 をインストールし、2005に変換された際に発生するであろう
 問題点を洗い出し、必要があればVB6上で修正(リファクタ)する
 https://www.microsoft.com/japan/msdn/vbasic/down …

・Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Toolでコンバートする

・評価しながら、見積もりを出してみる
 詳しいことは、マイクロソフトからも
 「Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005」
 http://download.microsoft.com/download/9/3/a/93a …

 というドキュメントが出てますので、とにかく読んで、コンバートにかかる工数を出してみる。
 (評価および分析という欄が参考になるかもしれません)

・Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Toolでコンバートしただけでは
 不十分なため、コンバートされたVB.NET 2005のソースコードを見直し、VB.NET2005上で、リファクタする。

 リファクタのポイント例
  ・文字列の扱い(文字コード対応。UTF-8、Vistaでの稼動条件を見据えるならUTF-16に変更するなど)
  ・ocx 等のコントロール
  ・APIを使用しているなら、.NET Framework(マネージ)で対応できるものがないか洗い出し、
   方針を決める
  ・構造体の扱いをクラスに変更するか?
  ・On Error Goto , On Error Resume Next, を使っているなら、Exceptionに変更する
  ・3rd ベンダーが作成したオリジナルのコントロール等がある場合は、.NET用のコントロールに
   切り替える
 などなど

ですね。

もし、営業的に先に工数を出す必要があれば、先に
「Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005」を
読んで、ポイント・問題点を掌握しておき、工数を見積もるのがいいかなと思います。

ご参考になれば、幸いです。
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
アップグレードをサポートする様々な情報を教えて頂き、かなり役に立ちます。

お礼日時:2007/08/13 21:03

下記、私が回答した情報に追記です。


私が言ったことがそのまま纏まっているサイトを見つけたので
お知らせ致します。

http://akari.kabe.co.jp/MagSite/Content.modf?id= …

あと、メソッド(ファンクション)ではないですが、
VB6とVB.NET2005で、何が廃止になったかなども掲載されている
ようなので、ご参考までに、どうぞ。
    • good
    • 0
この回答へのお礼

ご丁寧に追加情報まで頂きありがとうございます。
こちらも役に立ちますね。

お礼日時:2007/08/13 21:06

Visual Basic 6.0 のプロジェクト グループを Visual Basic .NET または Visual Basic 2005 にアップグレードする方法は、下記 URLを参照してください。




http://support.microsoft.com/kb/309617/ja
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
良い参考になりました。

お礼日時:2007/08/13 21:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?

Aベストアンサー

思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。

参考URL:http://okweb.jp/kotaeru.php3?q=1257613

QWindows7にvb6をインストールしようとすると、「このプログラム

Windows7にvb6をインストールしようとすると、「このプログラムには既知の互換性の問題があります」と表示されます。
【オンラインで解決策の有無を確認する】ボタンがあるので、それを押すと「Visual Studioの解決策が見つかりません」のメッセージが表示されます。
このプログラム互換性アシスタント画面には、【プログラムを実行する】ボタンもあるので、メッセージ表示を無視してインストールを実行してしまっていいものなのでしょうか?

Aベストアンサー

インストールして大丈夫です。

私がインストールした時は最初失敗しましたが、かまわず再インストールしたらインストールできました。

ほぼ正常に働いています。

日本語入力の時にちょっと挙動不審な時がありますが、その時は別なテキストエディタでそちらに日本語入力し、コピペしています。

VB6はSP6がありますから、SP6もインストールしてください。

また、Windows Update で、「設定の変更」で「推奨される更新プログラム」と「Windows Update」にチェックを入れ、「更新プログラムの確認」を実行してみてください。

表示された一覧の中にVB6関係があったら(あったかどうか覚えていませんが)インストールしておいた方がいいでしょう。

なお、Windows7 はVB6のランタイムライブラリーは標準でインストールされています。

QVB6の開発環境確認

Visual Basic関係の開発環境についてよく解っていません。
初心者です。
教えてください。

VB6で開発されたプログラムというところまでは判っているのですが、どの.NETFRAMEWORKのバージョンで開発されたかの確認をしたい場合、どのファイルを開くか、参照をすればいいでしょうか?
ちなみにソリューションファイルがありません。

宜しくお願いします。

Aベストアンサー

Visual Basic 6.0 は、 .Net の Visual Basic .Net とは別系統のプラットフォームです。
Visual Basic 6.0 は .Net 環境以前の開発プラットフォームです。つまり、i386 アーキテクチャの CPU に対応したネイティブアプリケーション開発環境です。
VB の歴史を簡単にまとめると

1991年 VB 1.0 初出荷
1992年 Windows 3.1 初出荷
1998年 VB 6.0 初出荷(Visual Studio 6.0)
2002年 Visual Basic .Net 出荷( .Net Framework 1.0 )
2005年 VB 6.0 メインストリームサポート終了
2008年 VB 6.0 延長サポート終了

と、まあ、VB 6.0 は 16 ビット OS の Windows 3.0 時代から(正確には、 MS-DOS の Basic 時代を引き継いでいる)の歴史を引き継いだ開発環境です。
この歴史も VB 6.0 でようやく終わりました。 VB 6.0 の開発者は .Net Framework の Visual Basic .Net に引き継がれ、すべてが万事うまく・・・いっていたら良かったのですが・・・。
VB 6.0 と Visual Basic .Net は言語仕様は配慮されていました。
それだけでした。既存のコードはまったく互換性が無く、行き場を失ったコードが停滞しています。
既存のコードを Visual Basic .Net で再開発するなんてことをお気楽にできるはずがなかったのです。

まあ、 NEC の PC98シリーズや DOS のアプリケーションや COBOL が生き残っているのと同じ状況です。 i386 (x86) アーキテクチャの CPU も当分、絶滅するようなことはないでしょう。( .Net Framework は 脱 i386 アーキテクチャ、Go RISC アーキテクチャのための布石でもあるのでしょう)

さて、本題ですが、要するに、「VB 6.0 のアプリケーションの再開発や保守を依頼されたが、 Visual Basic 20XX で開けないんですけど・・・」という状況ですよね。(たぶん)
VB 6.0 の保守を行うには、 Visual Basic 6.0 を使います。(1998年製のソフトウェアです)

開発環境は Windows XP か Windows 2000, Windows Me, Windows 98 SE あたりがサポートされる OS のはずです。
最新の Windows 8, Windows 7, Windows Vista では不具合が出る可能性があります。
Windows Vista 以降は *.hlp ファイル(古いヘルプファイル)などがサポートされていないようですので Windows XP 以前をおすすめします。(追加のインストールやレジストリ設定の変更、互換モードの利用などが必要になるかもしれません。)

幸いにも、下記のMSDN からダウンロードできるようです。

>日本語版 Visual Basic 6.0 提供再開に関するご案内
>現在、日本語版 Visual Basic 6.0 は MSDN サブスクライバ ダウンロード サイトよりご利用いただけます。
>更新日: 2010 年 4 月 13 日
http://msdn.microsoft.com/ja-jp/subscriptions/dd179306.aspx

最新の開発環境は無料で提供しても(Express)、古い開発環境は有料な感じなのはしゃくぜんとしませんが、まあマーケティング的に仕方ないですね。

Visual Basic 6.0 は、 .Net の Visual Basic .Net とは別系統のプラットフォームです。
Visual Basic 6.0 は .Net 環境以前の開発プラットフォームです。つまり、i386 アーキテクチャの CPU に対応したネイティブアプリケーション開発環境です。
VB の歴史を簡単にまとめると

1991年 VB 1.0 初出荷
1992年 Windows 3.1 初出荷
1998年 VB 6.0 初出荷(Visual Studio 6.0)
2002年 Visual Basic .Net 出荷( .Net Framework 1.0 )
2005年 VB 6.0 メインストリームサポート終了
2008年 VB 6.0 延長サポート終了

と...続きを読む

QVB6.0はどこで入手可能ですか?

こんばんわ。

VB6.0の入手方法を教えてください。

よろしくお願いします。

Aベストアンサー

ANo1さん,ANo2さんの両名も書かれているように、

旧バージョンを入手する方法は、以下の3通りぐらいあります。

(方法1)
新バージョンを購入して、ダウングレードする。
(http://www.microsoft.com/japan/msdn/howtobuy/vs2005/downgrade/default.aspx)

この方法の問題点として、VB6のDiskKitがもう手に入らないので、「新規ライセンスの購入」ができない(購入してもインストールする手段が無い)事です。
(VB6を既に持っていて「ライセンス追加」なら有効ですが)
(http://www.microsoft.com/japan/msdn/vs_previous/vstudio/vs6VLdiscon.htm)

(方法2)
MSDNサブスクリプションを契約してVB6をダウンロードする。
(http://www.microsoft.com/japan/msdn/subscriptions/topics/VB6.aspx)
 ANo1さんは、「5万円ぐらいです」と書かれてますが定価ベースで言えば、
「Visual Studio Professional Edition with MSDN Professional Subscription」の場合で、
「新規ライセンス(パッケージ)」は17万円ぐらいします。
(http://www.microsoft.com/japan/msdn/subscriptions/howtobuy/flow/default.aspx)

(方法3)
中古品(ネットオークション等)で探す。

この方法の問題点は、「必ず見つかるわけではない」って事ですかね・・・

ANo1さん,ANo2さんの両名も書かれているように、

旧バージョンを入手する方法は、以下の3通りぐらいあります。

(方法1)
新バージョンを購入して、ダウングレードする。
(http://www.microsoft.com/japan/msdn/howtobuy/vs2005/downgrade/default.aspx)

この方法の問題点として、VB6のDiskKitがもう手に入らないので、「新規ライセンスの購入」ができない(購入してもインストールする手段が無い)事です。
(VB6を既に持っていて「ライセンス追加」なら有効ですが)
(http://www.microsoft...続きを読む

QVBの「As String * 128」とは?

VBの「As String * 128」とは?

Visual Basic 2010 Expressでコンソールアプリケーションを作成しています。

OSのヴァージョンを取得する機能を作成したかったので、

http://hanatyan.sakura.ne.jp/vbhlp/Version.htm

を参考にして、OSVERSIONINFOの構造体を定義しました。

しかし
szCSDVersion As String * 128

「* 128」
の部分で、ステートメントの終わりを指定してくださいとエラーが出ます。

「* 128」とは、いったいどういう意味ですか?

また、エラーを無くす方法はありますか?

いろいろ検索しましたが、調べ方が悪いのか、分かりませんでした。

よろしくお願いします。

Aベストアンサー

参考にされたサイトはVB6.0用のソースですね。
VB6.0とVB2010(=VB.NET)は色々な部分が変わってますので、VB.NET用のサンプルを見た方が良いと思います。

http://dobon.net/vb/dotnet/system/osversion.html

ちなみに一応、質問に答えると…

> 「* 128」とは、いったいどういう意味ですか?

VB6.0(VB2010の5世代前のバージョン?)で固定長文字列を表す定義です。
* 128と記述すると128文字以上の文字列を入れても自動的に128文字でカットされます。

> また、エラーを無くす方法はありますか?

VB2010(=VB.NET)では以下のように記述します。
<VBFixedStringAttribute(128)> Private szCSDVersion As String

Q日付型のフィールドに空白を入れる方法を教えてください

ASP(VBScript)でSQLサーバにINSET INTO文を使ってデータを格納しているのですが、日付の部分がNULLの時、「1900/1/1」が入ってしまいます。
そのまま、空白を入れる方法はどうやったらよろしいのでしょうか?

TABLE1の内容は
番号|内容|日付です。

INSERT INTO TABLE1 VALUES ( 1, 'あいう', '')

結果
1|あいう|1900/1/1

Aベストアンサー

あとは、プログラムの書き方次第ですね、、、


If hensu=Null Or hensu="" Then
dt = "NULL"
Else
dt = "'" & hensu & "'"
End IF

E_SQL = "INSERT INTO TABLE1 VALUES & _
"( 1,'あいう', " & dt& ")"
の様に書きます。

QVB.NETでのネットワーク参照

VB.NETを使用してファイルのコピーをしようと思っています。
そのソースはVB6で使用したソースをバージョンアップして使う予定です。

ファイルコピーをする際にSHFileOperationというAPIを使用していました。

.NETへ移行すると、実行時にエラーが帰ってきてしまいます。

VB6と.NETではAPIの宣言の仕方も異なるのでしょうか?
バージョンアップ後に追加されたメッセージで、'UPGRADE_WARNING: 構造体 SHFILEOPSTRUCT に、この Declare ステートメントの引数としてマーシャリング属性を渡す必要があります。 詳細については、'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1050"' をクリックしてください。
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
このように書き換わっていました。リンク先を見ても解決の糸口が見えません。
どなたかご指導お願いします。

VB.NETを使用してファイルのコピーをしようと思っています。
そのソースはVB6で使用したソースをバージョンアップして使う予定です。

ファイルコピーをする際にSHFileOperationというAPIを使用していました。

.NETへ移行すると、実行時にエラーが帰ってきてしまいます。

VB6と.NETではAPIの宣言の仕方も異なるのでしょうか?
バージョンアップ後に追加されたメッセージで、'UPGRADE_WARNING: 構造体 SHFILEOPSTRUCT に、この Declare ステートメントの引数としてマーシャリ...続きを読む

Aベストアンサー

以前試しに使ったコードです。参考にどうぞ。

Public Structure SHFILEOPSTRUCT
Dim hWnd As IntPtr 'Handle
Dim wfunc As Integer '&H2
Dim pform As IntPtr 'Marshal.StringToCoTaskMemAnsi(フォルダパス & "*.*")
Dim pto As IntPtr 'Marshal.StringToCoTaskMemAnsi(フォルダパス)
Dim fFlags As Integer
<MarshalAs(UnmanagedType.Bool)> Dim fAnyOperationAborted As Boolean
Dim hNamemappings As IntPtr
Dim lpszProgressTitle As IntPtr
End Structure

QVB6.0で作成したプロジェクトのVB.NETへのアップグレードでエラー発生

卒業研究でVBを使う予定です。
先輩の研究を引き継ぐことになっているのですが、VB.NETでプロジェクトを開くことができなくて困っています。

先輩が開発したのはVB6.0で、今研究室のパソコンに入っているのはVB.NETです。
VB.NETのアップグレードウィザードを使えばVB6.0のプロジェクトをVB.NETで編集できることまで調べたのですが、いざアップグレードしようとしたときに以下のようなエラーが出てしまいます。
・エラー文---------------------------------------
アップグレードに失敗しました:例外が発生しました:参照されたコンポーネント
Slider
Slider
Slider
Slider
Slider
Slider
に、デザイン時のライセンスがありません。
--------------------------------------------------
アップグレードできるようにするにはどうすればいいでしょうか?
よろしくおねがいします。

Aベストアンサー

Sliderコントロールが認識されていないようなので
VB.NET で新規プロジェクトを作成し、コンポーネント参照で
Sliderコントロールを参照可能に設定する。
その後、VB6.0の既存フォームモジュールをプロジェクトへ追加する。
以上

QVB6.0とVB2005の共存は可能か

会社のパソコンにVB6.0 SP6 Professionalが入っています。

今後のため、新たにみんなの学習のため、VB2005 Expressを入れたいんですが、

VB6.0とVB2005の共存は可能でしょうか。無理っぽい気がしないでもないんですけど

会社のパソコンだけに試してみるわけにはいかないんで、お願いします。

OSはXPです。

Aベストアンサー

可能です。
さらには、VB6とVB.NET2003とVB2005の共存も可能です。
ただし、VB.NET2003とVB2005はプロジェクトファイルの
ダブルクリックだけではどちらのプロジェクトか判別できないので
VisualStudioを起動してからプロジェクトを読み込む必要があります。

QVisualBasic6からVB2005に移行に難儀しています。

.NETが流行りだした時期にパソコンから遠ざかっていましたので、昔作成したVB6のアプリケーションをVB2005に書き直そうと大それたことを考えています。
VB6のソースをVB2005に自動的に書き直すVisualBasic アップグレードウィザードで変換しましたが、案の定、変換エラーだらけでした。

Public easy(5) As Boolean等はそのまま変換していますが、Typeでユーザー定義型を作成した配列は、
以下のようにVB6だけの知識では理解不能な書き換えや説明が付加されていました。

StructureはTypeの意味だとわかりますが、<VBFixedArray((10))>や
変数を初期化する必要があるなど、どのタイミングで初期化する
(追加記述しなければいけない部分が何なのか)わかりません。
また、ステートメントやメソッド?が異なる(アップグレード)されたとか
詳細についてクリックしてくださいとありますが、クリックしても無反応でした。

Structure AruKata
Dim num As Byte
<VBFixedArray((10))> Dim pos() As Byte 'char
'UPGRADE_TODO: この構造体のインスタンスを初期化するには、"Initialize" を呼び出さなければなりません。 ...
Public Sub Initialize()
ReDim pos(10)
End Sub
End Structure

'UPGRADE_WARNING: 配列 AruKata で各要素を初期化する必要があります。 詳細については...
Public difficult(8) As AruKata

このようにVB6からVB2005に移行するにあたって、よく説明している書籍など(あるのかな?)ありましたら教えてください。

.NETが流行りだした時期にパソコンから遠ざかっていましたので、昔作成したVB6のアプリケーションをVB2005に書き直そうと大それたことを考えています。
VB6のソースをVB2005に自動的に書き直すVisualBasic アップグレードウィザードで変換しましたが、案の定、変換エラーだらけでした。

Public easy(5) As Boolean等はそのまま変換していますが、Typeでユーザー定義型を作成した配列は、
以下のようにVB6だけの知識では理解不能な書き換えや説明が付加されていました。

StructureはTypeの意味だとわかりま...続きを読む

Aベストアンサー

VB6からVB2005への移行は、VBマイグレーションと呼ばれています。
マイクロソフトにもたくさん情報がありますし、書籍も出ています。
他の会社もサポート情報を出してたりします。
検索してもたくさん出てきますよ。

マイクロソフトのVBマイグレーションセンターを参考URLに入れておきますね。

参考URL:http://www.microsoft.com/japan/msdn/vbasic/migration/


人気Q&Aランキング