• ベストアンサー

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

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

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

エラー番号の他にエラーの説明が出ると思うのですが、 それを提示した方が解決が早いでしょう。 因みに、シートの保護がかけてあると質問のエラーが出ます。 が、エラーメッセージにはその由書いてあるので分かるのですが。。。 以上です。  

liberty01
質問者

お礼

回答ありがとうございます。 助かりました。

liberty01
質問者

補足

回答No1の補足に書いたものがエラーの詳細です。(エラー説明は書いてません) エラー説明については今度からちゃんと書きますね>< シートの保護・・・・・・あ!ピポットテーブル作成してピポットテーブルのフィールド設定終わると保護みたいな感じなってたような!! 原因がわかりましたね^^ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

Excel 2007 で何のデーターもない状態で正常にグループ化されました。 Sub test() Columns("G:I").Group End Sub 参考までに。

liberty01
質問者

お礼

回答ありがとうございました。

liberty01
質問者

補足

確かにこれだけのコードで書いた場合は落ちませんでした>< っで、じゃあ自分が書いた奴はなんで落ちるんだ?って話になりさらに調べたところ。 Excelマクロ内でピポットテーブルを作る処理をしているのですが、どうもピポットテーブルを作成する処理の後にグループ化をすると落ちるようです。orz ~処理内容~ 'ピポットテーブルを作成 ActiveSheet.PivotTableWizard _ SorceType:=xlDatabase, _ SourceData:=strDataSpan, _ TableDestination:="", _ TableName:="Table" 'ピポットテーブルの設定 With ActiveSheet.PivotTables("Table")     '行フィールド追加     .AddFields RowFields:=Array("会社","社員")     '列フィールド追加     With .PivotFields("商品")        .Orientation = xlColumnsField        .Position = 1     End With     'データフィールド追加     With .PivotFields("売上")        .Orientation = xSataField        .Function = xlSum        .Position = 1     End With End With 'G~I行をグループ化 Columns("G:I").Group っと、上記のようなコードを書くとエラーします。。。。。原因がよくわからないのでピポットテーブル作成直後にグループ化したら落ちなくなりました! 一応これでOKってことで、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • Excel VBA 列 グループ化

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

  • Excel VBA 実行時エラー'1004':

     どちらの処理がより高速であるのかを調べるため、以下の2つのVBAを試作致しました。 Sub Macroコピペ乱数() 'コピペ乱数 Sheets("Sheet4").Select Range("A1:A99999").Formula = "=RAND()" Columns("A").Value = Columns("A").Value Range("B1").Select End Sub 及び Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range("A" & i).Value = Rnd Next i Range("B1").Select End Sub  処が、これらのVBAを実際に動作させ様としますと、どちらの場合においても「Microsoft Visual Basic」ダイアログボックスが開いて 「実行時エラー'1004': 'Range'メソッドは失敗しました:'_Global'オブジェクト」 と表示されてしまいます。  さりとて、 Sub Macroコピペ乱数() 'コピペ乱数 Sheets("Sheet4").Select ActiveSheet.Range("A1:A99999").Formula = "=RAND()" Columns("A").Value = Columns("A").Value Range("B1").Select End Sub 及び Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range("A" & i).Value = Rnd Next i Range("B1").Select End Sub 或いは Sub Macro繰り返し乱数() '繰り返し乱数 Dim i As Long Randomize Sheets("Sheet4").Select For i = 1 To 99999 Range(Cells(i, 1)).Value = Rnd Next i Range("B1").Select End Sub 等としましても、今度は 「実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。」 となってしまいます。  どの部分がどの様に悪いのでしょうか?  そして、どの様に修正すれば良いのでしょうか?  尚、使用しておりますExcelのバージョンはExcel2010です。

  • エクセル2002を2003で実行させたい。

    エクセル2003で作成したものを修正したのですが 実行できなかったので2002で試してみたら実行できました。 VBAにはあまり詳しくなのですが、列を左に3列ずらすという だけのものなのでプログラムの中の記述で  tugi = 3 + tuki の3をとり tugi = tuki としただけのものです。 2002では実行できるのですが、これを2003で実行させようとすると 「型が違います」とエラーがでてしまいます。 何かアドバイスがありましたら宜しくお願いします。

  • エクセルVBA 実行時エラーって出るんですけど・・・;;

    いつもお世話になってます またまた質問載せさせていただきます。 マクロで2つのファイルをSaveasで各保存をした後に、 エクセルを閉じると、 実行時エラー'1004' WorksheetクラスのSelectメソッドが失敗しました と出るのです。 デバックボタンもグレーのままなので、デバックは使えないし、そのまま終了をかけると、エクセル自体が閉じられるので、 さっぱり何がなにやらって感じなのです。 どなたか分かる方いらっしゃいますでしょうか??

  • エクセルVBAでエラーがでます。

    エクセルで以下のようなVBAをつくりましたが Columns("B:C").Select でエラーがでます。 初歩的なことですが教えてください。 Sub Macro3() ' ' Macro3 Macro Worksheets(1).Copy before:=Worksheets(1) Worksheets(1).Activate Columns("B:C").Select Selection.Delete Shift:=xlToLeft Columns("C:L").Select Selection.Delete Shift:=xlToLeft Columns("H:H").Select Columns("L:AA").Select Selection.Delete Shift:=xlToLeft End Sub

  • エクセルVBAのエラー

    お世話になります。 A列に2014/12/29のように日付がはいってます。 G2に=TEXT(SUBSTITUTE(RC[-6]," / ",""),"yyyymm")と 手入力すると問題なく20141229と表示されます。 しかし、 VBAでセルG2に Cells(2, 7) = "=TEXT(SUBSTITUTE(RC[-6]," / ",""),"yyyymm")" と入力して実行させようとすると、 コンパイルエラー 修正候補:ステートメントの最後 と表示されて実行できないのですが なぜでしょうか? 宜しくお願い致します。 バージョン2010です

  • EXCEL VBA VloopUPエラー

    お世話になります。 EXCEL VBAでVlookupを動かそうとしていますが、エラーが出てうまく動きません。 以下やりたいことと、エラーメッセジとなります。 【やりたいこと】 「生販在庫推移表」シートにある日付(Cells(1,j).Value)をキーにして、別シートの「日別商品別集計」(このシートの1列目は日付になっています)のある列(sno)の値を「生販在庫推移表」シートのあるセル(Cells(i,j).Value)に持ってきたいのです。 【エラーになっているロジック】 Worksheets("生販在庫推移表").Cells(i, j).Value = Application.WorksheetFunction.VLookup(Worksheets("生販在庫推移表").Cells(1, j).Value, Worksheets("日別商品別集計").Range("A1:BZ5000"), sno, False) 【エラーメッセージ】 実行時エラー'1004' WorksheetFunction クラスのVLookupプロパテイを取得できません。 どなたか良きアドバイスをご教授いただけますでしょうか。 よろしくお願い致します。

  • EXCEL VBA で実行時エラーが出ます。

    こんばんは。 エクセルのA列の1~40000行にhttp://www.google.co.jpへのリンクを設定する単純なコードですが、毎回65530行まで行くと「実行時エラー'1004'」が発生します。 (65530はInteger型の倍数に近いかと思いますが、どうなんでしょうか?) 環境はMacのブートキャンプでWindows10Home、Office365の最新版にアップデートしてあります。 よろしくお願いします。 Sub test() Dim i As Long For i = 1 To 80000 ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _ Address:="http://www.google.co.jp", _ TextToDisplay:="■" Next i MsgBox "完了" End Sub 通報する

  • 実行時エラー’13’ 型が一致しません VBA

    セルに以下の文字列が入っています。 A1=10(451 A2=452 そしてVBAにて、以下のプログラムを実行すると、「実行時エラー’13’ 型が一致しません」というエラーになってしまいました。 原因はA1に「( 」があるので文字列だからだと思うのですが、「IF 条件文」が成立しないことは満たすのでElse以下を実行されるのを期待していたのですが。 アドバイスをお願いします。 また、そもそも変数を宣言してないので「型が一致しない」というエラーの意味がわからないのですが。 If Cells(1, 1) - Cells(2, 1) = 1 Then Cells(3, 1) = 1 Else Cells(3, 1)="c" End If