• 締切済み

グループボックスを消そうとするとエラーが出ます

こんにちは excel2003でオプションボタンを使ってアンケートを作っています。 VBAに関してはまったくの初心者です。 オプションボタンのグループボックスを非表示にしようとして、 Visual Basic のイミディエイトで ActiveSheet.GroupBoxes.Visible=False と入力しても 「実行時エラー '1004': GroupBoxesクラスのVisibleプロパティを設定できません」 というエラーが出ます。 インターネットではこれを入力すると非表示にできるようなのですが、 うまくいきません。 ちなみに、 ActiveSheet.Shapes("グループ名").Visible = False だと指定したグループボックスは消せました。 何か環境設定などが間違っているのでしょうか。 もしご存知の方がいらっしゃいましたらよろしくお願いいたします。

みんなの回答

  • normo
  • ベストアンサー率54% (6/11)
回答No.1

もしかしてですが・・・ >VBAに関してはまったくの初心者です。 との事ですので、失礼ながら初歩的な確認です。 ActiveSheetというのはアクティブシートの事ですので グループボックスのないシートがアクティブな状態でそのコードを実行すると'1004'のエラーがでます。 上記のような可能性はありませんか?

lucky18
質問者

お礼

normoさま 返信ありがとうございます。 activesheetっていうのはそのページを一番上…というか表示さしている状態ですよね? もしそうならそういう風にはなっています。 VBAのプロジェクトでもそのシートが選択されているので、大丈夫だと思うのですが…。 わざわざ返信してくださってありがとうございます。

関連するQ&A

  • エクセルのグループボックス枠線を消す、ボックス数

    オプションボタンの枠線を消す、グループ数についての質問です。 イミディエイト ウインドウにて、 ActiveSheet.GroupBoxes.Visible = Faulse の記入で枠線を非表示にすることが確認できていますが、、、、、 YesNoの二択の質問が多く72あります。 各々YesとNoのオプションボタンをグループ化して、最後に 「ActiveSheet.GroupBoxes.Visible = Faulse」を入力しましたが エラー1004でした。一つずつグループを消していき、61個になった時点で 消すことが出来ました。 数量に限度があるのでしょうか。また回避する方法があれば教えてください。 よろしくお願いいたします。

  • 複数のセルのなかに該当があればオートシェイプを表示

    http://okwave.jp/qa/q8365189.html 上記質問の続きです。 画像のようなチェック表をExcelで作っています。 右側欄外に表を作成し、 ◎を付ける番号、○をつける番号をそれぞれ入力し、 「入力内容を反映」ボタンをクリックすると、 オートシェイプで配置した◎や○が表示されるようにしたいです。 VBAを以下のように作成してみたのですが、 ◎はつくのですが、 ○をつけるVBAが動きません。 どのように修正するべきでしょうか? ご教授ください! Private Sub CommandButton1_Click() '○で囲むVBA Dim c For Each c In Range("U103:Y103") If InStr(c.Value, "1") > 0 Then ActiveSheet.Shapes("1を囲む○").Visible = True Else ActiveSheet.Shapes("1を囲む○").Visible = False End If If InStr(c.Value, "2") > 0 Then ActiveSheet.Shapes("2を囲む○").Visible = True Else ActiveSheet.Shapes("2を囲む○").Visible = False End If Next c ・ ・ ・ '最も重要なものを◎で囲むVBA If Range("T103").Value = "1" Then ActiveSheet.Shapes("1を囲む◎").Visible = True Else ActiveSheet.Shapes("1を囲む◎").Visible = False End If If Range("T103").Value = "2" Then ActiveSheet.Shapes("2を囲む◎").Visible = True Else ActiveSheet.Shapes("2を囲む◎").Visible = False End If ・ ・ ・ End Sub ちなみに「'○で囲むVBA」のコードだけを残して動作させてみると、 1や2が一番右のセル(Y103)に入力されると、1を囲む○、2を囲む○がそれぞれ表示されるのですが、 それ以外のセル(U103からX103)に1や2を入力しても○は表示されません。 全コードを入力して動作させると、 1や2を一番右のセル(Y103)に入力しても○はどこにも表示されません。 よろしくお願いいたします!

  • Excel2003で簡単な図形の表示と非表示のプログラムを作成したので

    Excel2003で簡単な図形の表示と非表示のプログラムを作成したのですが上手く出来ません UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1に楕円の図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1に楕円の図形2非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1に楕円の図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1に楕円の図形2表示 End Sub 上記の記述では上手くいくのですが、下記の様に ワークシート2の図形3と4も同様に表示・非表示したいため追加するとエラーになります。 UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1の楕円図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1の楕円図形2非表示 ActiveSheet.Shapes("Oval 3").Visible=True 'ワークシート2の楕円図形3表示 ActiveSheet.Shapes("Oval 4").Visible=False 'ワークシート2の楕円図形4非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1の楕円図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1の楕円図形2表示 ActiveSheet.Shapes("Oval 3").Visible=False 'ワークシート2の楕円図形3非表示 ActiveSheet.Shapes("Oval 4").Visible=True 'ワークシート2の楕円図形4表示 End Sub VBAの勉強中の初心者です。教えて頂けないでしょうか。

  • エクセルでグループボックスを非表示にしたい

    エクセルで、オプションボタンを使用しアンケートのようなものを作成しています。 この場合のオプションボタンは、フォームツールバーの方です。 そこで、オプションボタンを幾つかのグループに分けているのですが、 グループボックスを使用しています。 このとき、グループボックスを表示させないようにすることはできないのでしょうか? よろしくお願いします。

  • EXCELオプションボタンのグループ線非表示

    Sub test() Dim grp As Variant excel2000 でフォームのオプションボタンを多数設置しており、グループボタンの線をまとめて 非表示にしようと、下記コードでやってみたところ、反応がありません。 どこをどう修正すれば、いいかアドバイスいただけないでしょうか? よろしくお願いいたします。 For Each grp In Workbooks If grp.Name Like "グループ*" Then ActiveSheet.Shapes(grp).Visible = False End If Next grp End Sub

  • [エクセル2007] 図形を非表示にするマクロ

    図形「図A」を非表示にするマクロがあります。 Sub 図削除() ActiveSheet.Shapes("図A").Visible = False End Sub これを図A、図B、図C・・・・・・と増やしていく場合はどうすれば良いのでしょうか? Sub 図削除() ActiveSheet.Shapes("図A").Visible = False ActiveSheet.Shapes("図B").Visible = False ActiveSheet.Shapes("図C").Visible = False            ・            ・             ・ End Sub とするしかないのでしょうか?

  • EXCELVBAで同じフォームボタンで表示のON/OFFをする。

    EXCELVBA初心者です。 図形描写の”表示”、”非表示”はできたのですが 同じボタンをクリックしてON/OFFする方法を教えてください。 ボタンが2個だといまいちなので、よろしくお願いします。 Sub 図形_del() ActiveSheet.Shapes("daily7").Visible = False End Sub Sub 図形_add() ActiveSheet.Shapes("daily7").Visible = True End Sub

  • Shapes の使い方について

    今まで、Excel VBA で、 If ActiveSheet.Button1.Visible = False Then   Exit Sub End If が問題なく動いていましたが、VISTA を使っておられる人からエラーが出るという指摘を受けました(Excel のバージョンはわかりません)。どうやら上の文に問題があるような気がして、いろいろ調べてみましたら、皆さん If ActiveSheet.Shapes("Button1").Visible = False Then   Exit Sub End If としておられるようなのです。なぜ、Shapes("Button1")としなければならないのか、教えていただけませんか。

  • EXCEL VBA これであっていますか?

    エクセルに地図を貼り付け、その中のある地点Aから半径1キロ、2キロ、3キロといった具合に円を描いています。ある地点B、Cも同様に円があります。セルに“A” と入力した際に該当する地点の円(1キロ、2キロ、3キロの3種類)を赤く表示し、終了すると円が消える(線なしに変わる)ようにするために以下のようなVBAを組みました。が、円が2つしか赤くならなかったり、 ばあいによっては「インデックスが境界を超えています」とエラーが出たりします。 どうしたら良いか教えてください。 Sub iro() Dim i As Variant i = InputBox("表示する地点を指定してください", "地点指定") If i = "A" Then ActiveSheet.Shapes(1).Select ActiveSheet.Shapes(2).Select ActiveSheet.Shapes(3).Select Replace:=False hyoji MsgBox "表示を終了してよろしいですか", vbOKOnly ActiveSheet.Shapes(1).Select ActiveSheet.Shapes(2).Select ActiveSheet.Shapes(3).Select Replace:=False modosu ElseIf i = "B" Then ActiveSheet.Shapes(4).Select ActiveSheet.Shapes(5).Select ActiveSheet.Shapes(6).Select Replace:=False hyoji MsgBox "表示を終了してよろしいですか", vbOKOnly ActiveSheet.Shapes(4).Select ActiveSheet.Shapes(5).Select ActiveSheet.Shapes(6).Select Replace:=False Else MsgBox "指定した地点がありません", vbOKOnly End If End Sub Sub hyoji() Selection.ShapeRange.Line.Visible = msoTrue '「線なし」に設定されている場合、線を表示 Selection.ShapeRange.Line.ForeColor.SchemeColor = 10 Range("A1").Select End Sub Sub modosu() Selection.ShapeRange.Line.Visible = msoFalse '「線なし」に設定 Range("A1").Select End Sub

  • エクセルVBAでShapesまたはDrawingObjects

    シート上のフォームなどを表示/非表示するためtest04を書きましたが、「実行時エラー438 オブジェクトはこのプロパティまたはメッソッドをサポートしていません」となります。 しかし、Test05のように同じことをForNextで回せばうまくいきます。 また、Test06のようにShapesをDrawingObjectsに書き換えただけでもうまくいきます。 では、Test04がエラーになるのはなぜでしょうか? Sub test04() With ActiveSheet.Shapes If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub Sub test05() For Each sp In ActiveSheet.Shapes If sp.Visible = False Then sp.Visible = True Else sp.Visible = False End If Next End Sub Sub test06() With ActiveSheet.DrawingObjects If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub

専門家に質問してみよう