CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

ExelVBAでチャット形式で直線を描くプログラム

2023-03-21 09:46:39 | VBA
以下の手順のチャット形式で直線をエクセルのワークシートに描くVBAプログラムを作成してください。
始点の座標の入力を求め、次に終点の座標の入力を求める方式または、始点の座標の入力を求め、次に角度と直線の長さの入力を求める方式で、入力結果をワークシートに表示する。

以下は、始点と終点の座標を入力する方式で直線を描画するVBAプログラムの例です。

Sub DrawLine() Dim StartX As Integer Dim StartY As Integer Dim EndX As Integer Dim EndY As Integer ' 始点の座標の入力を求める StartX = InputBox("始点のX座標を入力してください") StartY = InputBox("始点のY座標を入力してください") ' 終点の座標の入力を求める EndX = InputBox("終点のX座標を入力してください") EndY = InputBox("終点のY座標を入力してください") ' 直線の描画 With ActiveSheet.Shapes.AddLine(StartX, StartY, EndX, EndY) .Line.Weight = 2 ' 線の太さを指定 End With End Sub

このプログラムを実行すると、始点と終点の座標を入力するダイアログボックスが表示されます。入力された座標を使って、指定された場所に線を描画します。

以下は、始点の座標と角度・長さを入力する方式で直線を描画するVBAプログラムの例です。

Sub DrawLineByAngleAndLength() Dim StartX As Integer Dim StartY As Integer Dim Angle As Double Dim Length As Double Dim EndX As Integer Dim EndY As Integer ' 始点の座標の入力を求める StartX = InputBox("始点のX座標を入力してください") StartY = InputBox("始点のY座標を入力してください") ' 角度と長さの入力を求める Angle = InputBox("角度を度数法で入力してください(0~360)") Length = InputBox("長さを入力してください") ' 終点の座標の計算 EndX = StartX + Length * Cos(Angle * 3.14159 / 180) EndY = StartY + Length * Sin(Angle * 3.14159 / 180) ' 直線の描画 With ActiveSheet.Shapes.AddLine(StartX, StartY, EndX, EndY) .Line.Weight = 2 ' 線の太さを指定 End With End Sub


このプログラムを実行すると、始点の座標と角度・長さを入力するダイアログボックスが表示されます。入力された情報を使って、指定された角度と長さに従って線を描画します。

上記に追加で次のプログラムの作成をしてください。 マクロのファイルを開くと、何をしますか?と訊いてきてツリー形式でメニューを表示し、「直線を描く」を選択した場合、「始点と終点の座標を入力する」方法と「始点の座標と角度と直線の長さを入力する」方法のどちらかを選ばせる。 次に選んだ方法で入力を求める。

以下は、マクロのファイルを開くとメニューを表示し、直線を描く際に始点と終点の座標を入力する方法と始点の座標と角度と直線の長さを入力する方法を選択するダイアログボックスを表示するVBAプログラムの例です。

Sub ShowMenu() Dim UserChoice As Integer ' メニューの表示 UserChoice = MsgBox("何をしますか?" & vbNewLine & vbNewLine & "1. 直線を描く", vbOKCancel) ' 直線を描くを選択した場合の処理 If UserChoice = vbOK Then ' 描画方法の選択 UserChoice = MsgBox("どのように描画しますか?" & vbNewLine & vbNewLine & "1. 始点と終点の座標を入力する" & vbNewLine & "2. 始点の座標と角度と直線の長さを入力する", vbOKCancel) ' 始点と終点の座標を入力する方法を選んだ場合の処理 If UserChoice = vbOK Then DrawLineByCoord ' 始点の座標と角度と直線の長さを入力する方法を選んだ場合の処理 ElseIf UserChoice = vbOK + 1 Then DrawLineByAngleAndLength End If End If End Sub

このプログラムを実行すると、最初にメニューが表示されます。メニューの1番目の選択肢である直線を描くを選択すると、次に描画方法の選択ダイアログボックスが表示されます。選んだ描画方法に応じて、始点と終点の座標を入力する方法または始点の座標と角度と直線の長さを入力する方法のダイアログボックスが表示されます。




最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。