0

ピボット テーブルの値を小数点を移動せずに "0.0%" 形式に変換したい (例: 1 --> 1%、100% ではない)。

使用しているコードは、VBA ピボット テーブル マクロで「実行時エラー '1004': ピボットテーブル レポートのこの部分を変更できません」というエラーを生成します。コードは次のとおりです。

Sub Cost_Pivot()
 NoOfOutputRows = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
 NoOfCols = Worksheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Sheet1!R1C1:R" & NoOfOutputRows & "C" & NoOfCols, Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Sheet2!R1C1", TableName:="PivotTable1", DefaultVersion _
 :=xlPivotTableVersion12
 Sheets("Sheet2").Select
 Cells(1, 1).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Metric")
 .Orientation = xlRowField
 .Position = 1
 End With
 With ActiveSheet.PivotTables("PivotTable1").PivotFields("CAM")
 .Orientation = xlRowField
 .Position = 2
 End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("CAM")
 .Orientation = xlColumnField
 .Position = 1
 End With
 ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1").PivotFields("Quantification"), "Sum of Quantification", xlSum
 Range("A2").Select
 ActiveSheet.PivotTables("PivotTable1").CompactLayoutRowHeader = "Metric"
 Range("B1").Select
 ActiveSheet.PivotTables("PivotTable1").CompactLayoutColumnHeader = "CAM"
ActiveSheet.PivotTables("PivotTable1").ColumnGrand = False
For Each ce In ActiveSheet.Range(Cells(1, 1), Cells(100, 100))
If IsNumeric(ce.Value) = True Then
ce.Value = ce.Value * 0.01
End If
Next ce
 With ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of Quantification")
 .NumberFormat = "0.0%"
 End With
End Sub

表示されるエラーは ce.Value = ce.Value * .01 にあります。ここでは、セル値を .01 で乗算してからパーセント数値形式に変換したいと考えています。計算値を作成しなければならないという記事を読んだですが、VBA関連の記事ではなく、マクロで計算値を作成する方法がわかりません。

より良い解決策はありますか?

4

1 に答える 1