• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ピボテ 作成と同時名前を指定する方法)

ピボットテーブルの作成と同時に名前を指定する方法

このQ&Aのポイント
  • エクセルVBAを使用して、ピボットテーブルの作成と同時に名前を指定する方法について教えてください。
  • 現在の方法では、ピボットテーブルを作成した後に個別に名前を指定する必要がありますが、作成と同時に名前を指定する方法を知りたいです。
  • 例えば、作成したピボットテーブルの名前を「test」とする方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>ピボットテーブルの作成と同時に >ピボットテーブルの名前を付ける方法はありますか? Set pvt = _ ActiveWorkbook.PivotCaches.Add( _ SourceType:=xlDatabase, _ SourceData:=rngData). _ CreatePivotTable(TableDestination:=Range("c3"), tablename:="test") とかで。 #言わずもがなですが、既にシート上にtestがあったらダメです。

KTAMQMYSMQ
質問者

お礼

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

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

関連するQ&A

  • EXCELマクロのピボットテーブル

    G列に名前、0列に点数があります。 ピボットテーブルで 名前, 平均/点数, 個数/点数 と横に表記したいのですが、 名前, 平均/点数,      個数/点数 と2行分かれて表記されます。 マクロは以下です。どこをどう変更したらよいでしょうか。 'ピボットテーブル作成 Dim pvt As PivotTable Dim rngData As Range Set rngData = ActiveSheet.Range("A1").CurrentRegion Sheets.Add Set pvt = _ ActiveWorkbook.PivotCaches.Add( _ SourceType:=xlDatabase, _ SourceData:=rngData). _ CreatePivotTable(TableDestination:=Range("A3")) With pvt .PivotFields("名前").Orientation = xlRowField .PivotFields("点数").Orientation = xlDataField pvt.DataFields(1).Function = xlAverage With pvt .PivotFields("名前").Orientation = xlRowField .PivotFields("点数").Orientation = xlDataField pvt.DataFields(1).Function = xlCount End With End With '

  • VBA : ピボットテーブルの作成

    下記の内容でマクロを記述しましたが、「Set pvt = ・・・」の時点で、「実行エラー '13' 型が一致しません」とエラーが生じてしまいます。 どの部分がいけないのでしょうか? よろしくお願い申し上げます。 ********************************************* Sub Macro1() Dim pvt As PivotTable Dim rngData As Range Dim shtName As String Dim mySht As Worksheet Sheets.Add 'シート名の変更 ActiveSheet.Name = "PVT123" For Each mySht In ActiveWorkbook.Worksheets shtName = mySht.Name If Left(shtName, 2) = "G-" Then mySht.Select Exit For End If Next '元データを変数に格納 lastRow = Cells(Rows.Count, 1).End(xlUp).Row lastClm = 1 Do Until Cells(1, lastClm).Value = "" lastClm = lastClm + 1 Loop lastClm = lastClm - 1 Set rngData = ActiveSheet.Range(Cells(1, 1), Cells(lastRow, lastClm)) 'ピボットテーブルの作成 Sheets("PVT777").Select Set pvt = _ ActiveWorkbook.PivotCaches.Add( _ SourceType:=xlDatabase, _ SourceData:=rngData). _ CreatePivotTable(TableDestination:=Range("A3")) ~以下省略~

  • ピボットテーブルの集計結果は「sheet1」に出力されます。集計結果を

    ピボットテーブルの集計結果は「sheet1」に出力されます。集計結果を繰り返し出力すると「sheet2」、「sheet3」・・・・と続きますが、集計結果を出力するたびに同じシートに上書きしてすることはできないでしょうか? これをVBAで行いたいのでコードを教えていただけると幸いです。 ちなみに、以下のコードをWEBで見つけシートモジュールに置きましたが、上手く動きませんでた。 '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 '------------------------------------------------- 私の書いたピボットテーブルの標準モジュールは以下になります。 Sub 廃止部品と使用製品一覧作成(ByVal Arg) ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "対象一覧!" & Arg).CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:=Array("EAB品番", _ "SEB品番", "使用製品名", "生産場所"), ColumnFields:=Array("メーカー名", "メーカー品名") ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("使用数").Orientation = _ xlDataField End Sub 私のコードが悪くWEBで見つけたコードが動かないのか分かりませんが、ピボットテーブルの出力結果を常に同じシートに上書きするコードが知りたいです。 よろしくお願い致します。

  • 「更新時に列幅を自動調整する」のチェックを外すには

    VBAでピボットテーブルの「更新時に列幅を自動調整する」のチェックを外すには? シートに複数のピボットテーブルがあります。 そのすべてのピボットテーブルの「更新時に列幅を自動調整する」のチェックを外す書類をしたいのですが、コードがわかりません。 Sub Sample() Dim i As Integer Dim strPvt As String For i = 1 To ActiveSheet.PivotTables.Count strPvt = ActiveSheet.PivotTables.Item(i).Name 'ここで、 「更新時に列幅を自動調整する」のチェックを外す処理をしたい Next End Sub まで作りました。 よろしくお願いします。

  • マクロを利用してピポットテーブルを作成する方法を教えてください

    マクロを利用してピポットテーブルを作成する方法を教えてください。 仕事を効率化するために必要となりますが、マクロの知識がないため教えていただけないでしょうか。よろしくお願いします。 ピポットのデータとなりますエクセルの表は日付、金額、摘要の3列で行がその都度異なります。 日付    金額    摘要  月 日  ××円   ××  月 日  ××円   ×× 自動記録を利用し、作成しましたものは下記の通りです。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "科目!R1C1:R30C3").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="摘要", _ ColumnFields:="日付" ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("金額").Orientation = _ xlDataField Application.CommandBars("PivotTable").Visible = False Range("B4").Select Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _ False, True, False, True) End Sub どこをどのように変更すればよろしいでしょうか。

  • 変数にするとエラーになる理由は?

    エクセル2007のピボットテーブルをvbaで操作しています。 vbaの仕組みについて分からないので教えてください。 ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("年").PivotItems("2008").ShowDetail = True だとエラーにならずにピボットテーブルが開かれるのに Dim intYear As Long intYear = 2008 ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("年").PivotItems(intYear).ShowDetail = True だとエラーになってしまいます。 エラー内容は 実行時エラー '1004': PivotTableクラスのPivotFieldsプロパティを取得できません。 です。 変数にするとエラーになる理由は何でしょうか?

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

    こんばんは。マクロの自動記録を使って、ピボットテーブルを作成したのですが、記録した時のシート名とデータ範囲で記録されてしまいます。アクティブシートのデータがある範囲をピボットテーブルにしたい時は、どうすれば良いでしょうか? 以下のコードが自動記録で作成したコードです。 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

  • EXCELマクロ ピボットテーブルで平均値

     A列~O列にデータがあって、G列に名前、O列に点数が入力されています。列数は変化しませんが、行数が変化します。  可変する行数で、名前別の平均値をマクロで出すにはどうすればよいですか?  ネット検索の結果、以下のマクロで合計は出るのですが、平均値が出せません。  CreatePivotTable(TableDestination:=Range("A3"))のA3の意味も教えていただけないでしょうか。  よろしくお願いします。  Sub Macro1() Dim pvt As PivotTable Dim rngData As Range Set rngData = ActiveSheet.Range("A1").CurrentRegion Sheets.Add Set pvt = _ ActiveWorkbook.PivotCaches.Add( _ SourceType:=xlDatabase, _ SourceData:=rngData). _ CreatePivotTable(TableDestination:=Range("A3")) With pvt .PivotFields("名前").Orientation = xlRowField .PivotFields("点数").Orientation = xlDataField End With  

  • マクロ実行時にエラーが出てしまいます

    マクロを記録し、それを実行しようとしたのですが、途中で下記のようなエラーが出てしまいます。 実行時エラー '1004': PivotTableクラスのPivotFieldsプロパティを取得できません。 黄色い矢印がとまっているのは下記の箇所です。 →With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("送付先")← 自分なりに調べてみたのですが、選択範囲("E2:E1288"等の箇所)が違うデータでマクロを実行するとエラーになるのだと思っているのですが、選択範囲が毎回変わるのに対応できるコードの変更の仕方が分かりません。 もしよろしければ、アドバイスを頂けませんでしょうか。 コードの全体は下記になります。 Sheets("本体").Select Range("E1").Select ActiveCell.FormulaR1C1 = "品目分け" Range("E2").Select ActiveCell.FormulaR1C1 = "=LEFT(RC[-2],1)" Range("E2").Select Selection.AutoFill Destination:=Range("E2:E1288") Range("E2:E1288").Select Sheets("計算結果").Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,SourceData:= _ "本体!C1:C5").CreatePivotTable TableDestination:="[計算用.xls]計算結果!R3C1", _ TableName:="ピボットテーブル", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTables("ピボットテーブル").ColumnGrand = False With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("送付先") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("品目分け") .Orientation = xlColumnField .Position = 1 End With Range("E4").Select ActiveSheet.PivotTables("ピボットテーブル").AddDataField ActiveSheet.PivotTables( _"ピボットテーブル").PivotFields("数量"), "データの個数 / 数量", xlCount ActiveSheet.PivotTables("ピボットテーブル").PivotFields("データの個数/ 数量").Function = _xlSum With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("品目分け") .PivotItems("(空白)").Visible = False End With Range("A1").Select End Sub

  • マクロ実行時にエラーが出てしまいます

    マクロを記録し、それを実行しようとしたのですが、途中で下記のようなエラーが出てしまいます。 実行時エラー '1004': PivotTableクラスのPivotFieldsプロパティを取得できません。 黄色い矢印がとまっているのは下記の箇所です。 →With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("送付先")← 自分なりに調べてみたのですが、選択範囲("E2:E1288"等の箇所)が違うデータでマクロを実行するとエラーになるのだと思っているのですが、選択範囲が毎回変わるのに対応できるコードの変更の仕方が分かりません。 もしよろしければ、アドバイスを頂けませんでしょうか。 コードの全体は下記になります。 Sheets("本体").Select Range("E1").Select ActiveCell.FormulaR1C1 = "品目分け" Range("E2").Select ActiveCell.FormulaR1C1 = "=LEFT(RC[-2],1)" Range("E2").Select Selection.AutoFill Destination:=Range("E2:E1288") Range("E2:E1288").Select Sheets("計算結果").Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,SourceData:= _ "本体!C1:C5").CreatePivotTable TableDestination:="[計算用.xls]計算結果!R3C1", _ TableName:="ピボットテーブル", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTables("ピボットテーブル").ColumnGrand = False With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("送付先") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("品目分け") .Orientation = xlColumnField .Position = 1 End With Range("E4").Select ActiveSheet.PivotTables("ピボットテーブル").AddDataField ActiveSheet.PivotTables( _"ピボットテーブル").PivotFields("数量"), "データの個数 / 数量", xlCount ActiveSheet.PivotTables("ピボットテーブル").PivotFields("データの個数/ 数量").Function = _xlSum With ActiveSheet.PivotTables("ピボットテーブル").PivotFields("品目分け") .PivotItems("(空白)").Visible = False End With Range("A1").Select End Sub

専門家に質問してみよう