|
▼Kein さん:
ありがとうございました。
おかげさまでうまく処理ができました。
お手数ですが、もしよろしければ、ピボットテーブルについて
教えていただきたいのですが、
1.アクセスのクエリで抽出したデータをExcelに展開し、
ファイルを作成。>外部加工費のファイル名で保存。
2.外部加工費のファイルの外部加工費SheetをCopyして
3.加工費月報の"Access"Sheetに値で貼り付けた後、
4.ピボットテーブルを作成してこのデータを"加工_集計"Sheetに
値で貼り付けるようにしようと考え、以下のように
コマンドを記述したのですが、
実行時エラー'1004'
そのピボットテーブルのフィールド名は正しくありません。
----------
と表示されうまく動作しません。
お時間がございましたら教えてください。
Option Explicit
Dim データ As String 'データベースのシート名
Dim ピボット As String 'ピボットテーブルのシート名
Dim ブック名 As String 'このブックの名前
Private ソース As String 'ソースデータの範囲
Private テーブル先 As String 'ピボットテーブル作成先
Private テーブル名 As String 'ピボットテーブルの名前
Private 下端 As Integer '下端の行数
Sub KD01_Accessよりデータ作成()
'
' D01データ作成 Macro
' マクロ記録日 : 2007/4/11 ユーザー名 : FHaraguchi
'
'
Application.ScreenUpdating = False
Sheets("Access").Select
Cells.Select
Selection.Clear
Workbooks.Open Filename:="X:\_売上報告関連\外注加工集計.xls"
Cells.Select
Selection.Copy
Windows("01月加工費支払月報.xls").Activate
Sheets("Access").Select
Range("A1").PasteSpecial Paste:=xlValues
ピボットテーブルを作成する
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Sheets("加工_集計").Select
Cells.Select
Selection.Clear
Sheets("ピボット").Select
Cells.Select
Selection.Copy
Sheets("加工_集計").Select
Range("A1").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Rows("1:1").Select '1行目削除
Selection.Delete Shift:=xlUp
Windows("外注加工集計.xls").Activate
ActiveWindow.Close
Windows("01月加工費支払月報.xls").Activate
Sheets("メイン").Select
Range("H30").Select
Range("H30") = "外注加工費の取込が完了しました。"
End Sub
Private Sub ピボットテーブルを作成する()
ブック名 = ActiveWorkbook.Name 'このブックの名前
データ = "Access" '※2 データベースのシート名
ピボット = "ピボット"
Sheets(ピボット).Select
Cells.Select
Selection.Clear 'すべてクリア
Sheets(データ).Select
下端 = Range(Cells(1, 1), Cells(1, 1)).End(xlDown).Row '下端検出
Range("A1").Select
ソース = データ & "!R1C1:R" & 下端 '
テーブル先 = "[" & ブック名 & "]" & ピボット & "!R1C1"
テーブル名 = "加工費"
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
ソース, TableDestination:=テーブル先, TableName:=テーブル名
ActiveSheet.PivotTables(テーブル名).AddFields RowFields:="元請名", _
ColumnFields:="作業員1"
ActiveSheet.PivotTables(テーブル名).PivotFields("合計 の 合計の合計").Orientation _
= xlDataField
End Sub
|
|