• ベストアンサー

ピボットテーブルを作成後、シートを削除するマクロ

いつもお世話になっております。 ピボットテーブルを作成するマクロを作ったのですが、このシートを削除するマクロが分からなく困っています。 ピボットテーブルは毎回作成しては削除するので、シートの名前が2,3,4と、どんどん大きくなっていって、シート名が固定化できないんです。 シート名に関わらず、ピボットテーブルを削除するマクロをご教示願います。

  • acmr
  • お礼率87% (84/96)

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

  • ベストアンサー
noname#176215
noname#176215
回答No.1

ピボットテーブルを 新規のシートに作成せず 特定のシート状に表示 させれば良いのでは? そのシートは シート非表示か 「xlSheetVeryHidden」に設定してお くかしておけば 特に問題ないように思いますが。

acmr
質問者

お礼

Chiquilin様ありがとうございます! そうですね!既存のシートに張り付ければよかったんですね! 解決しました! ありがとうございました!

その他の回答 (2)

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.3

単純ですが、Deleteで削除するのではダメなのでしょうか。 Dim shNme As String ※ピボットテーブル作成 shName = ActiveSheet.Name ※任意の処理 Application.DisplayAlerts = False Sheets(shName).Delete Application.DisplayAlerts = True

acmr
質問者

お礼

kigoshi様、早速ありがとうございます! こういう風なマクロで、任意のシート名でも特定できるんですね! 助かりました。 ありがとうございました。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

シート作成直後にシート名を付けることをお勧めします。 ActiveSheet.Name = "シート名"

acmr
質問者

お礼

keirika様、ありがとうございます! シート名をつけてしまえば、特定できますね! 助かりました!ありがとうございました!

関連するQ&A

  • ピボットテーブルをマクロで作成したい

    こんにちは。よろしくお願いします。 ピボットデーブルをマクロで作成したいのですが、条件がいくつかあり、それに沿ったものをどうすれば作成できるか教えていただきたいと思います。マクロは記録するものを使用する程度の初心者です。 <元データ> A B C D E 1 生徒 科目 期末1 期末2 期末3・・・ 2 花子 国語  20   30  50 ・・・ 3 花子 英語  40   10  60 ・・・ 4 花子 化学  10   20  50 ・・・ 5 太郎 国語  10   20  50 ・・・ 6 太郎 英語  40   30  50 ・・・ 7 太郎 化学  50   70  80 ・・・ ↓ ↓ <作成したいピボットテーブル>      期末1    期末2   期末3・・・     国語 英語 国語 英語 国語 英語・・・  花子 20  40  30   10  50  60 ・・・  太郎 10  40  20   30  50  50 ・・・ (1)既存の「結果」という名前のシートにピボットを作成したいです。 (2)期末1、期末2・・・のC列からのデータの列数は毎回違います。 (3)今回は国語、英語、化学のデータから国語と英語のデータを例にとりましたが、科目の種類も科目の数も毎回違います。生徒数も変わります。 別シート(シート名「結果」)のA列に、まとめる際に必要な科目名が入力されており、そことリンクさせてピボットを作成できたら、と思っています。(例 A1に国語 A2に英語と入力されていたら、上記の作成したいピボットテーブルのような形になる、というように) どなたかお力を貸していただけますでしょうか。 よろしくお願いします。

  • マクロでピボットテーブルを作成したい

    こんばんは。マクロの自動記録を使って、ピボットテーブルを作成したのですが、記録した時のシート名とデータ範囲で記録されてしまいます。アクティブシートのデータがある範囲をピボットテーブルにしたい時は、どうすれば良いでしょうか? 以下のコードが自動記録で作成したコードです。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "シート名!R1C1:R1000C30").CreatePivotTable TableDestination:= _ "", TableName:="ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品名 ") .Orientation = xlRowField .Position = 2 End With Range("A9").Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("数量 "), "データの個数 / 数量 ", xlCount With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ") .Orientation = xlPageField .Position = 1 End With Range("A1").Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ").Orientation = _ xlHidden With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("希望時期") .Orientation = xlColumnField .Position = 1 End With

  • マクロでピボットテーブルを行う方法

    マクロ初心者です。よろしくお願い致します。 マクロでピボットテーブルにて集計を行いたいと思っています。 コマンドボタン1発で以下の全ての動作を行いたいです。 ■動作詳細■ [OK]コマンドボタンで指定したファイルを開く。 [OK]集計しやすいようにファイル内のデータを加工。 [NG]指定して開いたファイル上でピボットテーブル集計ができない。 ■NG要因として■ 指定して開いたファイルのSheet1上のデータをピボットテーブル新規作成でSheet2に作成するので、集計する元のデータの場所(Sheet1)をマクロ上に記載する必要があると思うのですが、うまくいきませんでした。 どなたかお分かりになる方がいらっしゃいましたらご助言いただければと思います。よろしくお願いします。 ■作成マクロ■ ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "test01!C1:C8").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("コード") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("色") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("売上"), "データの個数 / 売上数量", xlCount 一度、作成したピボットテーブルのデータをマクロにコピーしてコマンドボタンにペーストしました。 それによって参照してあるセルの位置もズレてしまったのでしょうか? どこを直せばよいのか分からなくなってしまいました。 よろしくお願いいたします。

  • 既存ワークシートにピボットテーブルを作成するマクロ

    既存のワークシートにピボットテーブルを作成するマクロを登録したいのですが、どうもマクロ実行時には指定した既存シートを参照してくれません。 記録時には既存ワークシートのA1を指定しましたが、VBAで確認すると、TableDestination:=Range("A1")となっています。 恥ずかしながら、VBAは詳しくありません。 TableDestination:=Range("A1")が作成先の指定なのでしょうか? ワークシートに作成するにはどのように指定すればいいのでしょうか?

  • 同一シート内にあるピボットテーブルの更新ができない

    教えてください。 Excel 2010を使ってピボットテーブルを作成しています。 1つのシートに、別シートのデータソースから作成した、2つのピボットテーブルを作成しました。 作成自体はできたのですが、最初に作ったピボットテーブルの更新ができません。 どうすれば更新できるのでしょうか? 尚、2つ目に作成した方のピボットテーブルの更新はできました。 また、どちらのテーブルも、ピボットテーブルオプションから「従来のピボットテーブルレイアウトを使用する」にチェックを入れてある状態ですが、一応、このチェックをはずした上で更新してみましたが、ダメでした。

  • ピボットテーブル最終行から2行目に項目を入れて3行目から新しいピボットテーブルを貼り付けたい。

    エクセルのマクロで、ピボットテーブルを2つ作成しています。 それを集計表シートに貼り付けています。 「A1」に「ピボットテーブル1」の名前を入れて 1つ目のピボットテーブルの範囲が「A2:G10」の場合 11行目は空欄 「A12」に「ピボットテーブル2」の名前 「A13(:D20など)」ピボットテーブル2 というようにピボットテーブルを貼り付けていきたいのですが、 良い方法はありませんか? 現在は2つ目のピボットテーブルを「A25」に貼り付けるように 設定していますが、1つ目のピボットテーブルの大きさが毎回 変化するので、見た目がきれいではありません。 2つ目のピボットテーブルを貼り付ける部分のVBAを記入しておきます。 「貼り付け」シートのデータを元にピボットテーブルを作成しています。 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "貼り付け!R2C15:R300C19", Version:=xlPivotTableVersion12).CreatePivotTable _ TableDestination:="集計表!R25C1", TableName:="ピボットテーブル13", DefaultVersion _ :=xlPivotTableVersion12 Sheets("集計表").Select Cells(25, 1).Select

  • EXCELVBA シート毎にピボットテーブル処理

    お世話になります。 シートが複数(可変ですがだいたい10個ほど)あります。 sheet1~sheet10 左から2番目のシート(sheet2)から順に全シートの同じ場所に営業成績をしめす表があり、これを毎回ピボットテーブルで集計しています。 やりたいこと sheet1にボタンを作成して、クリックするとsheet2~sheet10(実際は可変です)までピボット集計を自動で実施したいのです。 ピボット集計は自分でマクロ記録したコードを埋め込みますので、sheet2~sheet10(実際は可変です)に自動でピボット集計する処理コードをご教授いただけませんでしょうか。 例) Sub ピボット() 全シートループ処理 "ピボット集計処理" i = i + 1 次シートへ End Sub どなたかお知恵をお借りできませんでしょうか。 よろしくお願い致します。 環境 EXCEL2013 Winbdows7

  • Excelマクロ ピボットテーブル シート名指定

    お世話になります。 マクロでピボットテーブルを作成しようと思い、一連の動作をマクロ記録しましたところ下記のコードが記録されました。動作は問題ないのですが、ピボットテーブルが作成されるシート名や場所が指定できません。 出来れば、ピボットテーブルを作成するシート名は"ピボット"にして一番右端に配置したいのですが下下記のコードのどこを直せば(または追加)よいのか、どなたかご教授いただけますでしょうか? ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R15C4").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("納品日").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("地区").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("納品日", "地区" _ ), ColumnFields:="商品" ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("出荷数量").Orientation = _ xlDataField ActiveWorkbook.ShowPivotTableFieldList = True よろしくお願い致します。 環境 Windows XP SP3 Excel2003

  • マクロでのピボットテーブルについて

    EXCELにてピボットテーブルから抜粋できる表を作ろうと考えています。 sheet1!$A$1 にはピボットテーブルがあり、そこから値を拾い、 x~yの範囲に表を作るマクロです。 変数1~3にはユーザーが指定する項目が入ります。 さらにピボットテーブルの場所を変数としたいのですが、上手く値を拾えません。 (変数にすると#REF!となります) Dim 場所 As String 場所 = "sheet1!$A$1" Worksheets("sheet2").select For x = h to i For y = j to k Cells(x, y) = Application.Evaluate("=getpivotdata(""個数"",場所,""フィールド1"",""" & 変数1 & """,""フィールド2"",""" & 変数2 & """,""フィールド3"",""" & 変数3 & """)") Next Next Cells(x, y) = Application.Evaluate("=getpivotdata(""個数"",sheet1!$A$1,[略] と、すると正しい値が拾えるのですが。 ピボットテーブルの場所を変数にしてもエラーにならないやり方をご教示いただけませんでしょうか。

  • マクロでピボットテーブル作成

    EXCEL2007を使っています。 シートに、データベースからの抽出データを貼り付けて、実行したら、 自動的にピポッドテーブルで特定の表を別シート(シート2)に出すといったものをマクロで作成したいと思います。 (VBAはまだよく分かりません) マクロでやってみると、どうしても下記の表記(この部分が全文黄色になる)のところで止まってしまいます。 何がまずいのでしょうか? ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R71C23", Version:=xlPivotTableVersion12).CreatePivotTable _ TableDestination:="Sheet2!R1C1", TableName:="ピボットテーブル1", DefaultVersion _ :=xlPivotTableVersion12 地味にVBAを勉強する意欲はありますが、これを理解するところにたどり着くまでまだしばらくかかりそうなので。 よろしくおねがいいたします。

専門家に質問してみよう