質問: true end sub 3. microsoft visual basicの画面を閉じる 4.ピボットテーブルのシートを表示し、集計セルをダブルクリック 5.別シートに結果が表示される(このときシートの数は、ピボットテーブルのシートと合わせて2つ以上ある必要があります) 6.もう一度、集計セルをダブルクリックすると古い方の集計結果シートが削除され、新しいシートが新規で作成されます。(結果的にシートは増えていかない) =======ここまで================================================================= 結局、シートが増え続けている結果となりました。 集計セルをダブルクリックして新規のシートに詳細データが表示される仕様みたいですが なるべくマクロを組まない方法があれば尚良いです。 宜しくお願い致します。
回答: マクロを組まないと無理です。 また、詳細データを表示するシートは常に1枚、という仕様で良いですか? それとも集計項目が違えば別シートに詳細データを表示する仕様でしょうか? 『詳細データを表示するシートは常に1枚、という仕様』の場合、 該当シートのシートモジュールに以下のコードを置きます。 'sheetmodule option explicit '------------------------------------------------- private sub worksheet_beforedoubleclick(byval target as range, _ cancel as boolean) if me.pivottables.count = 0 then exit sub dim r as range on error resume next set r = intersect(target, target.pivottable.databodyrange) on error goto 0 if not r is nothing then application.ontime now, me.codename & ".test1" set r = nothing end if end sub '------------------------------------------------- private sub test1() const sname = "pvtdetail" on error resume next application.displayalerts = false sheets(sname).delete application.displayalerts = true on error goto 0 activesheet.name = sname end sub '------------------------------------------------- 詳細データ表示用のシート名を予め決めておきます。 上の例では"pvtdetail"。 上書きというよりも、既存"pvtdetail"を削除して新規作成、という感じです。