このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【6日でできるVisual Basic2022入門】④今日の運勢アプリ:リソースの追加

④今日の運勢アプリ:リソースの追加

 本章では、占い結果の画像(Title/大吉/中吉/小吉/吉/凶)をプロジェクトのリソースに登録し、フォームから安全に参照できる状態を整えます。
 Windows「ペイント」で作成したPNGを FormUranai.resx に追加する手順を解説します。また、起動時は PictureBox にTitleの画像を 初期表示し、SizeMode=StretchImage と併用して見栄えも最適化します。

4.今日の運勢アプリ:リソースの追加

4.1. この章のゴール

  • 結果画像(タイトル/大吉/中吉/小吉/吉/凶)の6点をプロジェクト リソースとして登録する。
  • 画像ファイルの取り込み方法の習得
  • フォーム起動時にタイトル画像を表示する最小コードを追加

4.2. リソースの基礎(VB 2022)

用語概要VBからの参照方法
FormUranai.resx画像・音・文字列等を束ねる定義ファイルGetObject
アセンブリ リソース実行ファイルに埋め込まれるバイナリ配布が容易・パス不要
リソース名英数字と _ を推奨(日本語や空白は非推奨)例:Daikichi, Title

4.3. 画像仕様とファイル名の決め方

種類リソース名推奨サイズ備考
タイトルTitle256×100px起動時の初期表示
大吉Daikichi256×100px暖色系の明るい配色
中吉Chukichi256×100px黄緑など前向きカラー
小吉Shokichi256×100px青系で落ち着き
Kichi256×100pxスチールブルーなど
Kyo256×100px紺〜深紅などコントラスト

メモ:透明背景や容量削減を重視するなら PNG 推奨。Windows「ペイント」の新規作成は既定で BMP ですが、 PNG を指定して保存することができます。

4.4. 画像を用意する:Windows「ペイント」で作成

  • 「ペイント」を起動 → キャンバスサイズを256×100に設定
  • 文字ツールで結果名を描き、色や簡単な模様を加える。
  • Title.png, Daikichi.png, … のようにPNGで保存

素材のダウンロード

以下のリンクから使用する素材をダウンロードできます。

Title.pngDaikichi.pngChukichi.pngShokichi.pngKichi.pngKyo.png

4.5. リソースを追加する

1.ソリューション エクスプローラーで「FormUranai.resx」をダブルクリックします。

2.「+」アイコンをクリックして、リソースを追加します。

3.「名前」に「Title」と入力、タイプに「Image」を値には「Title.png」を選択して「追加」ボタンをクリックします。

「Title.png」がリソースに追加されます。

4.残りの画像もリソースに追加します。

一覧に Title, Daikichi … が追加されていればOK

5.ソリューションエクスプローラを確認します。

Resourcesに画像が登録されていることが確認できます。

4.6. 初期表示にタイトル画像を出す最小コード

デザイナ設定だけでは画像は空のまま。フォーム読み込み時にタイトル画像をセットします。

Public Class FormUranai
    Dim rm As New ComponentResourceManager(GetType(FormUranai))
    Dim Title As Image = CType(rm.GetObject("Title"), Image)
    Dim Daikichi As Image = CType(rm.GetObject("Daikichi"), Image)
    Dim Chukichi As Image = CType(rm.GetObject("Chukichi"), Image)
    Dim Shokichi As Image = CType(rm.GetObject("Shokichi"), Image)
    Dim Kichi As Image = CType(rm.GetObject("Kichi"), Image)
    Dim Kyo As Image = CType(rm.GetObject("Kyo"), Image)

    Private Sub FormUranai_Load(sender As Object, e As EventArgs) _
        Handles MyBase.Load
        ' 初期ガイダンス
        TextResult.Text = "[占う]を押すと、今日の運勢が表示されます。"
        TextResult.ForeColor = SystemColors.ControlText
        ' タイトル画像(リソース)を表示
        PictureBoxResult.Image = Title
    End Sub
End Class

4.7. 占い結果に画像を割り当てる(コード雛形)

 次章の本実装で使う割当関数の雛形です。ここでは画像だけ扱います(メッセージ色や文は前章の配列で)。

Private Function GetResultImage(key As Integer) As Image
    Select Case key
        Case 0 : Return Daikichi
        Case 1 : Return Chukichi
        Case 2 : Return Shokichi
        Case 3 : Return Kichi
        Case 4 : Return Kyo
        Case Else : Title
    End Select
End Function

4.8. よくあるつまずきと対処

症状原因対処
GetObjectで参照できないリソース名の綴り・大文字小文字不一致FormUranai.res.x 画面で実際の名前を確認、コード側を修正
画像サイズが小さいSizeMode=StretchImage で引き伸ばしStretchImage に変更、元画像を引き伸ばす
画像が表示されないリソースに未追加または Image=NoneFormUranai.res.x に追加し、PictureBox.Image = Name を設定
EXE が大きいBMP で登録し過ぎPNG で再登録、不要画像は削除

4.9. VB 2022 の関連要素解説

要素概要使いどころ
Image クラス画像の基底型PictureBox の Image プロパティに代入
PictureBox.SizeModeStretchImageで拡縮画像をPictureBox のサイズに合わせる
FormUranai.resxリソース定義画像の追加・削除・改名

4.10. 動作確認チェックリスト

  • Resources 一覧に Title/Daikichi/Chukichi/Shokichi/Kichi/Kyo がある
  • 実行すると起動時にタイトル画像が表示される
  • 画像を切り替えるテストで PictureBoxResult.Image = Daikichi が即時反映
  • 画像が潰れず、縦横比が保たれている(SizeMode=StretchImage

まとめ

 本章では、占い結果に使う画像を FormUranai.resx に登録し、参照する準備を整えました。初期表示にタイトル画像を出す最小コードも追加しました。次章「⑤今日の運勢アプリ:コードの実装と実行」では、Select CaseRandom を用いて画像・色・メッセージを切り替え、完成版として動作させます。