• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2003で簡単な図形の表示と非表示のプログラムを作成したので)

Excel2003で図形の表示と非表示をプログラムする方法

このQ&Aのポイント
  • Excel2003で簡単な図形の表示と非表示のプログラムを作成する方法を解説します。
  • UserForm1を使用して、オプションボタンをクリックすると、図形の表示と非表示が切り替わるようなプログラムを作成することができます。
  • ワークシート1の楕円図形1と図形2を表示・非表示する方法と、ワークシート2の楕円図形3と図形4を表示・非表示する方法を詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

以下は、Index になっていますから、位置は、左から右、上から下の順序になって、表示のオン・オフが決まります。UserForm のShowModal は、False のほうがよいと思います。 '// Private Sub OptionButton1_Click()  Call isOvalVisible(True) End Sub Private Sub OptionButton2_Click()  Call isOvalVisible(False) End Sub Private Sub isOvalVisible(flg As Boolean)  Dim shp As Shapes  Dim i As Long  With ActiveSheet   Application.ScreenUpdating = False   On Error Resume Next   For i = 1 To .Ovals.Count    If i Mod 2 Then     .Ovals(i).Visible = flg    Else     .Ovals(i).Visible = Not flg    End If   Next   On Error GoTo 0   Application.ScreenUpdating = True  End With End Sub

B52
質問者

お礼

大変参考になりました。 VBAは勉強中で解らない記述がありますが、解析し参考にしたいと思います。 有難うございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

それぞれのシートをアクティブにしてから操作することになりますね。 Private Sub OptionButton1 Click() Worksheets("Sheet1").Activate ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1の楕円図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1の楕円図形2非表示 Worksheets("Sheet2").Activate ActiveSheet.Shapes("Oval 3").Visible=True 'ワークシート2の楕円図形3表示 ActiveSheet.Shapes("Oval 4").Visible=False 'ワークシート2の楕円図形4非表示 End Sub Private Sub OptionButton2 Click() Worksheets("Sheet1").Activate ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1の楕円図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1の楕円図形2表示 Worksheets("Sheet2").Activate ActiveSheet.Shapes("Oval 3").Visible=False 'ワークシート2の楕円図形3非表示 ActiveSheet.Shapes("Oval 4").Visible=True 'ワークシート2の楕円図形4表示 End Sub

B52
質問者

お礼

助かりました、有難う御座います。