- ベストアンサー
エクセルでこんなことできますか?
上司に、調べるようにいわれたんですが・・。 エクセルのシートにオートシェイプで作った図が5つあります。その図をマクロのボタンで表示したり、隠したりできますか?ただし1つの図に対してボタンは1つです。場所が狭いため、表示するボタンと非表示にするボタン合計10個の置き場がないらしいのです。図形5個はそれぞれ独立していて、同時に2個表示したり、5個表示したり、あるいは全部かくしたり、ということをしたいそうなんですが、どなたかお力をおかしください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1に四角形を貼り付けました。 またボタンを1つ貼り付けました。ボタンのクリック・イベントとして Sub ボタン6_Click() If Worksheets("sheet1").DrawingObjects(1).Visible = True Then Worksheets("sheet1").DrawingObjects(1).Visible = False Else Worksheets("sheet1").DrawingObjects(1).Visible = True End If End Sub としました。 ボタンをクリックすると、現われる・消えるが交互に 行われます。 これではダメですか。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
>トグルボタンとは何でしょうか Toggle ButtonはToggle Switchから来ていて、つまみを上下に動かして開閉するスイッチです。toggleはコートなどのボタン代わりの服を止めるひもについている棒状の木製のボタンのようなもの。 これにスイッチの棒が似ていたからではないかと思う。ラヂオボタン(MACなどで)とも言う。VBAではオプションボタンとも言う。○の中に小●の表示されるもの。ラジオボタンは、旧式の自動車用ラジオでは、各チャンネルごとにボタンが割り振られていたので、それと似ているところから来る。 ON―押す-OFF-押す-ON-押すーOFF・・・ となるのが特徴。
- nishishi
- ベストアンサー率39% (17/43)
トグルボタンを使ってON、OFFで表示、非表示をさせたら 5個のボタンでできると思いますけど、それじゃあ駄目なのでしょうか
補足
ご回答ありがとうございます。トグルボタンとは何でしょうか?初めて聞いたので・・・
- tamagawa49
- ベストアンサー率46% (123/265)
ごめんなさい。安易に「マクロの記録」で作ったのでミスしました。 Sub 表示切替() With Worksheets("sheet1").DrawingObjects(1) .Visible = Not .Visible End With End Sub #2さんの方法で良いのかなと思います。私が >あまりきれいではないですが といったのは、if ~ =true then elseif~ =false then の部分がなんとかならないか…、と考えていました。 で、上のようなマクロはいかがかな。と再回答しました。 したがって他の部分は#2さんのままです。 ただ、DrawingObjects(1) は最初に作った図形なので、最初にフォームから「マクロ実行ボタン」なんか作ってしまうと、いきなり「実行ボタン」が非表示になって慌ててしまいますけどね。 では。
お礼
できました!ありがとうございました。助かりました。早速報告します。
- tamagawa49
- ベストアンサー率46% (123/265)
あまりきれいではないですが、 Sub 表示切替() ActiveSheet.Shapes("Oval 1").Select If Selection.ShapeRange.Fill.Visible = False Then Selection.ShapeRange.Fill.Visible = True ElseIf Selection.ShapeRange.Fill.Visible = True Then Selection.ShapeRange.Fill.Visible = False Else End If If Selection.ShapeRange.Line.Visible = False Then Selection.ShapeRange.Line.Visible = True ElseIf Selection.ShapeRange.Line.Visible = True Then Selection.ShapeRange.Line.Visible = False Else End If End Sub というマクロで可能です。"Oval 1"というのは、私の実験した図が楕円だったので、ここは変更して使って下さい。 図形の中身と輪郭を別々に表示・非表示命令したものです。
補足
早速の回答ありがとうございます。実行できたのですが、非表示にしたとき 図形のハンドルが残ってしまうのですが、何か間違っているのでしょうか?
お礼
できました!ありがとうございました。ダメなどころか大助かりです。早速報告します。