[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『正五角形・正六角形の描き方』(韋駄天一)
こちらは Excel2002ですが、図形線画なら Shiftキーを押しながら ドラックすると正多角形になります。
2010で違ってたらごめんなさいです。 (純丸)(o^-')b
純丸さん ありがとうございます。
ところが、元からある図形自体が歪なのです。
「Excel2010」「Windows 7」です。 Excel2010の図形線画にある五角形・六角形自体が「正」ではなく歪な形です。どうすれば正五角形・正六角形を描けるのでしょうか?
なんで新スレ立ててんの?
なぜ何度も同じ質問を繰り返されるのでしょうか。
統合しました。 (川野鮎太郎)3/10 10:48
>ところが、元からある図形自体が歪なのです。 これを、「正○角形にしたい」と言う事ですか? 「今から図形を描くときに、正○角形の図形を描きたい」 と言う事ではなく。。。?
タブン、図の書式設定か何かにサイズを入力出来る所があると思うので 高さと幅に同じ値を設定してみてはどうでしょう。
これまた出来なかったら済みませんが。。。
(HANA)
元からある図形を選択し、書式>オートシェープ>サイズで倍率の縦横比を固定にチェックが入ってれば外し、高さと幅を合わせる。
おっと、、、2010だと操作方法は違うか・・・。
ただし、印刷したときに正多角形になるとは限りません。
(川野鮎太郎)
高さと幅では正多角形にならないような・・・ 確かに、元のShapeはびみょ〜に歪んでいるようにも見えますね。
逆にExcelでそこまでの精度の図形が必要なのかなぁ?とも思えますが。
自身で作ってしまうのはどうでしょう?
Sub MakePolygon() Dim shp As Object Dim i As Long, n As Long Dim r As Double, s As Double, Pi As Double Dim cx As Double, cy As Double, x As Double, y As Double r = Application.InputBox("半径?", Type:=1) n = Application.InputBox("正?角形", Type:=1) Pi = Atn(1) * 4 s = Pi / 2 - 2 * Pi / n With ActiveCell cx = .Left cy = .Top End With For i = 1 To n + 1 x = Cos(2 * Pi * i / n - s) * r + cx y = Sin(2 * Pi * i / n - s) * r + cy If i = 1 Then Set shp = ActiveSheet.Shapes.BuildFreeform(msoEditingCorner, x, y) Else shp.AddNodes msoSegmentLine, msoEditingCorner, x, y End If Next i shp.ConvertToShape End Sub
(momo)
>元からある図形自体が歪なのです。 これはもうどうしようも無いですね。 微妙にいびつなのでぱっと見じゃ解りませんけど。 前に○で泣いたことがあります。 (Jaka)
>高さと幅では正多角形にならないような・・・ あっっ、本当ですね。。。!!^^;
(HANA)
こんにちは。 五角形、六角形のサイズを↓と同比率にすると、ほぼ正多角形に見えますよ。
※「_」セルは未入力または"" [R/C] [A] [B] [C] [D] [E] [1] _ 正5縦 正5横 正6縦 正6横 [2] 半径1 1.809017 1.902113 1.7320508 2 [3] 半径2 3.618034 3.8042261 3.4641016 4 [4] 入力サイズ 3.62 3.81 3.47 4
B2 =1+COS(PI()/5) C2 =2*SIN(PI()*2/5) D2 =SQRT(3) E2 : 入力 (コタ)
momoさんの内容は初心者の私にはわかりません。
コタさんの数値を入力してみましたがダメでした。
実はこの図形を型紙にしてサッカーボールを作りたいのです。
元の図形が少しでも歪だと最終的に球形になりません。
あきらめて、定規・分度器・コンパスで作製しようかなと思っています。
皆さん ありがとうございました。
(韋駄天一)
もう見ておられないかもしれませんが、 そういうことでしたら、CADで書いたほうが良いですね。 無料のCADがダウンロードできますよ。
(川野鮎太郎)
結局、データ上だけですので印刷したらまた歪んだりしますから・・・ その用途なら川野鮎太郎さんの仰るようにCADが正解だと思いますね。 (momo)
取り急ぎ前述の文房具で作成してみます。
無料のCADは、後日調べてみます。
ありがとうございました。
(韋駄天一)
>実はこの図形を型紙にしてサッカーボールを作りたいのです。 そしたら、こんな感じで探すと http://www.google.co.jp/search?hl=ja&source=hp&q=%E3%82%B5%E3%83%83%E3%82%AB%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%AB+%E5%9E%8B%E7%B4%99&lr=&aq=0&aqi=g1g-m1&aql=&oq=%E3%82%B5%E3%83%83%E3%82%AB%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%AB%E3%80%80%E5%9E%8B%E7%B4%99 こんなページが見つかったりします。 http://www.clover.co.jp/hand/hand51a.htm
他にも有ると思いますので、探してみられては。。。? 大きさが有るから、既製のじゃだめなのかな? でも「倍率かえて印刷」とか出来そうだよね。 ・・・そんな事言ってたら サッカーボールにこだわらないのかな。
(HANA)
最初から用途を説明しておけばよかったんですね。
皆さんにもご迷惑をおかけしたようで、すみませんでした。
重ねて ありがとうございました。
(韋駄天一)
横槍失礼します。 momoさんのコードの >shp.AddNodes msoSegmentLine, msoEditingCorner, x, y
を shp.AddNodes msoSegmentLine, msoEditingAuto, x, y にしたらうまくいきました。
momoさんのコードを改造して遊んでみました。
Sub MakePolygon_2() Dim shp As Object, newshp As Object Dim i As Long, n As Long Dim r As Double, s As Double, Pi As Double Dim iro As Integer Dim cx As Double, cy As Double, xa As Double, ya As Double, xb As Double, yb As Double ActiveSheet.DrawingObjects.Delete r = Application.InputBox("半径?", Type:=1) n = Application.InputBox("正?角形", Type:=1) Pi = Atn(1) * 4 s = Pi / 2 - 2 * Pi / n With ActiveCell cx = .Left cy = .Top End With iro = 2 For i = 1 To n + 1 iro = iro + 1 If iro = 57 Then iro = 3 xb = Cos(2 * Pi * i / n - s) * r + cx yb = Sin(2 * Pi * i / n - s) * r + cy If i <> 1 Then Set shp = ActiveSheet.Shapes.BuildFreeform(msoEditingCorner, cx, cy) shp.AddNodes msoSegmentLine, msoEditingAuto, xa, ya shp.AddNodes msoSegmentLine, msoEditingAuto, xb, yb shp.AddNodes msoSegmentLine, msoEditingAuto, cx, cy Set newshp = shp.ConvertToShape With newshp .Fill.Visible = msoTrue .Fill.ForeColor.RGB = ThisWorkbook.Colors(iro) .Line.Visible = msoFalse End With Set shp = Nothing Set newshp = Nothing End If xa = xb ya = yb Next i End Sub
(カリーニン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.