• 締切済み

既存ワークシートにピボットテーブルを作成するマクロ

既存のワークシートにピボットテーブルを作成するマクロを登録したいのですが、どうもマクロ実行時には指定した既存シートを参照してくれません。 記録時には既存ワークシートのA1を指定しましたが、VBAで確認すると、TableDestination:=Range("A1")となっています。 恥ずかしながら、VBAは詳しくありません。 TableDestination:=Range("A1")が作成先の指定なのでしょうか? ワークシートに作成するにはどのように指定すればいいのでしょうか?

みんなの回答

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.2

こんにちは。 すいません。あまり、質問者の名前をみないもので・・・ >先日の「時間単価の計算方法」 ここで、この質問に関して答えると、 管理者から何か言われるかも?!です(^^; シリアル値といっても、それは数値にほかなりません。 1.0なら、1990年1月1日0:00、 2.0なら、1990年1月2日0:00、 1.5なら、1990年1月1日12:00・・・ なんて具合です。 0:00から24:00を0.0から1.0であらわしているのです。 ですので、日付の足し引きをすると、シリアル値の足し引きをしているのですから、1.5-1.0の場合は、0.5日になります。 時間単価を出す、ということは、何時間だったかが問題ですから、 シリアル値の足し引きの演算結果に24をかけると、 (0.5×24=12のように) 時間数になりますね。

参考URL:
http://www.moug.net/skillup/adpc/an017-1.htm
acc
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 参考URLを見て勉強します。ありがとうございました。

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.1

こんにちは。ピボットテーブルそのものは詳しくありませんが・・ >TableDestination:=Range("A1")が作成先の指定なのでしょうか? そのようです。 例えば、既存ワークシートをSheet3とした場合、 TableDestination:=Sheets("Sheet3").Range("A1") で、とりあえずうまくはいくようです。

acc
質問者

お礼

2002ponさん、先日に引き続きありがとうございます。 TableDestination:=("Sheet3!A1")まではやってみたのですが・・・あとちょっとが足りないようです。情けない・・・。やってみます! それと、先日の「時間単価の計算方法」のお礼で”シリアル値で1=24時間、ってことは1440をかけると分になるって事は理解できるんですが、どうしてシリアル値に24をかけるとできるんでしょう???”と投げかけておきながら、まちがって締め切ってしまいました。すいません。