• ベストアンサー

エクセルVBA 行列のグループ化判定方法

エクセル(2003)VBAにて シートの行、列のグループ化をされているものはグループを解除したいのですが、 グループ化されていないものに解除命令をだすと 当然エラーが出ます。 Selection.Rows.Ungroup Selection.Columns.Ungroup グループ化されているかを判別する手段はありますか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

判定しなくとも ActiveSheet.Cells.ClearOutline 出来ませんか?

その他の回答 (1)

回答No.2

↓でお試し下さい☆ Sub Macro1() Application.DisplayAlerts = False Selection.Rows.Ungroup Selection.Columns.Ungroup Application.DisplayAlerts = True End Sub

関連するQ&A

  • エクセルVBA 行のグループ化を外すマクロ

    いつもお世話になります。 6行目から55行目までと、7以降の行から55行目までの2重にグループ化している行があり、現状は Rows("6:55").Rows.Ungroup Rows("6:55").Rows.Ungroup でグループ化を解除しているのですが、3重以上や、1重しかグループ化していないことも想定しておく必要があるのです。 このコードだと、2重以上のグループ化をしていない時にエラーが起こってしまうし、3重以上だと解除しきれないのですが、何重にグループ化していても、もしくはグループ化していなくてもエラーを起こさず解除できる方法はありますでしょうか?

  • RangeのGroupについて(ExcelVBA)

    Excel(2003)のVBAで、RangeオブジェクトのGroupメソッドについて質問です。 Rows(範囲).Groupで、行のグループ化ができます。 最大7層まで入れ子構造に出来るようです。 質問ですが、次の様なものです。 1)複数の階層が設定されている場合に一気にGroupを解除する方法  ・Rows.Ungroupでは、1層目は、一気に解除されるが、2層目以後が残る 2)複数の階層が設定されている場合に、任意の層のみ解除する方法  ・例えば、第2層目のGroupのみ解除するには、第2層が設定されている行を選択して   Selection.Rows.Ungroupを実行すれば、解除出来るが、第2層のみ一気に解除する方法はありますか? 3)任意のRangeが、どのGroupに属しているのか?判別する方法 4)そもそもGroupのコレクションはあるのでしょうか? 説明が悪いので、わかりにくいと思いますが、よろしくお願いいたします。

  • エクセル2007VBAでUngroupができない

    エクセル2003で作ったvbaコード付きのファイルをエクセル2007で開いたときに Cells.Rows.Ungroup の部分がエラーになってしまいます。 エラー内容は 「実行時エラー1004 RangeクラスのUngroupメソッドが失敗しました」 です。 エクセル2003では問題なく動いていたのになぜ2007ではだめなのでしょうか? vba画面でデバッグしてもコンパイルエラーにはなりません。 アドバイスよろしくお願いします。

  • エクセルVBAで非表示にする方法

    エクセルのVBAを使って表示・非表示の切り替えをする方法を教えてください。 マクロは初心者のため、コードを書いていただけると嬉しいです。 (1)6~9行目、11~14行目、16~19行目…151~154行目まで を表示・非表示 (2)合計列・差額列 (列に名前を入れています。ABCなどどの列に入るかはケースによりかわります) 今のところ、 Rows("6:9").Hidden = True Rows("11:14").Hidden = True Rows("16:19").Hidden = True . . . Columns("Q:R").Hidden = True で誤魔化していますが、時間がかかりますし、列はその都度設定している状況です。 ご指導お願いします。

  • Excel VBA 列 グループ化

    Excel VBAについてお尋ねいたします。 Excelにて横長の表を作成していますが、 VBAを使用してG列~J列をグループ化させたいです。 ネットで調べると行のグループ化のことだらけだったので、お分かりの方がいらっしゃいましたらご回答お願いいたします。

  • エクセル vbaのなぜこうなるのか?

    こんばんは。 単純な事かもしれませんが、ちょっと疑問に思ったので質問させていただきました(Excel2000使用)。 ・一つ目 2行目を選択する場合 ⇒ rows(2).select 2行目から5行目までを選択する場合 ⇒ rows("2:5").select ☆☆質問☆☆ 一つの行を選択する場合は引数を("")で囲わないのに、複数行では引数を""で囲わないといけないのか? ・2つ目 2行目から5行目までを選択する場合 ⇒ rows("2:5").select 2列目から5列目を選択する場合 ⇒ range(columns(2),columns(5)).select ☆☆質問☆☆ なぜ複数列を選択する場合、columns("2:5").selectでは実行時エラーとなるのか? 素人にも理解できるような回答をお願いいたします。

  • エクセルVBAの貼付けについて

    エクセルVBAの貼付けについて シートAとBがあって、シートBの1~7列をコピーし、シートAの最終行に貼り付ける方法を教えて下さい。 下記のように書いてみたのですがダメでした。 Sheets("B").Select Rows("1:7").Select Selection.Copy Sheets("A").Select With Range("A1").End(xlDown).Offset(1, 0) .ActiveSheet.Paste End With

  • Excel Vba でデータの範囲を知るには?

    Excelを使用していますが、マクロ(VBA)で、シートのデータの範囲を知るにはどうすればよいのでしょうか。  印刷プレビューを行うと、自動的にページ数が求めらていますが、これは、シートのデータの範囲(列及び行の最大値)を判別しているからできるのだと思います。  これを、VBAで行、及び列のMAX値を取得したいのですが、そのメソッド(プロパティ)を知りたいのです。  どなたかご教授ください。

  • EXECLマクロでshapeがグルーフ゜化されてるかどうかを調べる方法は?

    全shape中のテキストを処理したいので一旦図形のグループ化を解除したいのですが、ヘルプに出ている方法で全部をselectしungroupしようとするとエラーになってしまいます。 そこで、一つづつungroupしようと思います。グループ化されてないものにungroupしようとするとエラーとなるので、グループ化されているかどうかをチェックしたいのですが、方法が見つかりません。どなたかご存知でしょうか?

  • Excel VBA Columns.Group で実行エラー1004

    いつもお世話になっております Excel2007で以下のプルグラムで列のグループ化をしているのですが、エラーしてしまいますなぜでしょうか?Excel97なら上手くいくのですが・・・・・ <プログラム> Columns("G:I").Group 実行すると「実行エラー:1004」が出ます。 どなたかご教授願います

専門家に質問してみよう