Excel VBAで表組みしたらデバック発生
Excel VBAの初心者です。Windows Vistaで
Excel2007を使っています。
表をマクロの実行で作成したいと思っています。
何もないエクセルブックより
「開発」→「マクロの記録」→「相対参照」
→「表の作成」→「記録終了」→「相対参照で記録の解除」
→「エクセルマクロ有効ブックで保存」
ところがこのマクロ記録が入ったブックを再度立ち上げ、
表をオールクリアにし、マクロボタンより表作成を実行
させようとすると、次のエラーメッセージがでました。
『実行時エラー'9'
インデックスが有効範囲にありません。』
デバックからModule1をみると以下の記述となっていました。
Sub 表組み()
'
' 表組み Macro
'
'
ActiveCell.Range("A1:E5").Select
Selection.Copy
Windows("Book1").Activate
ActiveSheet.Paste
ActiveCell.Columns("A:A").EntireColumn.Select
ActiveCell.Rows("1:1").EntireRow.RowHeight = 11.25
ActiveCell.Rows("1:5").EntireRow.Select
Selection.RowHeight = 21.75
ActiveCell.Columns("A:A").EntireColumn.ColumnWidth = 14.88
ActiveCell.Offset(0, 4).Range("A1").Select
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
ActiveCell.Offset(1, -3).Range("A1:D4").Select
Selection.NumberFormatLocal = "#,##0_ "
ActiveCell.Select
ActiveCell.FormulaR1C1 = "78000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "102000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "9800"
ActiveCell.Offset(-2, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "65000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "204000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "500"
ActiveCell.Offset(-2, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "86000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "151000"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "10200"
ActiveCell.Offset(-2, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
ActiveCell.Offset(0, -3).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
ActiveCell.Offset(-4, -2).Range("A1:D1").Select
Selection.AutoFilter
End Sub
上から9行目(?)のWindows("Book1").Activateに
黄色い矢印が示され、また行全体が黄色く四角に
覆われていました。
おそらくこの記述に問題があると思いますが、
どんな記述に変えたらいいのか分かりません。
Excel VBAにお詳しい方ご教示願います。
なお、マクロで作成したい図を添付いたします。
参考にしていただければ幸いです。
お礼
わかりやすいコードを有難うございます。 おかげで無事に動きました。他に応用が出来て とても助かりました。 説明が上手く出来てなかったようで申し訳ありませんでした。