Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5807 / 13646 ツリー ←次へ | 前へ→

【48782】ピポットテーブルについて 07/5/8(火) 16:05 質問[未読]
【48783】Re:ピポットテーブルについて ウッシ 07/5/8(火) 16:17 発言[未読]
【48784】ありがとうございました 07/5/8(火) 16:27 お礼[未読]

【48782】ピポットテーブルについて
質問    - 07/5/8(火) 16:05 -

引用なし
パスワード
   こんにちは。早速ですが、ピポットテーブルの作成をマクロで記録しました。
そのコードは下記の通りなのですが、ピポットテーブルを作成する際に
元となるデータがこのマクロを記録したものと同じか少ない場合は問題ありませんが
それより大きくなると一部のデータが抜けた状態で集計していまいます。
これを回避する為に範囲を指定している部分(2行目の【勤怠!R4C1:R505C11】)に
変数を使えるようにしたいのですが、どのようにコードを書き換えればよいのでしょうか?

  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "勤怠!R4C1:R505C11").CreatePivotTable TableDestination:="", TableName:= _
    "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10
  ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
  ActiveSheet.Cells(3, 1).Select
  ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("nm", "データ" _
    ), PageFields:="部門"
  With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("401")
    .Orientation = xlDataField
    .Position = 1
  End With
  ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("502").Orientation = _
    xlDataField
  ActiveWorkbook.ShowPivotTableFieldList = True
  ActiveWorkbook.ShowPivotTableFieldList = False

以上、宜しくお願いします。

【48783】Re:ピポットテーブルについて
発言  ウッシ  - 07/5/8(火) 16:17 -

引用なし
パスワード
   こんにちは

オブジェクト変数を用意して、対象セル範囲をセットします。

  Dim sd As Range
  With Worksheets("勤怠")
    Set sd = .Range("A4", .Range("A65536").End(xlUp)).Resize(, 11)
  End With
  ActiveWorkbook.PivotCaches.Add( _
          SourceType:=xlDatabase, _
          SourceData:=sd) _
            .CreatePivotTable _
              TableDestination:="", _
              TableName:="ピボットテーブル2", _
              DefaultVersion:=xlPivotTableVersion10

他にもいくつか方法が有ります。

【48784】ありがとうございました
お礼    - 07/5/8(火) 16:27 -

引用なし
パスワード
   ウッシさん、早速の回答ありがとうございます。
マクロを一部置き換えをした結果、無事に動作しました。

どうもありがとうございました。

5807 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free