このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【6日でできるVisual Basic2022入門】①今日の運勢アプリの概要

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

1.アプリの目的と要件
1.1. ユースケース
| 目的 | 説明 |
|---|---|
| 今日の運勢をワンクリックで表示 | 日付選択 →「占う」で結果(画像+文)を提示 |
| 視認性と遊び心 | 結果に応じて文字色変更・画像表示 |
| 拡張しやすさ | メッセージ候補や画像を後から追加しやすい設計 |
1.2. 画面イメージ(ワイヤーフレーム)

1.3. 使うコントロールと主要プロパティ
| 種別 | (Name) 例 | 主なプロパティ | 役割 |
|---|---|---|---|
| Form | FormUranai | Text="今日の運勢" Size: Width=480, Height=360 | 画面本体 |
| DateTimePicker | DatePick | Format=Short | 日付入力 |
| Button | ButtonTell | Text="占う" | 占い開始 |
| PictureBox | PictureBoxResult | SizeMode=StretchImage, Size: Width=360, Height=160 | 結果画像 表示領域を確保 |
| TextBox | TextResult | Multiline=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.DayOfYear | 1〜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 Class1.7. 実行イメージ

まとめ
- DateTimePickerで日付入力、PictureBox+TextBoxで結果を表示
Select Case+Modで分岐し、Randomで文のバリエーションを出す。ForeColorで結果ごとに文字色を変える設計- 画像は後章でリソースとして追加、
SizeMode=StretchImageで引き伸ばす。
次章以降で「プロジェクト作成」「画面設計」「リソース追加」「最終コード実装」を段階的に仕上げます。
