Gizport
1 回答
0
Share (facebook)
188
view
全般

エクセル2010 ピボットテーブルをマクロで組むとエラー5が表示され...

エクセル2010 ピボットテーブルをマクロで組むとエラー5が表示されてしまいます。
どのように修正すればいいのかどなたか教えて下さい。
マクロ全文長くて入りきらないです。 エラー部
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"コピー先!R1C1:R15000C38", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1", DefaultVersion _
:=xlPivotTableVersion14

マクロ全文
Sub 変換()
'
' 変換 Macro
'

'
Selection.Copy
Sheets("コピー先").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("P:P").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("P1").Select
ActiveCell.FormulaR1C1 = "回線"
ActiveCell.Characters(1, 2).PhoneticCharacters = "カイセン"
Range("P2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-2]=""フレッツ"",RC[-1],INDEX(R2C[-1]:R15000C[-1],MAX(INDEX((R2C[-13]:R15000C[-13]=RC[-13])*(R2C[-2]:R15000C[-2]=""フレッツ"")*ROW(R1C[-13]:R14999C[-13]),))))"
Range("P2").Select
Selection.Copy
Range("P2:P15000").Select
ActiveSheet.Paste
Columns("R:R").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("R1").Select
ActiveCell.FormulaR1C1 = "オプション"
Range("R2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""",RC[-3],IF(RC[-1]=""出張設定サポート"",RC[9],RC[-1]))"
Range("R2").Select
Selection.Copy
Range("R2:R15000").Select
ActiveSheet.Paste
Columns("V:V").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("V1").Select
ActiveCell.FormulaR1C1 = "CB①"
Range("V2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""",MAX(INDEX((R2C3:R15000C3=RC[-19])*R2C21:R15000C21,)),RC[-1])"
Range("V2").Select
Selection.Copy
Range("V2:V15000").Select
ActiveSheet.Paste
Columns("Y:Y").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("Y1").Select
ActiveCell.FormulaR1C1 = "CB②"
Range("Y2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]="""",MAX(INDEX((R2C3:R15000C3=RC[-22])*R2C24:R15000C24,)),RC[-1])"
Range("Y2").Select
Selection.Copy
Range("Y2:Y15000").Select
ActiveSheet.Paste
Range("H2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "2120050"
Range("G1").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"コピー先!R1C1:R15000C38", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1", DefaultVersion _
:=xlPivotTableVersion14
Sheets("Sheet1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("前確日")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("後確日")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("申込管理ID")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("獲得部署")
.Orientation = xlRowField
.Position = 4
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("獲得部署責任者")
.Orientation = xlRowField
.Position = 5
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("営業担当者番号: 社員番号")
.Orientation = xlRowField
.Position = 6
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("営業担当者名")
.Orientation = xlRowField
.Position = 7
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("前確担当者番号: 社員番号")
.Orientation = xlRowField
.Position = 8
End With
With ActiveSheet.PivotTa
Yahoo!知恵袋 3718日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
修正というより、コード全体を整理する必要があると思います。長すぎてコードが追えません;;
ピボットテーブルの元となるデータと、作りたいピボットテーブルのスタイルを教えてください。
=======補足を読んで==============
コードを整理してみました。参考になればいいのですが…
A~D列を行ラベル、R列をデータにしました。
元データのシート名は「Sheet1」としています。定数で冒頭部分に宣言しているので、必要に応じて定数部分を変更すれば、このままでも使えます。
なにか希望と違う点があれば、また教えてください。
Sub PivTa()
'定数
Const sdName = "Sheet1" '←元データのシート名
Const sptName = "Pivot"
'変数
Dim PvT As PivotTable
Dim RngData As Range
Dim BT As Workbook
Dim Sd As Worksheet
Dim Spt As Worksheet
Dim I As Integer

'データ範囲を変数に格納
Set BT = ThisWorkbook
Set Sd = BT.Worksheets(sdName)
Set RngData = Sd.Range("A1").CurrentRegion

'ピボットテーブルを作成するシートを指定
On Error GoTo AftErr
Set Spt = BT.Worksheets(sptName)
AftErr:
If Spt Is Nothing Then Set Spt = BT.Sheets.Add(After:=Sd): _
Spt.Name = sptName

'ピボットテーブル作成
Spt.Cells.Delete
Do Until Spt.Cells(1, 1).Value = ""
Loop
Set PvT = _
BT.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=RngData, _
Version:=xlPivotTableVersion14). _
CreatePivotTable(tabledestination:=Range("A1"))

'フィールドの配置
With PvT
For I = 1 To 4
With .PivotFields(RngData.Cells(1, I).Value)
.Orientation = xlRowField
.Position = I
End With
Next I
.PivotFields(RngData.Range("R1").Value).Orientation = xlDataField
End With
End Sub
Yahoo!知恵袋 3703日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
28
Views
質問者が納得H264を使ったMP4にするとか、AVIならコーデックはDIVXを使うなどして下さい。 無圧縮のままでは動作も重いし容量も無駄に大きくなるだけです!
3620日前view28
全般
39
Views
質問者が納得修正というより、コード全体を整理する必要があると思います。長すぎてコードが追えません;; ピボットテーブルの元となるデータと、作りたいピボットテーブルのスタイルを教えてください。 =======補足を読んで============== コードを整理してみました。参考になればいいのですが… A~D列を行ラベル、R列をデータにしました。 元データのシート名は「Sheet1」としています。定数で冒頭部分に宣言しているので、必要に応じて定数部分を変更すれば、このままでも使えます。 なにか希望と違う点があれば、また教...
3718日前view39
全般
40
Views
質問者が納得リクエスト頂き、ありがとうございますぅ☆ さてさて、やっとスピーカー本体が、、、 http://audio-heritage.jp/DIATONE/diatoneds/ds-77hr.html 昔から、VictorやDIATONEはネットワークの造り込みが良い、外観やその他のスペックには表記されない部分も、手を抜かない、という定評が在りましたね。 コンデンサーの寿命は、、、、 これが、案外アテになりません、7/8年で、という場合も在りますが、コスト競争の物は別として、良いものは案外30年とかでも容量変...
3832日前view40
全般
50
Views
質問者が納得こんにちは、空のDVD-Rだけと言う事はドライブの故障かもしれませんけど一応コントロールパネル=>ハードウエアとサウンド=>自動再生=>DVDの項目が何に成ってるかを確認します、宜しければ規定の設定を保存すれば良いし他のソフトにも設定が出来ます。
4174日前view50
全般
60
Views
質問者が納得http://kamurai.itspy.com/nobunaga/PCnewbie.htm
4295日前view60

取扱説明書・マニュアル

7836view
http://www.fmi.co.jp/.../R-6VV_PD.pdf
32 ページ0.60 MB
もっと見る

関連製品のQ&A