「みんな教えて! 選手権!!」開催のお知らせ

調べると、アナログ時計の作成がヒットしますが、
コサインだとかパイだとか難しいので、基本でいいので教えて欲しいのですが、
シート上の任意の点から任意の角度で直線を引きたいのです。

最低限どのようなキーワードが必要になりますでしょうか。



今後の勉強のためにとっかかりとして、
以下の例でサンプルを頂けたらと思い質問させていただきました。
サンプルを勉強し、その後に続けたく思っています。
正直言ってサンプルのお願いすら指定出来ません。
 →例えば、任意の点を表す単位、長さを表す単位とかすら分かりませんので。


お願いしたい例題
任意の点から水平から30度右肩上がりの直線。
(時計で言うと2時の短針の如くです。)
※任意の点とか、長さは適当に決めて下さい。
 見させて貰えば分かると思います。


しつこいですが、難しい答は要りません。
最低限のキーワードが知りたいのです。
宜しくお願いします。

A 回答 (5件)

キーワード1:直線の引き方(=書き加える方法)


AddLineメソッド
https://www.moug.net/tech/exvba/0120005.html
数学的な意味での直線を引くことはできません。
描けるのは線分のみです。意味は分かりますね。

後は始点と角度と長さから、終点を計算する方法がわかればいいのです。
始点と終点を(xs,ys)(xe,ye)としておきます。
xsとysは任意に決めて構いません。角度をθd(°:度)としておきましょう。
長さも先に決めてしまった方が楽です。rとしておきましょう。
>コサインだとかパイだとか難しいので、基本でいいので教えて欲しいのですが、
とありますが、ここからは三角関数の知識が必須となります。
xe=r・cosθ+xs
ye=r・sinθ+ys
で計算すればいいのですが、難関が控えています。

難関1
VBAで使用される三角関数の角度の単位がラジアンである。
そのため、目的とする角度θd°をラジアンに変換して前記の式に代入する必要があるのです。
変換式は「θ=(θd/180)×パイ」でいけるでしょう。
※θは変数として使用でない文字ですので、適当に変更してください。ここでも円周率パイ(π)が必要ですが、確か定数として準備されているはずです。

難関2
y軸方向の座標が通常のグラフとは逆で「下向き方向に正」となっています。
もし、「任意の点から水平から30度右肩上がりの直線。」を描きたければそのための変換が必要になるのです。

以上、最低限必要なキーワードを紹介しておきます。
    • good
    • 0
この回答へのお礼

早速有り難うございました。
3番の方とお礼が同じになりますが、
お願いしていたことが無謀だということが分かりました。
そもそも「何度の角度で」ということが不可なのですね。

教えていただいたことをを踏まえて勉強してみます。
具体的に有り難うございました。

お礼日時:2018/07/19 12:39

次の手順でどうでしょうか.


①オートシェイプで横棒を引く
②書式タブで回転⇒その他の回転オプションを選択する
③角度を30℃にする
④書式タブで回転⇒左右反転を選ぶ

これで右肩上がりの直線が引けると思います.
    • good
    • 0

こんにちは



>最低限のキーワードが知りたいのです
「マクロの記録」を利用すれば、大抵の手操作に関しては記録がとれます。
そのまま利用しようとは考えない方が良いですが、少なくともどのようなメソッドが利用できるのかはわかります。
これがお尋ねの「キーワード」に当たると思いますが??

とはいえ、ご質問の任意の角度の直線を引きたいのなら
 Worksheet.Shapes.AddLine(x1, y1, x2, y2)
の1行で引けます。(↑のWorksheetはシートオブジェクトを示します)

(x1, y1)、(x2, y2)が始点と終点の座標なので、それぞれ任意の点を指定すれば良いです。
30度の角度にしたければ、(x1, y1)に対して(x2, y2)が2時の短針の方向になるように決めておけば良いということ。

>コサインだとかパイだとか難しいので~~
水平線、垂直線以外の任意の図形をを扱う際に、三角関数や座標に関する基礎的な知識を避けて実現しようとするのは、ひたすら難しい道を選択するだけだと思いますけれど・・・
    • good
    • 0
この回答へのお礼

早速有り難うございました。
お願いしていたことが無謀だということが分かりました。
そもそも「何度の角度で」ということが不可なのですね。

教えていただいたことをを踏まえて勉強してみます。

お礼日時:2018/07/19 12:37

右クリックしてサイズとプロパティから30度にすればよい

    • good
    • 0
この回答へのお礼

早速有り難うございました。
肝心なキーが抜けていました。
今後、excelvbaで勉強したいのです。
コードが欲しいので宜しくお願いします。

お礼日時:2018/07/19 10:04

対角が30度になる四角形をかいて結べばよい。

    • good
    • 0
この回答へのお礼

早速有り難うございました。
肝心なキーが抜けていました。
今後、excelvbaで勉強したいのです。
コードが欲しいので宜しくお願いします。

お礼日時:2018/07/19 10:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報