- ベストアンサー
エクセル上にシェイプで二重丸を書くには
マクロを使って、エクセルのワークシート上に外半径Rの円を描いて、同心の内半径rの円を描きます。(ドーナツの形) Rやrはセルで指定した数値を取り込みます。 この2円の間を黄色で塗りつぶしたいのですが、できますか? Worksheets(1).Shapes.AddShape(msoShapeDonut, XC - RO, YC - RO, RO * 2, RO * 2).Select でドーナツを書くことはできましたが、内円の半径を自由に設定できないので悩んでいます。 Worksheets(1).Shapes.AddShape(msoShapeOval, XC - RO, YC - RO, RO * 2, RO * 2).Select で外円を描いて、黄色で塗りつぶしておいて Worksheets(1).Shapes.AddShape(msoShapeOval, XC - RI, YC - RI, RI * 2, RI * 2).Select で内円を描いて、白で塗りつぶせばいいのですが、内円の中は透過にしたいのです。 普通に透過にしてしまうと下の黄色が出てしまいます。 方法がわかれば「マクロの記録」を使ってなんとかなると思いますが、シェイプに慣れている方にヒントだけでも教えて頂ければありがたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
内円調整ハンドルはなかったですか? 0.5で全円になります。 With ActiveSheet.Shapes .AddShape(msoShapeDonut, 10, 10, 200, 200).Adjustments.Item(1) = 0.2 End With
その他の回答 (2)
- web2525
- ベストアンサー率42% (1219/2850)
出来るかと思ったけど、オートシェイプの書式設定変更はマクロの記録で記録できないようでした。 線の太さも、マクロ中での変更が出来るのかどうかも分かりませんでいたごめんなさい。
お礼
ありがとうございます。 Selection.ShapeRange.Line.Weight = 5.5 とかで設定はできるようですよ。 厳密な意味でのCADのような正確さは必要ないので .Line.Weight を操作して描画してみます。
- web2525
- ベストアンサー率42% (1219/2850)
ちょっと前の相談で似たようなものがあったけど、作画の線色を黄色にして円の線の太さを大きくする事で対応できるのでは? 必ず同心円になるし、ただ線の太さを変化させたときに図形の大きさが変化してしまうのでそのあたりの計算が難しいかとは思うけど。
お礼
お答えいただきましてありがとうございます。 過去の質問の捜し方が悪かったのか同じような質問をしてしまっていたらすみません。 なるほど、線の太さで対処するんですね。 ただ、図形が管の断面を表していて、その下に箱状の桁を描きます。 その箱も縮尺をかけて描いているので、管と箱のスケールがなるべく正確に表示されるようにしたいんですが・・ お答えを元にもう少し考えて見ます。 ちなみにこちらのPCは、 OS Win XP SP3、Office Excel 2003 SP3です。
お礼
ありがとうございます。 No.1 様の線の太さを縮尺をかけて作る方法で一応望んでいた図が描けたのですが、Adjustments.Item(1)を使うほうがスマートですね。 Adjustments.Item(1) は着色部の厚さ/2Rで作ればいいんですね。 このハンドルを見落としていました。 まだまだ勉強が足りない・・ シェイプでできないことはない(?)みたいなことを聞いたことがあるので、もっと勉強します。 皆さんありがとうございました。