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

【6日でできるVisual Basic2022入門】①今日の運勢アプリの概要

①今日の運勢アプリの概要

 本章では、Visual Basic 2022(VB/.NET)と Windows フォームで「今日の運勢」アプリの全体像を掴みます。日付入力はDateTimePickerで簡潔に、結果はPictureBoxの画像+テキストで表示。分岐ロジックはSelect Caseを用い、結果文は複数候補から選択、さらに結果に応じてテキスト色を変えます。
ここではUI構成、使用コントロール、VB命令の要点、最小サンプル、実行イメージをまとめます。

1.アプリの目的と要件

1.1. ユースケース

目的説明
今日の運勢をワンクリックで表示日付選択 →「占う」で結果(画像+文)を提示
視認性と遊び心結果に応じて文字色変更・画像表示
拡張しやすさメッセージ候補や画像を後から追加しやすい設計

1.2. 画面イメージ(ワイヤーフレーム)

1.3. 使うコントロールと主要プロパティ

種別(Name) 例主なプロパティ役割
FormFormUranaiText="今日の運勢"
Size: Width=480, Height=360
画面本体
DateTimePickerDatePickFormat=Short日付入力
ButtonButtonTellText="占う"占い開始
PictureBoxPictureBoxResultSizeMode=StretchImage,
Size: Width=360, Height=160
結果画像
表示領域を確保
TextBoxTextResultMultiline=True,ReadOnly=True
BackColor=Window
結果文表示

1.4. 占いロジックの考え方

1.4.1. 分岐設計

  • 基準値:DayOfYear(その年の経過日)
  • 分岐:Select Case (DayOfYear Mod 5) → 0:大吉 / 1:中吉 / 2:小吉 / 3:吉 / 4:凶
  • 文バリエーション:各結果ごとに配列からランダム選択

1.4.2. VB 2022 の関連要素

要素概要使いどころ
Select Case多岐分岐結果の判定
Mod剰余(あまり)0〜4にマップ
DateTime.DayOfYear1〜365/366判定の基礎値
Random.Next(n)0〜n-1メッセージ選択
Control.ForeColor文字色結果色の反映
PictureBox.Image画像差し替えリソース画像の表示(後章で追加)

1.5. 結果メッセージと色設計

結果文字色(例)メッセージ候補(例・複数)
大吉Gold「最高のひらめきが舞い降りる日」「コードが美しくまとまる」「レビューで称賛の嵐」「学習がぐんと進む」
中吉LimeGreen「作業が軽やかに進む」「苦手箇所を克服」「良い質問ができる」「集中力が続く」
小吉RoyalBlue「小さな達成が積み上がる」「地道な改善が効く」「学びのメモが役立つ」「丁寧さが成果に」
SteelBlue「安定運。いつも通りが最善」「基本の徹底が鍵」「休息も成果のうち」「無理せず着実に」
Crimson「設計を見直す好機」「焦らず再現手順を整理」「小休止で流れが戻る」「助け合いで打開」

1.6. 最小サンプル(概要用・メッセージ色付き)

※画像は後章(④リソース追加)で設定予定。ここではテキスト色と文の出し分けのみを示します。サンプルの文言は参考元から変更しています。

Public Class FormUranai
    Private ReadOnly msgDaikichi = {
        "最高のひらめきが舞い降ります!", "コードが美しくまとまります。", "レビューで称賛の嵐。", "学習がぐんと進みます。"}
    Private ReadOnly msgChukichi = {
        "作業が軽やかに進みます。", "苦手箇所を克服できそう。", "良い質問ができる日。", "集中力が続きます。"}
    Private ReadOnly msgShokichi = {
        "小さな達成が積み上がります。", "地道な改善が効きます。", "学びのメモが役立ちます。", "丁寧さが成果に。"}
    Private ReadOnly msgKichi = {
        "安定運。基本を大切に。", "いつも通りが最善。", "休息も成果のうち。", "無理せず着実に。"}
    Private ReadOnly msgKyo = {
        "設計を見直す好機。", "焦らず再現手順を整理。", "小休止で流れが戻る。", "助け合いで打開。"}

    Private Sub ButtonTell_Click(sender As Object, e As EventArgs) _
        Handles ButtonTell.Click

        Dim key = DatePick.Value.DayOfYear Mod 5
        Dim rnd As New Random()
        Dim text As String = ""
        Dim color As Color = Color.Black

        Select Case key
            Case 0 ' 大吉
                text = msgDaikichi(rnd.Next(msgDaikichi.Length))
                color = Color.Gold
            Case 1 ' 中吉
                text = msgChukichi(rnd.Next(msgChukichi.Length))
                color = Color.LimeGreen
            Case 2 ' 小吉
                text = msgShokichi(rnd.Next(msgShokichi.Length))
                color = Color.RoyalBlue
            Case 3 ' 吉
                text = msgKichi(rnd.Next(msgKichi.Length))
                color = Color.SteelBlue
            Case 4 ' 凶
                text = msgKyo(rnd.Next(msgKyo.Length))
                color = Color.Crimson
        End Select

        TextResult.ForeColor = color
        TextResult.Text = $"【{DatePick.Value:yyyy/MM/dd} の運勢】{Environment.NewLine}{text}"

        ' 画像は後章でリソース追加後に:
        ' Dim rm As New ComponentResourceManager(GetType(FormUranai))
        ' Dim Title As Image = CType(rm.GetObject("Title"), Image)
        ' PictureBoxResult.Image = Title
    End Sub
End Class

1.7. 実行イメージ

まとめ

  • DateTimePickerで日付入力、PictureBox+TextBoxで結果を表示
  • Select CaseModで分岐し、Randomで文のバリエーションを出す。
  • ForeColorで結果ごとに文字色を変える設計
  • 画像は後章でリソースとして追加、SizeMode=StretchImageで引き伸ばす。

 次章以降で「プロジェクト作成」「画面設計」「リソース追加」「最終コード実装」を段階的に仕上げます。