11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Visual Basic 2023年振り返り

Last updated at Posted at 2023-12-01

はじめに

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

Visual Basic自体は冬の時代であるため、どうしても暗めのニュースが目立つようになってしまいます、最初は明るいニュースから書いていきます。

2023年の出来事

twinBasic 2024年12月31日にVersion 1.0 リリース予定

【2024/10/16追記】
2024/09下旬にロードマップが変更されて、1st October 2024 → 31st December 2024 となりました。
【2024/07/06追記】
2024/07/05にロードマップが変更されて、1st July 2024 → 1st October 2024 となりました。
【2024/01/20追記】
2023/12/20にロードマップが変更されて、Tentative Release Date: 3rd January → 1st July 2024 となりました。

twinBASICはVisual Basic 6.0の100%互換性があることを目的とした最新のBASICコンパイラです。ネイティブコンパイラによる32bit/64bit実行プログラムを作成できます。
Visual Basic 6.0の100%互換性 twinBASICの紹介

ロードマップを見ると2024年12月31日にVersion 1.0 をリリースする予定になっています。

今年ではなく来年じゃないかというツッコミはおいておいて、順調に開発が進んでいることは素晴らしい。

もう一方の RAD Basic のロードマップではVer 0.5.93(2023/11/27)となっています。

Visual BasicのDiscord開設

Discord(ディスコード)とは. Discordは、アメリカ発のチャットサービスです。
2023年02月にDualBrain さんが、VB、クラシック、.NET のすべての言語向けにVB Discord サーバーをセットアップしました。もちろん、やりとりは英語となります。

OpenSilver 2.0がVB.NETをサポート

OpenSilverは、WebAssembry上で動くSilverlight となります。
Visual Basic コミュニティ向けに、XAML ベースの Web アプリ開発、またはレガシー アプリケーションの移行の可能性を提供するようになりました。

ModVB

ModVBは、VB.NET用の拡張コンパイラです。
Visual StudioにModVBのVSIX(Visual Studio Extension)を導入することで、拡張機能が使用できるようになります。
作者のAnthony D. Green は、Microsoft で主に Roslyn コンパイラ チームのプログラムマネージャーをしていました。ModVBの開発は予定していたより遅れていますが、前進しています。

バージョン 機能内容
Wave 1 JSON リテラルとパターン マッチングを中心に展開
Wave 2 XML リテラルの強化
Wave 3 不明 Wave 2 と Wave 4の中間の機能強化
Wave 4 Async ストーリー強化
Wave 5 LINQ のより深い統合

.NET 8.0 リリース

2023/11/14 に「.NET 8.0」 がリリースされました。.NET 8.0は、本番利用に耐える品質とサポートが約束された長期サポート版(LTS版)の.NETとなります。

VB.NETの言語としての進化自体はやめてしまっていますが、.NET 8.0の機能追加は使えるようになっています。

ExcelでWebスクレイピング(DevTools プロトコル対応)

筆者は、ExcelでWebスクレイピングをするのに、TinySeleniumVBA および SeleniumVBA(TinySeleniumVBA 機能強化版) をこれまで紹介してきました。
TinySeleniumVBA では、WebブラウザのバージョンアップがあるとSelenium WebDriverの更新が必要になります。これについては、yamato1413 さんが WebDriver 自動更新の別途モジュール(WebDriverManager-for-VBA)を提供しています。
ただ筆者は Mac版のExcel を使用しており、 TinySeleniumVBA こそ Mac に移植できたのですが、このWebDriver自動更新モジュールは使えないんですよね。

Playwright や Puppeteer のように DevTools プロトコル対応すれば、Selenium WebDriver 自体が不要となります。
誰かVBAでやってないかと検索してみると、昨年既に公開されてました。筆者が見つけたのが最近となりますので、今年の出来事として紹介します。

コメント欄で作者の方と相談して、製品名は製品の特徴である「何もインストールしない」を謳った「ZeroInstall BrowserDriver for VBA」、略して「ZeroInstallBDr」となりました。

これの使用方法など別途記事にしたいと思います。

【2023/12/21追記】

ExcelにPythonが導入

Microsoftは8月23日「Python in Excel」のパブリックプレビューを発表しました。ExcelでPythonが使えるようになって、これでVBAは御役御免になってしまうのかと思われましたが、蓋を開けてみるとPY関数を使用して主にデータ分析について使用するに留まっています。

VBScriptを非推奨とする方針

Microsoftは10月10日に、WindowsクライアントOSで「VBScript」を非推奨とする方針を明らかにしました。

これはOS標準では搭載せず、[Windows の機能の有効化または無効化]の機能選択画面で「.NET Framework 3.5」を選択させるのと同様に「Visual Basic Script」が追加されるということです。
VBScriptを作成して他の方に提供しても、OS標準では動かなくなります。

下記ブログにて、VBA 開発への影響として懸念点を挙げています。

VBA 開発への影響
これにより、VBA 開発者にとっていくつかの重要な疑問が生じます。次のような一般的に使用されるリファレンスの多くは VBScript に関連しており、危険にさらされる可能性があるためです。

Microsoft スクリプト ランタイム: scrrun.dll
Microsoft VBScript 正規表現 5.5 : vbscript.dll

  • FileSystemObject
  • Dictionaries
  • Regular Expressions

これらが使用できなくなると、相当影響が出てしまいます。Microsoft がどう判断するのか? そのまま残すことになるといいですね。

【2024/06/04追記】

The scope of VBScript deprecation includes only vbscript.dll and no other libraries. This shall not impact any projects that are not dependent on vbscript.dll.
VBScriptの非推奨範囲はvbscript.dllのみで、他のライブラリは含まれません。これは、vbscript.dll に依存していないプロジェクトには影響しません。

scrrun.dll内のFileSystemObjectとDictionariesは大丈夫ですが、vbscript.dll内の正規表現(Regular Expressions)は使用できなくなりそうですね。

最後に

今年は、OpenSilver 2.0がVB.NETをサポート と Visual BasicのDiscord 開設されたのが大きいですね。しかし、VBScript を非推奨にしてくるとは思ってなかった。まーセキュリティを考えたら仕方ないのかな。
Microsoft は BASIC で起業したようなものなんだから、もっと大切にして頂きたいもんです。

11
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?