
Excelのマクロのを使って、売上表から、マクロで、ピボットテーブルを起動して、月別売上表を自動作成したいですが、可能でしょうか?
可能でしたら、マクロのコードをどのように書けばよいか、ご教授をお願いいたします。
想定している操作は次のようです。
1. ピボットテーブルに読み込むデータの範囲は、マクロ起動前に、関数を使ってデータの件数を検出して、たとえば、売上表のセル”E1”に与え、表示しておく。
2. 写真の例では、読み込み開始位置のセルは”B3”、終了位置は”D21”をl売上表”E1”に与え、表示しておく。
3. ピボット作成マクロを起動して、ピボットテーブルを起動させて、テーブル読み込み範囲が設定してあるセル”E1”を参照して、範囲情報を取得する(B3:D21)。
4. ピボットに、ラベルを月別と金額をマクロで指定する。
5. これらにより、「月別表」というシートに、ピボットテーブルの表が表示され完成する。
よろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
あなたが提示したマクロをみると、
提示されているレイアウトと実際のレイアウトが異なるように見えます。
(なぜ、F5:H30なのかが意味不明)
提示されているレイアウトが正しいとして、以下のようにしてください。
①売上明細表のシート名:売上表 とします。
②作成するピボットテーブルのシート名:売上0 とします。
(空のシートを作成して、シート名を"売上0"に設定しておいてください)
③売上表のセルE1にB2:D21となるように設定しておいてください。
(範囲は見出しも含めます。B3:D21ではなくB2:D21であることに注意してください)
④以下のマクロを標準モジュールに登録し、実行してください。
Public Sub ピボット作成()
Dim ws As Worksheet
Dim ps As Worksheet
Dim rg As Range
Set ws = Worksheets("売上表")
Set ps = Worksheets("月別0")
Set rg = ws.Range(ws.Range("E1").Value)
' ピボットキャッシュ作成 → ピボットテーブル作成
ThisWorkbook.PivotCaches.Create(xlDatabase, rg).CreatePivotTable ps.Range("A3"), "ピボット1"
' フィールドを設定
With ps.PivotTables("ピボット1")
.PivotFields("月別").Orientation = xlRowField
.PivotFields("金額").Orientation = xlDataField
End With
End Sub
添付図のようなピボットテーブルが作成されます。
左側が売上表、右側が月別0になります。

No.1
- 回答日時:
こんばんは
ご質問内容がよくわかりませんけれど、「ピボットテーブルを作成するマクロを作りたい」ってことだと解釈しました。
もしそうであるなら、ほとんど「マクロの記録」で作成可能です。
上記の「ほとんど」以外の部分というのは、
・対象セル範囲の設定
・ピボットテーブルを作成するセル位置
ぐらいですが、後者はいつも同じなのなら、固定値で良いので変える必要はないですね。
一旦、(例えば、ご提示のB3:D21)の範囲でマクロを作成しておいて、後で範囲だけを、ご質問文にあるように変更可能なように修正すれば良いでしょう。
「E1セルの値」というのがどのような形式なのか不明ですが、値を参照するには
Worksheets("データのあるシート名").Range("E1").Value
で取得できますので、その値からセル範囲を作成して上記の記録の「セル範囲」部分に置換えればよいでしょう。
セル範囲の部分は文字列で指定されていると思いますので、簡単な文字列操作を勉強すれば難しいことはないだろうと想像します。
早速、ご回答ありがとうございます。
ご指摘のとおり、「マクロの記録」を使って、ピボット表は一旦完成しました。
その後、マクロを実行しましたが、下記エラーとなり、実行できませんでした。
エラーを解決をご教授お願いします。
Range("F5:H30").Select
Application.CutCopyMode = False
Sheets.Add
<ここからエラー>
ActiveWorkbook.Worksheets("月別0").PivotTables("ピボットテーブル2").PivotCache. _
CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1", _
DefaultVersion:=8
<ここまでエラー>
なお、下記のご指摘は、分からないために何もしておりません。
・対象セル範囲の設定
・ピボットテーブルを作成のセル位置
マクロ知識乏しくよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 2 2024/06/14 16:38
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/13 13:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2024/07/01 09:07
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/11/09 11:51
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/02 16:12
- Visual Basic(VBA) エクセルのVBAコードについて教えてください。 6 2024/06/28 11:33
このQ&Aを見た人はこんなQ&Aも見ています
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
はじめての旅行はどこに行きましたか?
記憶の中で1番昔の旅行先とエピソードを教えてください。
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
Visual Basic(VBA)
-
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
-
4
エクセルVBAで特定のセルの値をコメントに置き換えることについて A1のセルに入っている値(文字)を
Visual Basic(VBA)
-
5
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
6
エクセルのブック名の付け方
Excel(エクセル)
-
7
VBA 同じフォルダ内のすべてのファイルに同じセルをペーストしたい
Visual Basic(VBA)
-
8
エクセルVBAのブックを開く方法 例えば [20241001] [20241002] [202410
Visual Basic(VBA)
-
9
VBAの「To」という語句について
Visual Basic(VBA)
-
10
エクセルVBA 段落番号自動取得方法
Visual Basic(VBA)
-
11
VBAの質問(Msgboxについて)です
Visual Basic(VBA)
-
12
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
13
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
14
VBAでエクセルのテキストデータをクリップボードに格納したい。
Visual Basic(VBA)
-
15
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
16
python03について。
その他(プログラミング・Web制作)
-
17
paiza python03 ランクC獲得
その他(プログラミング・Web制作)
-
18
Excelの関数について このように、Iの個数に基づいて、 それの合計を、Dに表示させたいです。 下
Excel(エクセル)
-
19
VBA 入力箇所指定方法
Visual Basic(VBA)
-
20
【VBA】値を変更しながら連続でPDFを作成し,それらに印刷設定をした状態で結合するコード
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】値を変更しながら...
-
(EXCEL超初心者)EXCELの関数(ま...
-
【マクロ】モジュール変数の記...
-
VBAでFOR NEXT分を Application...
-
[VB.net] ボタン(Flat)のEnable...
-
マクロVBAについて、コードを教...
-
Excelマクロで使うVBAコードを...
-
Vba FileSystemObject オブジェ...
-
VBAの質問(Msgboxについて)です
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
VBAでユーザーフォームを指定回...
-
VBA ユーザーフォーム ボタンク...
-
エクセルVBA 段落番号自動取得方法
-
VBAについてです。 どなたかご...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
現在のブックを閉じないで、マ...
-
算術演算子「¥」の意味について
-
VBAの「To」という語句について
-
以下のプログラムの実行結果は...
-
マクロVBAです。 どなたかコー...
-
VBAでFOR NEXT分を Application...
-
VBAについてです。 どなたかご...
-
質問58753 このコードでうまく...
-
ダブルクリックで貼り付けた画...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelのマクロについて教えてく...
-
エクセルVBA 段落番号自動取得方法
-
えくせるのVBAコードについて教...
-
ExcelのVBAコードについて教え...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】モジュール変数の記...
-
Vba FileSystemObject オブジェ...
-
Vba WorkBooks.Openについて教...
おすすめ情報