おはようございます。
アクセスVBAを使用し作成しているのですが、ここ数
日悩んでしまっている事があります。ご教授頂ける
と幸いです。宜しくお願い致します。
<悩み・相談>
アクセス側からエクセルに出力させた際、オートにて、ピボットテーブルを作成しようと考えております。毎月のデータ件数が違う為(月毎にピボットテ
ーブル作成のセル範囲が変わります)、どのように
VBAを組めば良いのか悩んでいます。
今現状のVBは、下記の通りです。
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'受注データ(確定)'!R1C1:R7231C31").CreatePivotTable TableDestination:="", _
TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("ピボットテーブル1").PrintTitles = True
ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:=Array("処理区分名", _
"地区", "集計コード", "病院名", "データ"), ColumnFields:="大分類名", PageFields:=Array("担当グループ" _
, "集計地区", "担当者", "中分類")
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("本・個")
.Orientation = xlDataField
.Position = 1
End With
毎月のデータ件数が、7231で終われば良いのですが、毎月データ件数がランダムな為、上のVBでは使えないですよね??データ件数に関係なく、ピボットテーブルを自動で作成するには、どこをどのように変えたら宜しいでしょうか??
お手数ですが、ご教授頂けると幸いです。
No.4ベストアンサー
- 回答日時:
私は、少し、誤解していた部分があったのですが、最初にご質問で書かれたコードは、Excelの自動記録マクロのもので、これをAccessに利用できないか、という類の内容だと思います。
ActiveWorkBook は、Excel側のもので、Access 側のものではありません。ExcelのApplicationのオブジェクトとブックのオブジェクトを作って、それからコントロールさせます。
>アクセス側からエクセルに出力させた際、
Access のVBAのコードで、Excelを開けたり、データを出力するコードはおできになっているのですか?それを、教えていただきたいのですが。
そうでないのでしたら、Access からのコントロールは止めてしまって、そのまま、#1 さんのおっしゃるように、後は、Excel側に任せてしまう方法ぐらいしかないのですが。
もちろん、私のお教えした部分も生きます。
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 ---------------
この回答への補足
有難うございます。早速書き直してみました。
実行をしますと、実行時エラー1004「worksheetクラスのpivottableプロパティを取得できません」のエラーが出てしまいました。
デバッグをしてみたところ、下記構文でエラーになっているようです。
ActiveSheet.PivotTables("ピボットテーブル.PrintTitles = True
教えて頂いた構文の直ぐ下に記述しているのですが、何か問題があるのでしょうか?
お手数ですが、宜しくお願い致します。
No.2
- 回答日時:
変わるところは、以下だけですか?
'受注データ(確定)'!R1C1:R7231C31"
strDataRng = Worksheets("受注データ(確定)").Range("A1").CurrentRegion.Address(, , xlR1C1)
データソートには、"'受注データ!" & strDataRng
とでもすればよいのでは?
この回答への補足
有難うございます。
教えて頂いた部分を変更したいのですが、なにぶんVB初心者な者でして、どこをどのように変えたら良いのかが。。。先程私が書いたVBも。ほとんどエクセルから貼り付けたものでして、一体何の処理をしているのかが、さっぱりでして。。。
お手数でなければ、教えて頂きたいのですが。
No.1
- 回答日時:
アクセスVBAですべてさせようとするのも手ですが、
アクセスはエクセルのVBAを起動するだけで、
後はエクセルVBAにさせると言う手もあります。
エクセルでツール-マクロの記録で、
データの一番最後に位置づけるやり方を、
VBAにしてみると、ある程度類推できると思います。
きちんとVBAにしてくれない場合もあるので、
マクロのヘルプを見てみましょう。
この回答への補足
有難うございます。
私、正直VB初心者で、何がなんだか、さっぱり分からない状態でVBを書いています。先程のも、エクセルからそのまま貼り付けたものでして。。。
何をどのように処理したら良いのか、さっぱり??な状態です。
お手数でなければ、教えて頂きたいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) ピボットテーブルの表示変更の仕方 初心者なので、的外れな質問だったらすみません 受注日ごとに商品名と 1 2022/04/26 23:23
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) 2列のエクセルの表を変更したい 2 2022/06/30 10:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタライズとは、どういう意味...
-
SQL Server にファイルを登録、...
-
キャッシュとバッファの違いは?
-
Accessでタブ区切りのテキスト...
-
値がこの列の整合性制約に違反...
-
Access 外部データ インポー...
-
不動産情報の条件検索を作って...
-
ワードプレスの絶対パスについて
-
数字とテキストが入り混じるデ...
-
型 varchar から型 numeric へ...
-
Windows2000のOSのエディション...
-
ODBCを使わないでExcelへ連携
-
マクロでデータベースの最適化...
-
データベースの選定について 要...
-
CDの売上枚数を知りたいのですが
-
AccessとSQL Serverの違い
-
「データベースを設計する」←?
-
カンマ区切りで格納するカラム...
-
構文エラー:演算子がありませ...
-
「桐」の得手不得手
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュとバッファの違いは?
-
スタライズとは、どういう意味...
-
SQL Server にファイルを登録、...
-
Access 外部データ インポー...
-
値がこの列の整合性制約に違反...
-
LVMでHDDが壊れた時の対応
-
Thunderbirdのインポートの処理...
-
UNIX時間をEXCEL上で日付・時間...
-
VB.netのADOってなんですか?
-
CSVファイルの重複チェック
-
エクセルを取引先に渡したら何...
-
エクセルのマクロ
-
Perlで、「が」を、「...
-
VBでXMLデータをMS-ACCESS2000...
-
エクセルから、パワーポイント...
-
C#でint型をIntPtr型に変換した...
-
エクセルでのテプララベル作成
-
テクトロニクスのオシロスコー...
-
自作Androidアプリのデータ引き...
-
VBA 罫線について B列3行目から...
おすすめ情報