「Visual Basic.NET」の「Windows Forms」でデスクトップゲーム「Color」を開発してみよう

第7回の今回は、プログラミング言語「Visual Basic.NET」の「Windows Forms」を使ってデスクトップゲーム「Color」を作る解説をします。

大西 武 (オオニシ タケシ)

6月24日 6:30

はじめに

この連載では、さまざまなプログラミング言語やライブラリで同じゲームを開発することで、容易にそのプログラミング言語に入門します。

第7回の今回はプログラミング言語「Visual Basic.NET」を使って、次のURLのようなColorゲームを作ります。こちらからアセットをダウンロードしておいてください。

前回の「C#」とほとんど1:1で書き換え可能ですが、Namespace(名前空間)を使っていないこと、最大のRGB要素を探すのにソート機能を使っていることが違いです。

Colorゲームについて

Colorゲームの内容は第1回でも解説した通り、ゲームを開始したら、赤緑青の色ブロックをクリックします。すると背景色にその色が混ぜられるので、どんどんクリックして真っ白な背景にしていこうというゲームです。

プログラミング言語について

プログラミング言語「Visual Basic」はMicrosoftが開発したWindowsデスクトップアプリ(Visual Basic.NET、Visual Basic 6)、Webアプリ(ASP.NET)、Excelマクロ(Visual Basic for Applications)向けの言語です。文法が読みやすい、GUIアプリを作りやすい、初学者向けの教材が多いという特徴があります。

Windows Formsについて

「Windows Forms」は「WinForms」とも呼ばれ、「.NET」を使ってUIパーツなどのGUIを構築できるデスクトップアプリを開発できます。

開発のために必要となる環境の準備

今回必要となる、無料版の「Visual Studio 2026」(以下、VS2026)を準備します。次のURLからVisual StudioインストーラーをダウンロードしてVS2026のC#をインストールしてください。

プロジェクトを作成しよう

VS2026を起動したら「Create a new project」をクリックし、コンボボックスで「Visual Basic」と「Windows」を選び「Windows Forms App」をダブルクリックします。

「Project name」を「colorVBForms」とタイプして「Next」ボタンをクリックし、「Framework」を最新のものを選んで「Create」ボタンをクリックしてプロジェクトを新規作成します。

次の階層図のように「images」フォルダを「colorVBForms」フォルダに配置します。今回もサウンドなしです。

・階層図

colorVBFormsフォルダ
┠Dependenciesフォルダ(関連ファイルフォルダ)
┠imagesフォルダ(画像フォルダ)
┃┠0.pngファイル(赤の色ブロック画像)
┃┠1.pngファイル(緑の色ブロック画像)
┃┠2.pngファイル(青の色ブロック画像)
┃┠GameOver.pngファイル(ゲームオーバー画像)
┃┠StageClear.pngファイル(ステージクリア画像)
┃┗Title.pngファイル(タイトル画像)
┠Forms1.vbファイル(メインフォルダ)
┃┠Forms1ファイル(Forms1.vbファイル)
┃┠Forms1.Designer.vbファイル(デザインファイル)
┃┗Form1.resx(リソースファイル)
┠Program.vbファイル(プログラムファイル)
┗Sprite.vbファイル(色ブロックファイル)

次のサンプルコードをコーディングし、「Debug」→「Start Debugging」メニューを実行します。すると真っ白なウィンドウだけ表示されます(図1)。まだテンプレートからウィンドウタイトルを変更し、大きなウィンドウサイズに変更しただけです。

・サンプルコード「Form1.Designer.vb」ファイル

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()>
    Protected Overrides Sub Dispose(disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()>
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        AutoScaleMode = AutoScaleMode.Font
        ClientSize = New Size(1800, 900)
        Text = "Color"
    End Sub

End Class

【サンプルコードの解説】
「Dispose」メソッドはコンポーネント(構成要素)を処分します。
「InitializeComponent」メソッドはUIパーツなどのコンポーネントを初期化します。

図1:真っ白なウィンドウを表示
【コラム】スローライフ

実家の会社が廃業したら、今後も出版社のWeb記事を書くライターが本業になります。でも主な収入源は株式投資です(負けることもありますが…)。趣味でクリエイティブなことをして「まっ、スローライフな人生でもいっか」と、今まで通りなんですけど…。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30