Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Visual BasicからC#への変換について

はじめに

これは、Visual Basic Advent Calendar 2018の3日目の記事となります。

Visual Basic と C# の相互変換する方法について書いていきます。

VB6.0からVB.NETに変換

マイクロソフトは、旧VB製アプリケーションのVB.NETへの移行を容易にするアップグレードウィザードを、Visual Studio 2008までは実装しましたが、Visual Studio 2010 以降からは廃止しました。
よって、Visual Studio 2008 で変換したものを Visual Studio 2010 以降で変換するという二段階のアップグレードが必要になります。

Visual Studio 2008 Express Edition CD(DVD)イメージ版のダウンロードはまだ可能でした。
Visual Studio 2008 Express Edition with Service Pack 1 Combo DVD

ここ数年内でVB6からVB.NETへのマイグレーションされた方の記事がありました。

VB.NETとC#の相互変換

オンライン

ちょっとした関数の変換ならオンラインを使うのが手っ取り早いです。
オンラインで結果が返ってこないサイトがあるなかで、下記サイトは結果がすぐに返ってきました。

Telerik Code Converter
http://converter.telerik.com/

オフライン

SharpDevelop

SharpDeveloper Ver 5には変換機能がなくなりましたので、ダウンロードページからSharpDeveloper Ver4.4 をダウンロードしてください。
http://www.icsharpcode.net/OpenSource/SD/Download/Default.aspx

Visual Studio 2017で作成したものは、プロジェクトを開いた段階で下記のエラーになり正常に開けませんでした。

Error loading xxxxxx.vbproj:
The Tools version "15.0" is unrecognized.Available tools versions
are "12.0","14.0","2.0","3.5","4.0".
xxxxxx.vbproj

Visual Studio 2015のプロジェクトは開くことができました。
プロジェクトの右クリック→Convert→From VB.NET to C#
VB2CSharp.png

Language Convertプラグイン

Visual Studio 2015の変換プラグインになります。
https://marketplace.visualstudio.com/items?itemName=LuPaLaPaoloSalamone.LanguageConvert

dnSpy

オープンソースの.NET のデコンパイルツールです。
https://github.com/0xd4d/dnSpy
MSILのコードをVisual Basic(VB)、C#のどちらのかたちにも戻すことができます。

参照

最後に

Visual BasicからC#への変換する記事を見つけても情報が古いのが多いので、ここらへんで情報を改めてみました。
Visual Studio 2015までが変換の限度っぽいですね。

yaju
静岡県島田市在住ののシニアSE(元Microsoft MVP 2010-2012)がコンピューター、機械学習、Unity、数学について考える。
http://yaju3d.hatenablog.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away