- 締切済み
表をテーブルに変換するマクロ(Excel2007)
お世話になります。カテゴリ違いでしたらご指摘ください。 Excel2007で範囲A1:D8にテーブル書式を設定するマクロを作成し、作業中のブックに保存しました。 Sub テーブル書式() ' ' テーブル書式 Macro ' ' ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$8"), , xlYes).Name = _ "テーブル1" Range("テーブル1[#All]").Select ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleMedium21" End Sub このマクロを別シートで実行しようとすると「実行時エラー‘1004’RangeクラスのSelectメソッドが失敗しました。」と表示されます。 表を書式付きのテーブルに変換するとき自動的にテーブル名がつけられ、それが既に記述されているテーブル名と異なるため発生するエラーかと思うのですが、VBAの知識が乏しくどのように修正すればいいのか分からず困っております。 ブック内のどのシートでもMedium21の書式付きテーブルに変換できるようにするにはどうすればよいか教えてください。 補足要求などあればご指摘ください。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
Range("テーブル1")などとする場合は SheetまたはBookのNamesコレクションに『テーブル1』が登録されていないといけません ListObjects("テーブル1").Range.Select で選択できると思いますよ ただ Selectで選択する必要があるのでしょうか? ListObjects("テーブル1").TableStyle ="TableStyleMedium21" で変更可能なように思います ・・・
補足
redfox63様、遅い時間にもかかわらず早い回答をありがとうございます。 質問欄のコードは、Excel2007で「新しいマクロの記録」を行った後、VBEに書いてあったものをコピーしただけなのです。 自分で書いたわけではないのでどのように直せばよいのかわかりません。 (このカテゴリに質問したこと自体間違いかも知れません…(汗)) 「Sub テーブル書式()」から数えて何行目を書き換えればよいのか教えていただけますでしょうか。 よろしくお願いいたします。