アプリ版:「スタンプのみでお礼する」機能のリリースについて

同一ブック内で同一データ範囲を基に、ピボットテーブルを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

A 回答 (2件)

こんにちは。



> .PivotTableWizard SourceType:=xlPivotTable, _
> SourceData:=ソースデータ元, _
> TableDestination:=テーブル定義, _
> TableName:="ピボットテーブル2"
> の所が着色され、マクロが停止してしまいました。
> 何が原因でしょうか.

中断したときに、
ソースデータ元、テーブル定義 にマウスのカーソルを当てて
参照が正しい文字列になっているか、
元の記録したコードの文字列と見比べて確認してみましょう。
正しいのなら、そのブックを開いていないのが原因と思われます。

また、"ピボットテーブル2"が重複していないか、確認してみましょう。
    • good
    • 0
この回答へのお礼

お答え有難うございます。
元の記録と見比べたところ誤りがありました。
修正してマクロを実行したところ完全に終了し、予定していたピボットテーブルの二つ目が出来上がりました。
素晴らしいことで、うれしい気持ちでいっぱいです。
本当に有難うございました。今後ともよろしくお願い致します。

お礼日時:2009/04/28 23:35

こんにちは。



> 実行時エラー"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
    • good
    • 0
この回答へのお礼

早速の回答有難うございます。
基礎を勉強せずに質問して失礼しています。
戴いたものを挿入して実行してみました。
ソースデータ元 = "[売上" & .Value & ".xls]得意先別!ピボットテーブル1"
テーブル定義 = "'[売上" & .Value & ".xls]商品別'!R3C2"
End With
With .Sheets("商品別")
ここまでは進みましたが、
.PivotTableWizard SourceType:=xlPivotTable, _
SourceData:=ソースデータ元, _
TableDestination:=テーブル定義, _
TableName:="ピボットテーブル2"
の所が着色され、マクロが停止してしまいました。
何が原因でしょうか.
教えていただけないでしょうか。

お礼日時:2009/04/28 19:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!