-
解決手順(日本語)
マクロ「三角形の面積」を開始します。
底辺,高さ,面積の3つの変数を用意します。
セルB3の値を変数(底辺)に代入します
セルC3の値を変数(高さ)に代入します。
セルD3の値を変数(面積)に代入します。
もし 底辺が空ならば
セルB3に面積×2÷高さの値を代入します。
セルB3の文字色を赤色にします。
それ以外に 高さが空のときは
セルC3に面積×2÷底辺の値を代入します。
セルC3の文字色を赤色にします。
それ以外に 面積が空のときは
セルD3に底辺×高さ割る2の値を代入します。
セルD3の文字色を赤色にします。
条件処理を終了します。
マクロ「三角形の面積」を終了します。 -
コード化(マクロ)
Sub 三角形の面積()
Dim 底辺,高さ,面積 As Variant
底辺 = Range("B3")
高さ = Range("C3")
面積 = Range("D3")
If 底辺 = "" Then
Range("B3") = 面積 * 2 / 高さ
Range("B3").Font.ColorIndex = 3
ElseIf 高さ = "" Then
Range("C3") = 面積 * 2 / 底辺
Range("C3").Font.ColorIndex = 3
ElseIf 面積 = "" Then
Range("D3") = 底辺 * 高さ / 2
Range("D3").Font.ColorIndex = 3
End If
End Sub
-
解決手順(日本語)
マクロ「三角形の判定」を開始します。
辺1,辺2,辺3,差,最長の5つの変数を準備します。
セルC3の値を辺1に代入します。
セルD3の値を辺1に代入します。
セルE3の値を辺1に代入します。
もし 辺1が辺3より長いとき
辺1を最長に代入します。
辺3を辺1に代入します。
最長を辺3に代入します。
条件処理を終了します。
もし 辺2が辺3より長いとき
辺2を最長に代入します。
辺3を辺2に代入します。
最長を辺3に代入します。
条件処理を終了します。
もし 辺1-辺2が0より短いとき
―(辺1―辺2)を差に代入します。
その他の場合には
辺1―辺2を差に代入します。
条件処理を終了します。
辺1+辺2が辺3より長いとき、かつ、差が辺3より 短いとき
セルF3に“できる”という文字を代入する。
その他の場合には
セルF3に“できない”という文字を代入する。
条件処理を終了します。
マクロ「三角形の判定」を終了します。 -
コード化(マクロ)
Sub 三角形の判定()
Dim 辺1, 辺2, 辺3, 差, 最長 As Variant
辺1 = Range("C3")
辺2 = Range("D3")
辺3 = Range("E3")
If 辺1 > 辺3 Then
最長 = 辺1
辺1 = 辺3
辺3 = 最長
End If
If 辺2 > 辺3 Then
最長 = 辺2
辺2 = 辺3
辺3 = 最長
End If
If 辺1 - 辺2 < 0 Then
X = -(辺1 - 辺2)
Else
X = 辺1 - 辺2
End If
If (辺1+辺2 > 辺3) And (X<辺3) Then
Range("F3") = "できる"
Else
Range("F3") = "できない"
End If
End sub
3 三角形の種類
【学習課題】セルB3からB5に三角形の三辺の長さを入力します。このときできる三角形の種類(鈍角・直角・鋭角三角形)を判定するプログラムを三平方の定理を使ってつくりましょう。
-
解決手順(日本語)
マクロ「三角形の判定」を開始します。
辺1,辺2,辺3,差,最長の5つの変数を準備します
セルC3の値を辺1に代入します。
セルD3の値を辺1に代入します。
セルE3の値を辺1に代入します。
もし 辺1が辺3より長いとき
辺1を最長に代入します。
辺3を辺1に代入します。
最長を辺3に代入します。
条件処理を終了します。
もし 辺2が辺3より長いとき
辺2を最長に代入します。
辺3を辺2に代入します。
最長を辺3に代入します。
条件処理を終了します。
もし 辺1-辺2が0より短いとき
―(辺1―辺2)を差に代入します。
その他の場合には
辺1―辺2を差に代入します。
条件処理を終了します。
辺1+辺2が辺3より長いとき、かつ、
差が辺3より短いとき
セルF3に“できない”という文字を代入する。
その他の場合で辺1の2乗たす辺2の2乗が
辺3の 2条より大きいときは
セルF3に“鋭角三角形”という文字を代入する。
その他の場合で辺1の2乗たす辺2の2乗が
辺3の2条と等しいときは
セルF3に“直角三角形”という文字を代入する。
その他の場合で辺1の2乗たす辺2の2乗が
辺3の2条より小さいときは
セルF3に“鈍角三角形”という文字を代入する。
条件処理を終了します。
マクロ「三角形の判定」を終了します。 -
コード化(マクロ)
Sub 三角形はできるか()
Dim 辺1, 辺2, 辺3, 差, 最長 As Variant
辺1 = Range("C3")
辺2 = Range("D3")
辺3 = Range("E3")
If 辺1 > 辺3 Then
最長 = 辺1
辺1 = 辺3
辺3 = 最長
End If
If 辺2 > 辺3 Then
最長 = 辺2
辺2 = 辺3
辺3 = 最長
End If
If 辺1 - 辺2 < 0 Then
X = -(辺1 - 辺2)
Else
X = 辺1 - 辺2
End If
If (辺1+辺2 < 辺3) or (X>辺3) Then
Range("F3") = "できない"
elseif 辺1 ^ 2 + 辺2 ^ 2 > 辺3 ^ 2 Then
Range("G3") = "鋭角三角形"
elseIf 辺1 ^ 2 + 辺2 ^ 2 = 辺3 ^ 2 Then
Range("G3") = "直角三角形"
elseIf 辺1 ^ 2 + 辺2 ^ 2 < 辺3 ^ 2 Then
Range("G3") = "鈍角三角形"
End If
End Sub
-
解決手順(日本語)
カウント,図形という2つの変数を用意する。
マクロ「図形の設置」を開始します。
矢印の図形を(100,100)の位置に横80,縦60の矢 印を設置します。
図形矢印の名前を”矢印”とします。
マクロ「図形の設置」を終了します。
マクロ「平行移動」を開始します。
カウント10から5ずつ5000まで
図形”矢印”右端の位置を
カウント割る10足す100にする
図形の移動を実施する
カウントを5増やして戻る
マクロ「平行移動」を終了する。
マクロ「図形の削除」を開始します。
図形”矢印”を選びます。
選んだ図形を削除します。
マクロ「図形の削除」を終了します。 -
コード化(マクロ)
Dim カウント,図形 As Long
Sub 図形の設置()
Set 図形 = ActiveSheet.Shapes.AddShape
(msoShapeRightArrow, 100, 100, 80, 60)
図形.Name = "矢印"
End Sub
Sub 平行移動()
For カウント= 10 To 5000 Step 5
ActiveSheet.Shapes("矢印").Left =
カウント / 10 + 100
DoEvents
Next カウント
End Sub
Sub 図形の削除()
ActiveSheet.Shapes.Range(Array
("矢印")).Select
Selection.Delete
End Sub
-
解決手順(日本語)
マクロ「長方形の回転」を開始します。
変数(カウント)を準備します。
変数(図形)を準備します。
(150,60)の位置に横30,縦200の
長方形を設定します。
図形の名前を”長方形”とします。
カウント1から900まで繰り返します。
図形を0.1度ずつ回転させます。
回転を実施します。
カウントを1増やして戻ります。
マクロ「長方形の回転」を終了します。
マクロ「長方形の削除」を開始します。
図形”長方形”を選びます。
選んだ図形を削除します。
マクロ「長方形の削除」を終了します。 -
コード化(マクロ)
Sub 長方形の回転()
Dim カウント As Long
Dim 図形 As Shape
Set 図形 = ActiveSheet.Shapes.AddShape
(msoShapeRectangle, 150, 60, 30, 200)
図形.Name = "長方形"
For カウント = 1 To 900
図形.IncrementRotation 0.1
DoEvents
Next カウント
End Sub
Sub 長方形の削除()
ActiveSheet.Shapes.Range(Array
("長方形")).Select
Selection.Delete
End Sub
6 図形の拡大
【学習課題】台形を2倍に拡大するプログラムを作成しましょう。
-
解撤手順(日本語)
変数(図形)を準備します。
マクロ「図形の設置」を開始します。
(50,50)の位置に横50縦50の図形を設置します
図形の名前を”台形”とします。
マクロ「図形の設置」を終了します。
マクロ「図形の拡大」を開始します。
台形という主語を省略します。
高さを2倍にします。
幅を2倍にします。
主略をおわります。
マクロ「図形の設置」を終了します。
マクロ「図形の削除」を開始します。
台形という図形を選びます。
選んだ図形を削除します。
マクロ「図形の削除」を終了します。 -
コード化(マクロ)
Dim 図形 As Shape
Sub 図形の設置()
Set 図形 = ActiveSheet.Shapes.AddShape
(msoShapeTrapezoid, 50, 50, 50, 50)
図形.Name = "台形"
End Sub
Sub 図形の拡大()
With ActiveSheet.Shapes("台形")
.Height = .Height * 2
.Width = .Width * 2
End With
End Sub
Sub 図形の削除()
ActiveSheet.Shapes.Range(Array
("台形")).Select
Selection.Delete
End Sub