同一ブック内で同一データ範囲を基に、ピボットテーブルを2つ作成する時、
2つ目のピボットテーブルの範囲選択の時、初めに作ったテーブルを利用する時の
表現の仕方を教えて下さい。
尚作られるブック名前は、あるセルに指定した名前の一部を読み込むものとします。
エクセル2000です。
初めに作ったピボットテーブルの名前は "ピボットテーブル1"です。
自動記録した結果は、ブック名を読み込まず "売上1-4"とした時下記(1)のようになりました。
(1)2つ目のテーブルを作る際の自動記録結果
Sheets("商品別").Select
ActiveSheet.PivotTableWizard SourceType:=xlPivotTable, SourceData:= _
"[売上1-4.xls]得意先別!ピボットテーブル1", TableDestination:= _
"'[売上1-4.xls]商品別'!R3C2", TableName:="ピボットテーブル2"
ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("得意先コード", _
"得意先", "データ"), ColumnFields:="売上月", PageFields:="商品名"
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("売上数量")
.Orientation = xlDataField
.Caption = "合計 : 売上数量"
.Position = 1
.Function = xlSum
End With
これをブック名を読み込んだかたちで下記(2)のように書いたところ
Set ソースデータ元 = "[売上" & Range("F1") & ".xls]得意先別!ピボットテーブル1"の所でとまって
実行時エラー"13" 型が一致しません とでてしまいました。
(2)読み込み型で作成
Sheets("商品別").Select
With ActiveWorkbook
With Sheets("操作") '操作というシートのセル "F1"にブックの名前の一部を示してある
Range("F1").Select
Set ソースデータ元 = "[売上" & Range("F1") & ".xls]得意先別!ピボットテーブル1"
Set テーブル定義 = "'[売上" & Range("F1") & ".xls]商品別'!R3C2"
End With
With .Range("B1").Select
.PivotTableWizard SourceType:=xlPivotTable, SourceData:=ソースデータ元, TableDestination:=テーブル定義, TableName:="ピボットテーブル2"
ActiveSheet.PivotTables("ピボットテーブル2").SmallGrid = False
ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("得意先コード", _
"得意先", "データ"), ColumnFields:="売上月", PageFields:="商品名"
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("売上数量")
.Orientation = xlDataField
.Caption = "合計 : 売上数量"
.Position = 1
.Function = xlSum
End With
End With
No.2ベストアンサー
- 回答日時:
こんにちは。
> .PivotTableWizard SourceType:=xlPivotTable, _
> SourceData:=ソースデータ元, _
> TableDestination:=テーブル定義, _
> TableName:="ピボットテーブル2"
> の所が着色され、マクロが停止してしまいました。
> 何が原因でしょうか.
中断したときに、
ソースデータ元、テーブル定義 にマウスのカーソルを当てて
参照が正しい文字列になっているか、
元の記録したコードの文字列と見比べて確認してみましょう。
正しいのなら、そのブックを開いていないのが原因と思われます。
また、"ピボットテーブル2"が重複していないか、確認してみましょう。
お答え有難うございます。
元の記録と見比べたところ誤りがありました。
修正してマクロを実行したところ完全に終了し、予定していたピボットテーブルの二つ目が出来上がりました。
素晴らしいことで、うれしい気持ちでいっぱいです。
本当に有難うございました。今後ともよろしくお願い致します。
No.1
- 回答日時:
こんにちは。
> 実行時エラー"13" 型が一致しません とでてしまいました。
Set ステートメントは、オブジェクトを参照するときに使います。
変数(ソースデータ元、テーブル定義)の右辺は、文字列なので
型が一致しませんとExcelに叱られます。
変数を使うときは、きちんと変数を宣言して使うといいと思います。
ご質問のコードを整理すると次のようになります。
がんばってください。
Dim ソースデータ元 As String
Dim テーブル定義 As String
With ActiveWorkbook
With .Sheets("操作").Range("F1")
ソースデータ元 = "[売上" & .Value & ".xls]得意先別!ピボットテーブル1"
テーブル定義 = "'[売上" & .Value & ".xls]商品別'!R3C2"
End With
With .Sheets("商品別")
.PivotTableWizard SourceType:=xlPivotTable, _
SourceData:=ソースデータ元, _
TableDestination:=テーブル定義, _
TableName:="ピボットテーブル2"
With .PivotTables("ピボットテーブル2")
.SmallGrid = False
.AddFields RowFields:=Array("得意先コード", "得意先", "データ"), _
ColumnFields:="売上月", PageFields:="商品名"
With .PivotFields("売上数量")
.Orientation = xlDataField
.Caption = "合計 : 売上数量"
.Position = 1
.Function = xlSum
End With
End With
End With
End With
早速の回答有難うございます。
基礎を勉強せずに質問して失礼しています。
戴いたものを挿入して実行してみました。
ソースデータ元 = "[売上" & .Value & ".xls]得意先別!ピボットテーブル1"
テーブル定義 = "'[売上" & .Value & ".xls]商品別'!R3C2"
End With
With .Sheets("商品別")
ここまでは進みましたが、
.PivotTableWizard SourceType:=xlPivotTable, _
SourceData:=ソースデータ元, _
TableDestination:=テーブル定義, _
TableName:="ピボットテーブル2"
の所が着色され、マクロが停止してしまいました。
何が原因でしょうか.
教えていただけないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ピボットテーブルの表示変更の仕方 初心者なので、的外れな質問だったらすみません 受注日ごとに商品名と 1 2022/04/26 23:23
- Excel(エクセル) excel ピポットテーブルの更新について 1 2022/05/13 16:12
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実績累計の求め方と意味を教え...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
ファイル書込みで一行もしくは...
-
SQL文で右から1文字だけ削除す...
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
レコードが存在しなかった場合
-
OracleのSQL*PLUSで、デー...
-
MERGE文を単体テーブルに対して...
-
GROUP BYを使ったSELECT文の総...
-
Access終了時の最適化が失敗?
-
JSPのNULLレコード表示について...
-
キーが同じを複数行を1行にま...
-
自己相関サブクエリと自己結合...
-
他のテーブルを参照した値はupd...
-
Order by句でバインド変数を使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実績累計の求め方と意味を教え...
-
エクセルの指定したシートにエ...
-
売上データに会社毎に請求番号...
-
Accessで月間売り上げ目標達成...
-
EXCELを使って顧客管理
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
SELECTの結果で同一行を複数回...
-
カレントレコードが無い事を判...
-
キーが同じを複数行を1行にま...
-
Access終了時の最適化が失敗?
-
Date型にNULLをセットしたい V...
-
レコードが存在しなかった場合
-
Excelでセルの書式設定を使用し...
おすすめ情報