• 締切済み

VB6からVB.NETへの移行

VB6で作ったプログラムをVB.NETへ移行したいのですが、 参考書で体系的に学んだほうがよいのでしょうか? それとも、分からなくなったら、ネットで調べているその場その場で解決している方法がよいのでしょうか? 時間的な余裕は比較的あります。 書籍やネットでお勧めを押してください。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> 時間的な余裕は比較的あります。 とはいえ、他の言語に手を出す余裕まであるのかは。。。 #1 さんの言うことも一理ありますが、それは複数の言語をできたほうが より深くまで理解できるとかそういうレベルの話だと思います。 例えば、オブジェクト指向を挙げて Java を勧めておられますが、 メモリの使用、リソースの管理とかなら私は C を勧めます。 VB.NET になってから、Graphics クラスなどを扱うには、そういった 知識も有効だと思います。 が、そこまでいくと流石に時間が足りないと思われるので、VB.NET を体系的に学ぶことをお勧めします。分からなくなってから調べる のでは、対象が Tips レベルに限定され、全体を通じての設計思想 には辿り着かないでしょう。 Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド http://msdn.microsoft.com/ja-jp/library/dd314356 @IT オブジェクト指向入門 http://www.atmarkit.co.jp/channel/oo/oo.html DOBON.NET > .NET Tips http://dobon.net/vb/dotnet/index.html C# と VB.NET のサンプル(※VB6、Java もあり) http://jeanne.wankuma.com/tips/

回答No.1

こんばんは。 .NET Framework のうえで動く言語、VB.NET や C# は Java に似ていると考えてよいです。 .NET Framework の クラスライブラリは、Java に似た言語仕様のうえで、クラスライブラリが構成されています。(ここらへんの経緯はいろいろ検索してみてください。) そのなかでも、VB.NET は Visual Basic 6 からのスムーズな移行を目指したもので、Microsoft.VisualBasic 名前空間に、いくつかのメソッドは残されています。(Mid とか Format とかですね。Left も Right も Space もありますが、残念ながら Open はもうないです。) Visual Basic 6 の考え方で、VB.NET のコーディングをしていっても悪くはないですが、VB.NET はついに継承を手に入れた純粋なオブジェクト志向言語になっているので、どこかで、Visual Basic 6 の考え方だけではついていけなくなるところが、少なからず出てきます。 その、少なからず出てくるところまで、Visual Basic 6 の考え方を通して、わからなくなったら、VB.NET や .NET Framework の本来のコーディングを学べばよいです。それが、VB.NET の位置づけのひとつであって、そのあと、C# に行ってもいいですし、Java に行ってもよいし、VB.NET のままでもなにも問題はありません。 遠回りに思うかもしれませんが、Java のコーディングを学ぶのが、一番早いような気がしますね。    

関連するQ&A

  • VB6.0からVB.NETへの移行について

    現在、VB6.0で作られているシステムをVB.NETへ移行しようとしています。 そこでAcvtiveX EXEのGlobalMutiUseで作成されている画面を持つプロジェクトを移行する方法に困っています。 現状は、上記の画面が最初に起動されたら常駐して、定期的にサーバから情報を取得して内容を更新して、他の別プロジェクトの画面からその情報を取得して動いているような仕組みとなっています。 それを移行ガイドの通りクラスライブラリで作成して、他の別プロジェクトの画面から情報を取得しにいこうとすると新たに別のインスタンスが作成されて、それを見にいってしまうため情報が取得できません。 VB6.0のAcvtiveX EXEのGlobalMutiUseのように共有のインスタンスを他から見れるようにするにはどうしたらよいでしょうか?なるべく変更を少なくしたいと思っています。 よい解決策をご存知の方がおられましたら是非御教授をお願いいたします。

  • VBAからVB.NET 又は VB2005へ移行

    VBAからVB.NET 又は VB2005へ移行を考えているいるのですが、どちらに移行しようか悩んでいます。プログラムはVBAしか接した事がないのですが、どちらの方がスムーズに移行が可能か教えてください。

  • VB.NETについて教えてください

    VB.NETを勉強しています。 まず、VB.NETの.NETは.NETFrameworkのことを指しているのでしょうか? UDPプロトコルを用いた簡単なメッセンジャーソフトを作ろうとしているのですが、大き目の書店で探してもVB.NETでそれを実現するのに必要な記載がある書籍が見つかりません。 VB.NETおすすめの通信に関する書籍がありましたら教えてください。

  • VB6からの移行したいけど、VB.NETのコントロール配列は?

    VB6ではフォーム上にボタンコントロールとかを配列で作成できクリックされた時にはボタンイベントのインデックス値によってどのボタンを押されたが判断できて各処理を記述できていましたが、VB.NETでは同じようにはできないようです。オブジェクト指向的?にはこちらがいいのでしょうが、どうも面倒くさくなったなぁというイメージしかわかず、なぜこの方がいいのかという納得いく書籍とかも見つけることができていません。 どなたか、ご教授頂きたいのですがよろしくお願いします。参考になる書籍やWEBとかもありましたらお教えいただければ幸いです。

  • VB6.0からVB.NETへの移行

    VB6.0から.NETへの移行を行うこととなりましたが、C++で作成したDLL呼び出し方法がわからず悩んでいます。 C++側で作成したDLLは修正が出来ない為、.NET側のみで修正しなければならない状況です。 VB6.0側のプログラムは以下のような感じです。 Public FName() As String Declare Function A Lib "Test.dll" (ByRef field As Variant) As Long ReDim FName(4) As String FName(1) = "1" FName(2) = "22" FName(3) = "333" FName(4) = "4444" Call A(fieldName) C++側は、以下の形で受けているようです。 A(variant *field); SAFEARRAY *psa = *(field->pparray); VB.NET側で以下の様にしてみたのですが、まともに動いてくれません。 Public FName() As String Declare Function A Lib "Test.dll" (ByRef field As Object) As Integer ReDim FName(3) As String FName(0) = "1" FName(1) = "22" FName(2) = "333" FName(3) = "4444" Call A(FName) VB.NETに詳しい方であれば、すごく基本的なことなのではないかと思いますが、よろしくお願いいたします。

  • 【助けて】 VB2005とVB.NETについて

    すみません。。。 VB.NETを勉強しなくてはいけない状態になりました。 そこで、本屋にVB.NETの本を探しに行きました。 VB2005の本を見てみるとVisualStudioを使用している用 なのですが、VB2005とVB.NETはどう異なっているのでしょうか? 全く同じものではないということは、 なんとなく解っているのですが、ド素人なので簡単に教えて下さい。 また、VB.NETでお勧めの本があれば教えて下さい。 ASP.NETは使用した事があるのでVisualStudioの基本的な操作は 解りますが、プログラムについてはド素人です。 親切な方、どうぞ宜しくお願いします。

  • VB6.0とVB.NETの違い

    学校の実習での復習で分からないところがありまして 文献を調べたのですが、解決しなかったので教えてください。 最近VB.NETを使う機会が多くなりまして、VB6.0との違いについて悩んでおります。 かつて、VB6.0で基礎的な参考書にデータコントロールを使用してのデータベース(エクセルを用いての)を作成したことがあったのですが、VB.NETにしてからは、同じ方法でのアプリケーションの作り方(データコントロールとエクセルを使っての方法)がわからなくなってしまいました。 どなたか、教えてください。おねがいします。

  • VB.NetのプログラムでVB6.0のプログラムを

    お世話になります。 VB.Net で作成したプログラムAがあります。 VB6.0で作成したプログラムBがあります。 プログラムBはずっとイベント待ちの状態になっております。 AのプログラムからBのプログラムにイベントを発生させたいのですが、BのプログラムにActiveXコントロールを貼り付けるとか、何かしらの方法はあるでしょうか? 比較的簡単な方法でそのような事が出来る例などご紹介いただけますようよろしくお願い致します。

  • VB6.0からVB.NETへ移行する利点

    VB6.0は何年か開発してきたのですが、VB.NETは開発経験はほとんどなく、ネットなどで見聞きした程度しか知識はありません。 現在、人事の社内システムがあるのですが、そのシステムがその部長さんが趣味がプログラミングで、それが高じて何年もご自分でVB6.0で開発したものをずっと使っているんです。確かに、色々勉強して作ってあるだけあって、すごいんですが、社内開発でその部長さんしかシステムの仕様を知らないということが問題になってきて、外部に発注して新たにシステムを開発してもらうか、私が所属している情報システム部で開発する、ということになりました。 私としては、VB.NETで開発をしようと思ったんですが、その人事の部長さん(趣味:プログラミング)から「.NETだと遅いからよくない。」とか言われてしまいました。 私からすると、その部長さんが自分がVB6.0でしか開発したことがなくて、VB.NETだと自分がかかわれなくなるのがいやなのかなぁ。と思ってしまっています。 VB6.0はもう販売も中止されていて、今後開発しようにも、社内にはライセンスが2つしかなく、規模的にも2つじゃ足りないし、その点を進言したのですが、「使うのはうちの部署だから、今より遅いのは嫌だ」と言われてしまいました。 なんとか部長を説得したいのですが、毎月山のように雑誌や書籍を買いあさり、相当勉強もしているみたいなので、私にはとても説得できる材料がありません。 私もVB6.0で進めていった方がいいのかなぁ、と悩み始めています。 やはりVB6.0の方がいいんでしょうか? 色々アドバイスいただけると幸いです。

  • VB.NETについて

     6,7年前になりますが、コンピュータ会社でプログラマーをしていました。当時は主にVBやACCESSのVBAでプログラムを組んでいました。  最近、フリーターをしていて遠ざかっていますが、パソコンに関して興味が湧き、また勉強してプログラムを組めるようになりたいなぁと思っています。  将来的にはシステムエンジニアの道も考えていますが、現時点では趣味程度と考えています。そこで、近頃はVB.NETというのをよく見かけるのですが、VBの進化版と思っていいのでしょうか。  過去の経験はかなり忘れていますし、プログラムの一部分くらいしかやっていなかったので、その上で自分だけで全体把握できるような説明をお願いしたいです。  良い書籍やHPがあれば紹介してほしいです。もちろん自分でも検索してみましたが、多少プログラムの解説がしてあるくらいで、VB.NETを利用(使用)する環境がよく分からないです。  抽象的な質問ですが、随時補足はしますのでお願いします。

専門家に質問してみよう