
A列~O列にデータがあって、G列に名前、O列に点数が入力されています。列数は変化しませんが、行数が変化します。
可変する行数で、名前別の平均値をマクロで出すにはどうすればよいですか?
ネット検索の結果、以下のマクロで合計は出るのですが、平均値が出せません。
CreatePivotTable(TableDestination:=Range("A3"))のA3の意味も教えていただけないでしょうか。
よろしくお願いします。
Sub Macro1()
Dim pvt As PivotTable
Dim rngData As Range
Set rngData = ActiveSheet.Range("A1").CurrentRegion
Sheets.Add
Set pvt = _
ActiveWorkbook.PivotCaches.Add( _
SourceType:=xlDatabase, _
SourceData:=rngData). _
CreatePivotTable(TableDestination:=Range("A3"))
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
End With
No.2
- 回答日時:
こちらとしてもすっきり解決さっさと終わりたいところですが、ご質問は?
>試行錯誤で最初の記述になりました。
>これでよいものかどうか?
いま動いてるのでしたら、それでいいですけど? 何がどのように上手く動かないのですか?
補足のご質問でいま何が聞きたいのかも、いま現在の最新の状況も、いずれも不明瞭で、もうしわけありませんが「回答」できません。
この回答への補足
御迷惑をお掛けします。
(1)
.......
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
pvt.PivotFields("合計 / 点数").Function = xlAverage
pvt.PivotFields("合計 / 点数").Caption = "平均点数"
End With
の場合、
実行時エラー1004
PivotTableクラスのPivotFieldsプロパティを取得できません。
エラー部→ pvt.PivotFields("合計 / 点数").Caption = "平均点数"
(2)
.......
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
pvt.pivotfields(1).function = xlaverage
End With
End Sub
の場合、
実行時エラー1004
PivotFieldsクラスのFunctionプロパティを設定できません。
エラー部→ pvt.PivotFields(1).Function = xlAverage
となります。
(2)で進めたいので、(2)のみで結構です。御教示お願いします。
No.1
- 回答日時:
>With pvt
>.PivotFields("名前").Orientation = xlRowField
>.PivotFields("点数").Orientation = xlDataField
>End With
この部分で、作成したピボットテーブルレポートの具体的な中身を操作しています。
ご相談のマクロでわざわざ消して掲示された範囲で他に何か違う事をしているかもしれないので、回答のマクロそのままでは動かない可能性があることに留意してください。
ケース1:
ふつーピボットテーブルレポートで、点数をデータに配置すると「"合計 / 点数"」という名前が自動的に付きます。
これを(マクロで・手動で)「変更していない」場合は
pvt.pivotfields("合計 / 点数").function = xlaverage
pvt.pivotfields("合計 / 点数").caption = "平均点数"
のように設定すればOKです。
ケース2:
作成したピボットテーブルレポートのデータ領域に「点数」だけしか配置していない場合
pvt.pivotfields(1).function = xlaverage
のように指定する事もできます。
>A3の意味も教えて
これは割と見た目通りです。マクロでは新しいシートを挿入し、そこに目的のピボットテーブルレポートを作成しています
そのレポートをA3から配置するという意味です。
#補足
実際のピボットテーブルの作成では、レポートフィルタ(ページフィールド)がA1から配置されますが、レポート本体はA3に配置される扱いになります。
そこを無視して無理にA1から配置する事も可能は可能ですが、あまり行いません。
この回答への補足
御回答感謝致します。
・・・・・・・
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
pvt.PivotFields("合計 / 点数").Function = xlAverage
End With
End Sub
で作動しましたが、教えていただいた以下で、
・・・・・・・
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
pvt.pivotfields("合計 / 点数").function = xlaverage
pvt.pivotfields("合計 / 点数").caption = "平均点数"
End With
End Sub
しばらく作動していたのですが、別のパソコンでは作動しなくなり、試行錯誤で最初の記述になりました。
これでよいものかどうか?
個人的には、ケース2で作動させたいのですが、上手く行きません。(以下です)
・・・・・・・
With pvt
.PivotFields("名前").Orientation = xlRowField
.PivotFields("点数").Orientation = xlDataField
pvt.pivotfields(1).function = xlaverage
End With
End Sub
御教示頂けると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel マクロでShearePoint先の...
-
Excel_マクロ_現在開いているシ...
-
ExcelのVBAを使ってタイトル行...
-
ExcelのVBA。public変数の値が...
-
メッセージボックスのOKボタ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
エクセルで縦に並んだデータを...
-
Excelのセル値に基づいて図形の...
-
Excel マクロ VBA プロシー...
-
秀丸エディタ画面上からブラウ...
-
エクセルに張り付けた写真のフ...
-
今エクセルマクロを作っていて...
-
ソース内の行末に\\
-
エクセルマクロでワードの一ペ...
-
エクセルのマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報