
一定期間内の数量と価格をチェックするために
エクセルでマクロを組みましたが下記のエラーが出てしまいます。
実行時エラー ’1004’
Worksheet クラスのPivot tablesプロパティを取得できません
ソースは
'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"データ!R1C1:R1000C19").CreatePivotTable TableDestination:= _
"[価格.xls]ワーク1!R1:R65536", TableName:="ピボットテーブル1",
DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:=Array("商品CD",
_
"データ")
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("数量")
.Orientation = xlDataField
.Caption = "合計 / 数量"
.Position = 1
.Function = xlSum
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("単価")
.Orientation = xlDataField
.Caption = "最大値 / 単価"
.Function = xlMax
End With
Range("B1").Select
With ActiveSheet.PivotTables("ピボットテーブル1").DataPivotField
.Orientation = xlColumnField
.Position = 1
End With
End Sub
です。
ストップしているのは↓の部分と思われます。
ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:=Array("商品CD",
_
"データ")
どうすればエラーが回避できるでしょうか。
ご教授お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
>ストップしているのは↓の部分と思われます。
>
>ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:=Array("商品CD",
との事なので、おそらく『ActiveSheet』が曲者なのでしょう。
PivotTable作成時に、作成先である"ワーク1"がActiveになっていないのではないでしょうか?
"データ"シートと"ワーク1"シートは"価格.xls"ブック内にあるのですね?
その前提で、ActiveWorkbookやActiveSheetなど、
状況に依存するようなBookやSheetの指定を避けるとして、
With Workbooks("価格.xls").PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:="データ!R1C1:R1000C19")
With .CreatePivotTable(TableDestination:="ワーク1!R1C1", _
DefaultVersion:=xlPivotTableVersion10)
.AddFields RowFields:=Array("商品CD", "データ")
With .PivotFields("数量")
.Orientation = xlDataField
.Caption = "合計 / 数量"
.Function = xlSum
End With
With .PivotFields("単価")
.Orientation = xlDataField
.Caption = "最大値 / 単価"
.Function = xlMax
End With
With .DataPivotField
.Orientation = xlColumnField
.Position = 1
End With
End With
End With
...などとしてみてはどうでしょう。
また、データ元範囲は"データ!R1C1:R1000C19"...のように固定でよいのでしょうか?
可変範囲に対応させるなら
SourceData:=Sheets("データ").Range("A1").CurrentRegion
...などとするか、
毎回新規にPivotTableを作成し直すのではなく、
可変範囲の名前定義を使って、更新だけ行うようにする事も検討されてはいかがでしょう。
(参考)
http://oshiete1.goo.ne.jp/qa2097393.html
また、これは余計な事かもしれませんが、本題材であれば
http://oshiete1.goo.ne.jp/c232.html
Office系ソフトカテゴリのほうが良かったかもしれませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタライズとは、どういう意味...
-
UNIX時間をEXCEL上で日付・時間...
-
キャッシュとバッファの違いは?
-
CSVファイルを開いた時の0落ち
-
SQL Server にファイルを登録、...
-
型 varchar から型 numeric へ...
-
どういう専門学校へいくべきで...
-
SQLって何のためにあるのでしょ...
-
初心者です。Accessを使って、...
-
別のACCESSデータベースのテー...
-
【エクセル】自動保存先として...
-
JavaとOracle Javaって何が違う...
-
汎用カード型のデータベースソ...
-
CSEでDB接続しようとすると...
-
エクセルからアクセスにADO...
-
アクセスの日付/時刻型で標準...
-
データベースの最適化をマクロ...
-
マクロでデータベースの最適化...
-
ODBC経由の処理が遅い
-
AccessとSQL Serverの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタライズとは、どういう意味...
-
エクセルを取引先に渡したら何...
-
LVMでHDDが壊れた時の対応
-
SQL Server にファイルを登録、...
-
Access 外部データ インポー...
-
値がこの列の整合性制約に違反...
-
キャッシュとバッファの違いは?
-
C#でint型をIntPtr型に変換した...
-
AS400へAccessから接続す...
-
GerberデータからBmpデータへの...
-
エクセルから、パワーポイント...
-
自作Androidアプリのデータ引き...
-
vbaの場合 データの整形の必要...
-
外付けHDD
-
Thunderbirdのインポートの処理...
-
CSVファイルの重複チェック
-
EXCELの最大データ数
-
VBA 連続する名前ごとに集計
-
Perlで、「が」を、「...
-
アクセスでホームページのデー...
おすすめ情報