VB.NETのサポート終了にどう備える?期限が来るのは.NET FrameworkとVisual Studio|確認手順と3つの選択肢【2026年版】
VB.NETという言語そのものに、サポート終了日は設定されていません。 期限が来るのは、VB.NETのアプリを動かしている実行基盤(.NET Frameworkや.NETのバージョン)、開発に使うVisual Studio、そしてアプリを載せているWindowsです。
「VB.NETのサポートが終わるらしい」という話を聞いて調べ始めた方は、まず自社のアプリがどの実行基盤で動いているかを確かめてください。同じVB.NETでも、.NET Framework 4.8で動くアプリと.NET 8で動くアプリでは、期限が数年単位で違います。
本記事では、Microsoftが示しているVB.NETの今後の方針を一次情報で整理したうえで、実行基盤の確認手順、基盤ごとのサポート期限、そして「このまま使い続ける」「VBのまま新しい.NETへ移す」「C#へ書き換える」の3つの選択肢と判断基準を解説します。
目次
想定読者
本記事は、次のような方を想定しています。
- VB.NETで作られた業務システムを保守している情報システム部門の担当者
- 「VB.NETはサポート終了」と聞き、いつまでに何をすればよいか判断したい方
- 保守ベンダーから移行を提案され、その妥当性を確かめたい方
- VB.NETの開発者が社内から減り、今後の体制に不安がある方
VB.NETのサポート終了日は決まっていない|期限が来るのは実行基盤
VB.NETのアプリは、それ単体では動きません。コンパイルされたプログラムは.NET Frameworkまたは.NET(旧称.NET Core)の上で実行されます。Microsoftがセキュリティ更新を止めるのは、この実行基盤のバージョン単位です。
そのため「VB.NETのサポート終了」と言われているものの正体は、次のいずれかです。
- アプリが使っている.NET Framework・.NETのバージョンのサポート終了
- 開発に使っているVisual Studioのサポート終了
- アプリを動かしているWindows・Windows Serverのサポート終了
Microsoftの方針:VB.NETは「安定」路線で、新機能は追加しない
言語として終わっていないとはいえ、手放しで安心はできません。Microsoftは2020年3月の公式ブログで「今後、Visual Basicを言語として進化させる予定はない」と表明しました。現在のMicrosoft Learnの「Visual Basic language strategy」には、次の方針が書かれています。
- Visual Basicは安定した設計の言語であり続ける
- C#や.NETランタイムの新機能に構文の追加が必要な場合、Visual Basicは原則として「使う側」に徹し、新しい構文は追加しない
- Visual Basicを新しいワークロードには広げない(Webのフロントエンドやクロスプラットフォームのデスクトップ向けUIへの対応は見込みが低い)
- Visual StudioでのVB開発体験と、C#との相互運用、特にWindows Formsとライブラリへの投資は続ける
つまり、Windows Formsの業務アプリやクラスライブラリは今後もVBで保守できます。一方で、Webやスマートフォン対応など新しい用途に広げたいときに、VBでは選べる技術が限られます。
VB6・VBScriptとは別物
「Visual Basic」の名前がつく技術は複数あり、話が混ざりがちです。Visual Basic 6.0(VB6)は.NET以前の別製品で、開発環境のサポートはすでに終わっています。VBScriptもWindowsのスクリプト機能で、VB.NETとは関係がありません。お使いのシステムがVB6で作られている場合は、移行の考え方が大きく変わります。
自社のVB.NETアプリがどの実行基盤で動いているか確認する
期限を調べる前に、手元のアプリの実行基盤を特定します。確認は30分もあれば終わります。
プロジェクトファイル(.vbproj)で確認する
ソースコードがある場合は、拡張子 .vbproj のファイルをテキストエディタで開きます。.NET Frameworkのアプリなら、次のような行があります。
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
新しい.NETのアプリなら、次の形式です。
<TargetFramework>net8.0-windows</TargetFramework>
v4.x と書かれていれば.NET Framework、net8.0 や net10.0 と書かれていれば新しい.NETです。プロジェクトが複数ある場合は、すべて確認してください。共通ライブラリだけ古いバージョンを指定している例はよくあります。
ソースコードが手元にない場合
ソースを外部ベンダーが持っている、または所在が分からない場合は、実行ファイルと同じフォルダにある設定ファイル(アプリ名.exe.config)の supportedRuntime の記述や、保守ベンダーへの問い合わせで確認します。ソースの所在が分からないこと自体が、移行を考えるうえでの大きな課題になります。
開発環境とサーバーのOSも控える
あわせて、次の2点も一覧にしておきます。
- 開発・ビルドに使っているVisual Studioのバージョン(2017・2019・2022など)
- アプリを動かしているPCやサーバーのOS(Windows 10・Windows Server 2016など)
この3点(実行基盤・Visual Studio・OS)がそろえば、どの期限が先に来るかを判断できます。
実行基盤ごとのサポート期限
主な実行基盤のサポート期限を、Microsoftの公式ライフサイクル情報から抜き出しました(日付は米国太平洋時間)。
| 実行基盤 | サポート期限 |
|---|---|
| .NET Framework 4.8.1 / 4.8 / 4.7.x | 固定の終了日なし。インストール先のWindowsのサポート期間に連動 |
| .NET Framework 4.6.2 | 2027年1月12日 |
| .NET Framework 4.5.2 / 4.6 / 4.6.1 | 2022年4月26日に終了済み |
| .NET Framework 4.0 / 4.5 / 4.5.1 | 2016年1月12日に終了済み |
| .NET Framework 3.5 SP1 | 2029年1月9日 |
| .NET 8 / .NET 9 | 2026年11月10日 |
| .NET 10(LTS) | 2028年11月14日 |
出典:Microsoft Learn「Microsoft .NET Framework – Microsoft Lifecycle」、.NET「.NET and .NET Core official support policy」
.NET Framework 4.8系には終了日がありませんが、無期限に使えるわけでもありません。たとえばWindows Server 2016の上で動かしている場合、OSの延長サポートが終わる2027年1月12日に.NET Framework 4.8のサポートも終わります。
開発環境のVisual Studioにも期限がある
| Visual Studio | 延長サポート終了日 |
|---|---|
| Visual Studio 2017 | 2027年4月13日 |
| Visual Studio 2019 | 2029年4月10日 |
| Visual Studio 2022 | 2032年1月13日 |
古いVisual Studioでしかビルドできないプロジェクトは、開発用PCの入れ替えやOS更新のタイミングで作業が止まりがちです。ビルド環境が特定の1台に依存していないかも確認してください。
.NET 8・.NET 9の期限と、.NET 10への移行手順は別の記事で詳しく解説しています。
VB.NETアプリの今後の3つの選択肢
実行基盤を確認できたら、今後の方針を決めます。選択肢は大きく3つです。
.NET Framework 4.8.xにそろえて使い続ける
4.6.2以前を使っているアプリを4.8または4.8.1に上げ、サポートの続くWindowsで動かす方法です。.NET Framework 4.6.2以降は既存の4.x系と互換性のある上書き更新で、Microsoftは「多くの場合、再コンパイルは不要」と説明しています。
もっとも手間が少なく、Web Forms(ASP.NETの旧来の画面技術)のように新しい.NETへ移せない技術を使っている場合の現実的な選択肢です。ただし、.NET Frameworkには今後大きな機能追加がないため、時間を稼ぐ方法と考えてください。
VBのまま新しい.NET(.NET 10)へ移行する
言語はVBのまま、実行基盤だけを.NET 10に移す方法です。.NET 5以降、VBはクラスライブラリ・コンソール・Windows Forms・WPFなどに対応しており、Windows Formsの業務アプリであれば、画面や業務ロジックの多くを書き直さずに移せる可能性があります。
既存のVB開発者がそのまま保守を続けられる点が利点です。.NET 10はLTS版で、2028年11月14日までサポートされます。
C#へ書き換える
VBのコードをC#に変換し、新しい.NETへ移す方法です。工数は3つの中で最大ですが、Webアプリ化やクラウド対応など、今後の拡張で選べる技術が広がります。C#は.NETでもっとも利用者の多い言語で、開発者を確保しやすい点も見逃せません。
どれを選ぶかの判断基準
| 判断の観点 | 4.8.xで継続 | VBのまま.NET 10 | C#へ書き換え |
|---|---|---|---|
| 想定する利用期間 | 2〜3年以内に刷新予定 | 5年以上使う | 5年以上使い、機能も広げる |
| 主な画面技術 | Web Forms・WF等を多用 | Windows Forms・WPF | Web化・クラウド化したい |
| 社内のVB開発者 | いる | いる | 減っている・いない |
| 移行にかけられる工数 | 小 | 中 | 大 |
迷ったときは、「このシステムをあと何年使うか」から決めると整理しやすくなります。数年で業務パッケージやクラウドサービスに置き換える予定なら、4.8.xで延命し、その間に刷新を進めます。10年使う基幹系なら、VBのまま移すかC#化するかを、開発者の確保と合わせて検討します。
VB.NETのシステムをどう扱うか迷っている場合は、c3index にお気軽にご相談ください。現状の棚卸しから一緒に進めます。
VBのまま新しい.NETへ移すときに見落としやすい点
「言語はそのままだから簡単に移せる」と考えると、思わぬところで工数が膨らみます。事前に確認しておきたい点をまとめます。
Web Formsは新しい.NETに移植されない
ASP.NET Web Formsで作られたWebアプリは、.NET(.NET Core系)に移植されないことをMicrosoftが明言しています。新しい.NETでWeb画面を作るにはASP.NET CoreやBlazorを使いますが、.NET SDKに含まれるWeb系のプロジェクトテンプレートはC#(一部F#)向けで、VB向けはありません。Web Formsのアプリを新しい.NETへ移す場合、画面部分は作り直しになり、事実上C#化と同じ規模の作業になります。
新しい.NETで使えない.NET Frameworkの機能がある
.NET Remoting、Windows Workflow Foundation(WF)、AppDomainの新規作成などは、.NET 6以降では使えません。古い業務システムほどこれらを使っている可能性があるため、コード調査の段階で洗い出します。
移行支援ツールはVBへの対応が手薄
Microsoftは.NET Frameworkからの移行ツールとして、Visual Studioに組み込まれた「GitHub Copilot modernization」を推奨しています。ところがMicrosoft Learnの手順書には、このツールは「VB.NETのプロジェクトを完全にはサポートしていない」と明記されています。VBのプロジェクトには、従来の「.NET Upgrade Assistant」(VB対応だが公式には非推奨化済み)か、通常のCopilotを使いながら手作業で移す方法が案内されています。
手作業の工程も残ります。.NET FrameworkのVB版Windows Formsアプリでよく使われる設定ファイル(System.Configuration)や、My.Computer・My.UserなどのMy拡張は.NETでの扱いが変わるため、個別に修正が必要です。C#のプロジェクトと比べ、ツール任せにできる範囲が狭いと見込んで計画を立ててください。
開発環境も更新が必要
.NET 10を対象にした開発は、Visual Studio 18.0(Visual Studio 2026)以降でのみ正式にサポートされます。古いVisual Studioのまま作業すると、ビルドは通っても公式サポート外の状態になります。
VB開発者の確保
技術面より深刻になりやすいのが人の問題です。VBは新機能が追加されないため、新しく学ぶ若手エンジニアは多くありません。現在の担当者が異動・退職したときに引き継げる人がいるかを、移行方針を決める前に確認してください。
移行の進め方と費用の考え方
どの選択肢を選ぶ場合も、進め方の骨格は共通です。
- 棚卸し:対象アプリ・プロジェクト数・実行基盤・Visual Studio・OSを一覧にする
- コード調査:Web Forms・Remoting・WF・My拡張・外部ライブラリなど、移行の障害になる要素を洗い出す
- 方針決定:アプリごとに「4.8.xで継続」「VBのまま.NET 10」「C#化」「廃止・置き換え」を決める
- 移行とテスト:画面・帳票・外部連携を含めて現行と同じ動きになるかを確かめる
- 本番切り替え:利用部門の業務カレンダーに合わせて切り替える
費用は、コードの行数よりも「移せない技術がどれだけ含まれるか」と「テストにどれだけ手間がかかるか」で大きく変わります。Windows Formsだけで構成された社内ツールと、Web Formsで作られ外部システムと多数連携する基幹系では、同じVB.NETでも見積もりの桁が変わります。複数ベンダーの見積もりを比べるときは、移行作業の内訳に加えて、移行後の保守費がどう変わるかも並べて見てください。
外部ベンダーに相談したほうがよいケース
次のいずれかに当てはまる場合は、社内だけで判断せず、外部の専門ベンダーに現状調査を依頼すると判断が早くなります。
- ソースコードの所在や最新版が分からない
- 開発した会社がすでに保守から撤退している、または連絡が取りにくい
- Web Formsや外部ライブラリを多用しており、移行の可否が判断できない
- 社内にVB.NETを読める担当者がいない
- 2027年1月のWindows Server 2016・.NET Framework 4.6.2の期限までに方針を決めたい
現在の保守ベンダーに移行を断られた、または見積もりが妥当か判断できない場合は、保守ベンダーの切り替えも選択肢になります。
よくある質問
Q. VB.NETで作ったアプリは、いつか動かなくなりますか?
A. 言語の終了日が理由で動かなくなることはありません。実行基盤のサポートが終わってもアプリは動き続けますが、脆弱性が見つかっても修正されない状態になります。社外とつながるシステムや個人情報を扱うシステムは、実行基盤の期限内に対応してください。
Q. Visual Studioの最新版でVB.NETの開発はできますか?
A. できます。MicrosoftはVisual StudioでのVB開発体験への投資を続けると明言しており、Windows Forms・WPF・クラスライブラリ・コンソールアプリのVBプロジェクトを新しい.NETで作成できます。
Q. .NET Framework 4.8で動いているアプリは、すぐに移行が必要ですか?
A. サポートの続くWindowsで動いていれば、すぐに対応が必要な状況ではありません。ただし、Windows Server 2016で動かしている場合は2027年1月12日にOSとともにサポートが終わるため、OS更新の計画と合わせて検討してください。
Q. VBからC#へは自動変換できますか?
A. 変換ツールを使えば構文の多くは機械的に置き換えられます。ただし、VB特有の機能や暗黙の型変換の違いがあるため、変換後のレビューとテストは必ず必要です。変換作業より、現行と同じ動きを確かめるテストのほうに工数がかかります。
まとめ
本記事のポイントをまとめます。
- VB.NETという言語自体にサポート終了日はなく、期限が来るのは.NET Framework・.NETのバージョン、Visual Studio、Windowsの3つ
- MicrosoftはVBを「安定」路線とし、新しい構文や新しいワークロードへの対応は追加しない方針
- まず.vbprojで実行基盤を確認し、Visual StudioとOSのバージョンも一覧にする
- 直近の期限は.NET 8・9の2026年11月10日、.NET Framework 4.6.2とWindows Server 2016の2027年1月12日
- 今後の選択肢は「4.8.xで継続」「VBのまま.NET 10へ移行」「C#へ書き換え」の3つ。利用年数・画面技術・開発者の確保で選ぶ
期限が近いものから順に、アプリごとの方針を決めていきましょう。
VB.NETシステムの移行・保守のご相談はc3indexへ
c3index は、業務システムの開発・保守と、レガシーシステムの移行を手がけるシステム会社です。VB.NETで作られたシステムの棚卸し、実行基盤の更新、C#への書き換え、保守の引き継ぎまで対応します。 まずはお気軽にお問い合わせください。