受けた仕事は出来るだけ前倒しで処理するようにしているのですが、処理中に色々変更する事も多く、例えば、完成した原稿などを締め切りがまだあるので全部書き換えてしまうこともあります。意外な発見と新しいやり方を見付けたりしたときがそれです。四六時中考えているとムチャやってしまいますね。
木曜日, 9月 10, 2020
水曜日, 9月 09, 2020
Visual Studio Basic_18
PictureBoxで画像表示と切り替え
BMI判定の簡単なプログラムで、PictureBoxで画像を表示し、予め隠してある画像と差し替えてみます。
VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox2つ、Button3つ、Label5つ、PictureBox3つを配置します。
プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。TextBox1、2とLabel4の文字サイズは12ポイントとしています。
次にPictureBox2と3に画像を配置する手順は・・・
プロパティーの表示をクリックしてローカルリソースから指定します。ここではPictureBox2と3にそれぞれ指定しました。なお、指定直後はサイズが合致していないので左上の一部分しか表示されません。画像を最初に設定しないPictureBox1も含めて全てのPictureBoxは、プロパティーの動作のSizeModeにてStretchImageを指定します。
で、実際のソースは・・・
「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。
-----------------
Public Class Form1
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim height, weight, standard As Single
' height, weight, standardは単精度浮動小数点型変数
PictureBox2.Visible = False
PictureBox3.Visible = False
' プログラム起動時、PictureBox2と3は非表示
height = Val(TextBox1.Text)
' TextBox1の値を数値変換してheightに代入
weight = Val(TextBox2.Text)
' TextBox2の値を数値変換してweightに代入
standard = (height - 100) * 0.9
' heightから100を引いて0.9倍した値をstandardに代入
If weight >= standard * 1.1 Then
Label4.ForeColor = Color.Red
Label4.Font = New Font("MS UI Gothic", 12, FontStyle.Bold)
Label4.Text = "太りすぎです"
PictureBox1.Image = PictureBox3.Image
PictureBox1.Visible = True
' もしweightがstandardを1.1倍した値以上であれば
' Label4の文字を12pointのMS UI Gothicにし
' 赤の太字で「太りすぎです」を表示
Else
Label4.ForeColor = Color.Blue
Label4.Font = New Font("MS UI Gothic", 12, FontStyle.Bold)
Label4.Text = "標準です"
PictureBox1.Image = PictureBox2.Image
PictureBox1.Visible = True
' それ以外ならば
' Label4の文字を12pointのMS UI Gothicにし
' 青の太字で「標準です」を表示
End If
End Sub
-----------------
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
End
' プログラム終了
End Sub
-----------------
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.ResetText()
TextBox2.ResetText()
Label4.ForeColor = Color.Empty
Label4.ResetText()
PictureBox1.Image = Nothing
' TextBox1と2、Label4、PictureBox1をリセット
End Sub
End Class
-----------------
ソース記述中にエラーがなければデバッグです。
起動時にPictureBox2と3は非表示です。最初に身長を入力。
続けて体重を入力すれば太り過ぎか標準かを表示します。
ちなみに、ここで痛恨のミス・・・。痩せすぎの処理を忘れていました。
Visual Studio Basic 2019
ラベル:
Visual Studio Basic
TCDW6694
全然涼しくならない今日この頃
少しホラー系にシフト。でも全然涼しくならない今日この頃。しかし、このままマスク生活で年越ししてしまいそうですね。まっ、年内に元の生活に戻る何て誰も思っていないでしょうけれど・・・。
火曜日, 9月 08, 2020
Visual Studio Basic_17
Ifステートメントによる分岐処理
IFステートメントで入力データ毎に表示を変えるプログラムを成績評価で行ってみました。
VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox1つ、Button3つ、Label5つを配置します。
プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。TextBox1とLabel4の文字サイズは12ポイントとしています。
で、実際のソースは・・・
「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。
-----------------
Public Class Form1
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim genkoku As Integer
' genkokuは整数型変数
genkoku = Val(TextBox1.Text)
' TextBox1に入力した文字を数値変換してgenkokuに代入
If genkoku >= 80 Then
Label4.Text = "優合格"
' genkokuが80以上であればLabel4に「優合格」を表示
ElseIf genkoku >= 60 Then
Label4.Text = "良合格"
' genkokuが60以上であればLabel4に「良合格」を表示
Else
Label4.Text = "不合格"
' どちらにも該当しない場合はLabel4に「不合格」を表示
End If
End Sub
-----------------
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.ResetText()
Label4.ResetText()
' TextBox1とLAbel4をクリア
End Sub
-----------------
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
End
' プログラム終了
End Sub
End Class
-----------------
ソース記述中にエラーがなければデバッグです。
テストの点を入力して判定ボタンをクリック
設定どおりで動作。処理であれば完成です。
更に細分化する場合は以下の様に記述します。
-----------------
Public Class Form1
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim genkoku As Integer
' genkokuは整数型変数
genkoku = Val(TextBox1.Text)
' TextBox1に入力した文字を数値変換してgenkokuに代入
If genkoku >= 90 Then
Label4.Text = "S合格"
' genkokuが90以上であればLabel4に「S合格」を表示
ElseIf genkoku >= 80 Then
Label4.Text = "A合格"
' genkokuが80以上であればLabel4に「A合格」を表示
ElseIf genkoku >= 70 Then
Label4.Text = "B合格"
' genkokuが70以上であればLabel4に「B合格」を表示
ElseIf genkoku >= 60 Then
Label4.Text = "C合格"
' genkokuが60以上であればLabel4に「C合格」を表示
Else
Label4.Text = "不合格"
' どちらにも該当しない場合はLabel4に「不合格」を表示
End If
End Sub
-----------------
ラベル:
Visual Studio Basic
TCDW6693
もしかして夢の中にもモブキャラ
夢の中に出てくる人で、誰だか分からない人は何を意味しているのだろう。もちろん夢から覚めて気が付くのですが・・・。もしかして夢の中にもモブキャラ?
ラベル:
illustration,
Photoshop,
TCDW
月曜日, 9月 07, 2020
TCDW6692
教室が解らずに走り回っている夢
6階建ての古い校舎で味わいのある謎の学校にて、授業をするための教室が解らずに走り回っている夢を見ました。意味不明です。全てが初めて観る空間ばかりで本当に謎でした。そんなことより授業に遅れる〜と全力疾走でグタグタになったところで目が覚めました。
ラベル:
illustration,
Photoshop,
TCDW
日曜日, 9月 06, 2020
Visual Studio Basic_16
Select Caseによる分岐処理
Select Caseステートメントによる分岐処理で所得税の計算をしてみます。なお、ステートメントとは キーワード、演算子、変数、定数、および式を含めることができる完全な命令です。 各ステートメントは、次のいずれかのカテゴリに属す。
●宣言ステートメント。変数、定数、またはプロシージャの名前を指定。
●実行可能なステートメント。アクションを開始。 これらのステートメントでは、メソッドまたは関数を呼び出し、コードのブロックをループまたは分岐する。
条件分岐が4つ以上の場合はIFを使うよりもSelect Caseの方がソースも分かり易くて便利。
VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox1つ、Button2つ、Label3つを配置します。
プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。TextBox1とLabel3の文字サイズは12ポイントとしています。
で、実際のソースは・・・
「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。
-----------------
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim kazeigaku, shotokuzei As Long
' kazeigaku(課税所得), shotokuzei(所得税)は長整数型変数
kazeigaku = Val(TextBox1.Text)
' TextBox1に入力した文字を数値変換してkazeigakuに代入
Select Case kazeigaku
Case 1000 To 1950000
shotokuzei = kazeigaku * 0.1
' 課税所得が1000〜1950000の時の所得税額は
' 課税所得×10%
Case 1950001 To 3300000
shotokuzei = kazeigaku * 0.1 - 97500
' 課税所得が195001〜3300000の時の所得税額は
' 課税所得×10% − 97500
Case 3300001 To 6950000
shotokuzei = kazeigaku * 0.2 - 427500
' 課税所得が3300001〜695000の時の所得税額は
' 課税所得×20% − 427500
Case 6950001 To 9000000
shotokuzei = kazeigaku * 0.33 - 636000
' 課税所得が695001〜9000000の時の所得税額は
' 課税所得×10% − 636000
Case 9000001 To 18000000
shotokuzei = kazeigaku * 0.4 - 1536000
' 課税所得が9000001〜18000000の時の所得税額は
' 課税所得×33% − 1536000
Case 18000001 To 40000000
shotokuzei = kazeigaku * 0.45 - 2796000
' 課税所得が18000001〜40000000の時の所得税額は
' 課税所得×40% − 2796000
Case Else
shotokuzei = kazeigaku * 0.45 - 4796000
'上のいずれにも該当しない場合は
' 所得税額 = 課税所得×45% − 4796000
End Select
If kazeigaku < 1000 Then
Label3.Text = "¥0"
' 課税所得が1000以下の場合はLabel3に「¥0」 を表示
Else
Label3.Text = Format(shotokuzei, "\\###,###,###,###")
' 所得税額の表示形式を指定
End If
End Sub
-----------------
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' Button3がクリックされたら終了
End
End Sub
End Class
-----------------
ソース記述中にエラーがなければデバッグです。
課税対象額が1億円の場合・・・
所得税は40,204,000円となるそうです。所得税ぐらいは一度でもいいから稼ぎたいですね。
Visual Studio Basic 2019
ラベル:
Visual Studio Basic
TCDW6691
ほんといい加減にしてほしいです
昨日は、近隣マンションの屋上で昼間っからビール片手に馬鹿騒ぎ・・・ほんといい加減にしてほしいです。温和しくしていることは容認ではないのが解らないのでしょうね。
ラベル:
illustration,
Photoshop,
TCDW
土曜日, 9月 05, 2020
Visual Studio Basic_15
カレンダー表示と閏年設定
カレンダー表示と閏年設定について簡単に整理してみました。
VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox3つ、Button2つ、Label2つを配置します。
プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。TextBox1、2の文字サイズは12ポイントとしています。
ところで、ソース中のcal(36)は何故36か?
1週間は7日。日曜日から始まると最後は土曜日。土曜日が1日の月の場合はCal(6)。そのまま31日まで進むとCal(36)というわけです。
「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。
-----------------
Public Class Form1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' c_year, c_month, i, m, h, r, p は整数型変数
Dim c_year, c_month, i, m, h, r, p As Integer
' Cal() は 36 までの整数型変数
Dim cal(36) As Integer
' TextBox3はスタート時のデータは無し
TextBox3.Text = ""
Dim tuki() As Integer = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
' tuki() は整数型変数で 12 ヶ月分の日数を1月から、
' 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
' と入れる。最初の0は最初に入れるダミーデータとしての「0」。
c_year = Val(TextBox1.Text)
' c_yearに入力した文字を数値に変換して入れる
c_month = Val(TextBox2.Text)
' c_monthに入力した文字を数値に変換して入れる
If c_year Mod 4 = 0 Then tuki(2) = 29
If c_year Mod 100 = 0 Then tuki(2) = 28
If c_year Mod 400 = 0 Then tuki(2) = 29
' 閏年のときは2月[tuki(2)]の最終日を29日に修正する
' 西暦を4で割って余りが出なければ閏年である。
' ただし、続けて100で割って余りが出なければ閏年ではない。
' 常に西暦を400で割って余りが出なければ閏年である。
' 1年365日で1日、閏年は曜日が2日ズレる
' 西暦0001年からの曜日のずれの日数を計算する
m = c_year + (c_year - 1) \ 4 - (c_year - 1) \ 100 + (c_year - 1) \ 400
' 1月1日から前月までの延べ日数を計算する
h = 0
For i = 1 To c_month - 1
h = h + tuki(i)
Next
r = (m + h) Mod 7
' その月の朔日(毎月の第一日)の曜日を求める
' 日数の配列 cal に日付を入れる↓
' cal(i) = cal(i) +1という感じ
p = 1
For i = r To r + tuki(c_month) - 1
cal(i) = p
p = p + 1
Next
' カレンダーを表示する
TextBox3.Text &= vbCr
' 改行する
TextBox3.Text &= Space(1) & "日" & vbTab & "月" & vbTab & "火" & vbTab & "水" & vbTab & "木" & vbTab & "金" & vbTab & "土"
' 日月火水木金土をTabキーを鋏んで表示。
TextBox3.Text &= vbCrLf
' 改行する
For i = 0 To 36
If i Mod 7 = 0 Then TextBox3.Text &= vbCrLf + vbCrLf
' 日数の配列calが36まで7で割って余りが出なければ改行2回を繰り返す。
' vbCrLfは改行、 vbCrLf + vbCrLfで改行を2回
If cal(i) = 0 Then
TextBox3.Text &= vbTab
' calが0(1日以前)であればTextBox3にTabキーを入れる
' vbTabはTabキー
Else
TextBox3.Text &= Str(cal(i)) & vbTab
' TextBaoc3には日数の配列calとTabキーを入れて繰り返す。
End If
Next
End Sub
-----------------
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' プログラムを終了
End
End Sub
End Class
-----------------
ソース記述中にエラーがなければデバッグです。
西暦と月を入力
指定した月のカレンダーが表示。今回はソースが長いので1桁の日の桁が合っていないのはご愛敬。
Visual Studio Basic 2019
ラベル:
Visual Studio Basic
登録:
投稿 (Atom)




































