• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスVBAからエクセルの操作)

アクセスVBAからエクセルの操作

このQ&Aのポイント
  • アクセスVBAを使用してエクセルの操作方法について質問します。
  • エクセルへのデータ出力時に毎月のデータ件数が異なるため、VBAでピボットテーブルを自動作成する方法を教えてください。
  • 現在のVBAではデータ件数が固定なので使えません。どの部分を修正すればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

私は、少し、誤解していた部分があったのですが、最初にご質問で書かれたコードは、Excelの自動記録マクロのもので、これをAccessに利用できないか、という類の内容だと思います。 ActiveWorkBook は、Excel側のもので、Access 側のものではありません。ExcelのApplicationのオブジェクトとブックのオブジェクトを作って、それからコントロールさせます。 >アクセス側からエクセルに出力させた際、 Access のVBAのコードで、Excelを開けたり、データを出力するコードはおできになっているのですか?それを、教えていただきたいのですが。 そうでないのでしたら、Access からのコントロールは止めてしまって、そのまま、#1 さんのおっしゃるように、後は、Excel側に任せてしまう方法ぐらいしかないのですが。 もちろん、私のお教えした部分も生きます。

yoshi7292
質問者

お礼

大変参考になりました。有難うございました。 今後も色々と勉強していこうと思っております。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>ほとんどエクセルから貼り付けたものでして、一体何の処理をしているのかが、さっぱりでして。。。 それで、Access 側のモジュールに貼り付けて、とりあえず動いているのですか? そうでないなら、Access側で、ピボットテーブルを作ってしまったほうが早いのではありませんか? 内容的には、ほぼ同じでしょうから。 唐突に、 ActiveWorkbook.PivotCaches.Add.... と、出てきていますが、下記の場合は、一応、先の回答は、以下のように書き換えるのですが……。 '-------Sub ○○○ --------------- Dim strDataRng As String ・ ・ '(ワークブックがOpenされて) strDataRng = ActiveWorkbook.Worksheets("受注データ(確定)").Range("A1").CurrentRegion.Address(, , xlR1C1) ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'受注データ(確定)'!" & strDataRng).CreatePivotTable TableDestination:="", _   TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10   ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)   ActiveSheet.Cells(3, 1).Select ・ ・ '------End Sub ---------------

yoshi7292
質問者

補足

有難うございます。早速書き直してみました。 実行をしますと、実行時エラー1004「worksheetクラスのpivottableプロパティを取得できません」のエラーが出てしまいました。 デバッグをしてみたところ、下記構文でエラーになっているようです。 ActiveSheet.PivotTables("ピボットテーブル.PrintTitles = True 教えて頂いた構文の直ぐ下に記述しているのですが、何か問題があるのでしょうか? お手数ですが、宜しくお願い致します。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

変わるところは、以下だけですか? '受注データ(確定)'!R1C1:R7231C31" strDataRng = Worksheets("受注データ(確定)").Range("A1").CurrentRegion.Address(, , xlR1C1) データソートには、"'受注データ!" & strDataRng とでもすればよいのでは?

yoshi7292
質問者

補足

有難うございます。 教えて頂いた部分を変更したいのですが、なにぶんVB初心者な者でして、どこをどのように変えたら良いのかが。。。先程私が書いたVBも。ほとんどエクセルから貼り付けたものでして、一体何の処理をしているのかが、さっぱりでして。。。 お手数でなければ、教えて頂きたいのですが。

  • VT250F
  • ベストアンサー率30% (26/84)
回答No.1

アクセスVBAですべてさせようとするのも手ですが、 アクセスはエクセルのVBAを起動するだけで、 後はエクセルVBAにさせると言う手もあります。 エクセルでツール-マクロの記録で、 データの一番最後に位置づけるやり方を、 VBAにしてみると、ある程度類推できると思います。 きちんとVBAにしてくれない場合もあるので、 マクロのヘルプを見てみましょう。

yoshi7292
質問者

補足

有難うございます。 私、正直VB初心者で、何がなんだか、さっぱり分からない状態でVBを書いています。先程のも、エクセルからそのまま貼り付けたものでして。。。 何をどのように処理したら良いのか、さっぱり??な状態です。 お手数でなければ、教えて頂きたいのですが。。。

関連するQ&A