
マクロを使って、エクセルのワークシート上に外半径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
で内円を描いて、白で塗りつぶせばいいのですが、内円の中は透過にしたいのです。
普通に透過にしてしまうと下の黄色が出てしまいます。
方法がわかれば「マクロの記録」を使ってなんとかなると思いますが、シェイプに慣れている方にヒントだけでも教えて頂ければありがたいです。
No.3ベストアンサー
- 回答日時:
内円調整ハンドルはなかったですか?
0.5で全円になります。
With ActiveSheet.Shapes
.AddShape(msoShapeDonut, 10, 10, 200, 200).Adjustments.Item(1) = 0.2
End With
ありがとうございます。
No.1 様の線の太さを縮尺をかけて作る方法で一応望んでいた図が描けたのですが、Adjustments.Item(1)を使うほうがスマートですね。
Adjustments.Item(1) は着色部の厚さ/2Rで作ればいいんですね。
このハンドルを見落としていました。
まだまだ勉強が足りない・・
シェイプでできないことはない(?)みたいなことを聞いたことがあるので、もっと勉強します。
皆さんありがとうございました。
No.2
- 回答日時:
出来るかと思ったけど、オートシェイプの書式設定変更はマクロの記録で記録できないようでした。
線の太さも、マクロ中での変更が出来るのかどうかも分かりませんでいたごめんなさい。
ありがとうございます。
Selection.ShapeRange.Line.Weight = 5.5
とかで設定はできるようですよ。
厳密な意味でのCADのような正確さは必要ないので .Line.Weight を操作して描画してみます。
No.1
- 回答日時:
ちょっと前の相談で似たようなものがあったけど、作画の線色を黄色にして円の線の太さを大きくする事で対応できるのでは?
必ず同心円になるし、ただ線の太さを変化させたときに図形の大きさが変化してしまうのでそのあたりの計算が難しいかとは思うけど。

お答えいただきましてありがとうございます。
過去の質問の捜し方が悪かったのか同じような質問をしてしまっていたらすみません。
なるほど、線の太さで対処するんですね。
ただ、図形が管の断面を表していて、その下に箱状の桁を描きます。
その箱も縮尺をかけて描いているので、管と箱のスケールがなるべく正確に表示されるようにしたいんですが・・
お答えを元にもう少し考えて見ます。
ちなみにこちらのPCは、 OS Win XP SP3、Office Excel 2003 SP3です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- その他(プログラミング・Web制作) Pythonでのアニメーション 1 2023/06/01 15:58
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- CAD・DTP AUTO CAD操作方法 半円の書き方 1 2022/06/20 09:16
- Excel(エクセル) 半角ハイフンを除いた重複に色を付ける数式について 5 2022/09/08 20:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) 指定の条件に応じたセルの場所に〇印(図形)を描く 2 2022/11/08 15:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロ1があります。 A1のセル...
-
Excel VBAでのWorksheet_Change...
-
エクセルで複数のシートのクリ...
-
【エクセル】フリーワード検索...
-
記録したマクロを他のシートに...
-
エクセル シート内の一番下のセ...
-
エクセルのマクロを教えてくだ...
-
Excelで数字を入れたら対応する...
-
エクセルファイルを開いた回数...
-
エクセルVBAコード
-
エクセルで特定の行だけ行削除...
-
「マクロが含まれているファイ...
-
任意のセルに貼り付けをするマ...
-
エクセルVBAで内容変更のたびに...
-
Excelのシート上のShapeにイベ...
-
セルの一部分だけを太字にする方法
-
エクセルVBAで実行中画面を...
-
B列の最終行までA列をオート...
-
エクセルで離れた列を選択して...
-
「段」と「行」の違いがよくわ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
マクロ1があります。 A1のセル...
-
エクセルで複数のシートのクリ...
-
Excelのシート上のShapeにイベ...
-
Excelで数字を入れたら対応する...
-
【エクセル】フリーワード検索...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
エクセル シート内の一番下のセ...
-
EXCELのダイアログシートって、...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
指定値をマクロで検索&シート移動
-
エクセル:セル内の文字列の最...
-
excel定数の違いについて。xlAu...
-
Excelにて、同じ画像を複数のセ...
-
Excelマクロでブック全体を検索...
-
エクセルでマクロを作りすぎた...
-
セルの一部分だけを太字にする方法
-
シートではなくBOOK間で重複し...
おすすめ情報