- 締切済み
ExcelVBA 外部データのピボットを更新したい
VBA初心者です。 アクティブなワークブックの非アクティブなシート3つにそれぞれひとつずつ計3つのピボットテーブルを作成しております。 ピボットテーブルはいずれも同じデータソースを利用しており、データソースは別のワークブックにあるテーブルです。 データソースが頻繁にデータが追加されるため、アクティブシートに設置したコマンドボタンからピボットテーブルのソースをまとめて更新したいと思うのですが、ワークブックとデータソースを収納するフォルダごと他者(Excelど素人)に渡すことがあるため、絶対パスを用いず、かつ「データソースに接続できません」というエラーを出さずにピボットテーブルを更新したいのですが… ActiveWorkbook.RefreshAll では、フォルダごとコピーしてコピー先のデータソースを更新しても別フォルダのはずのコピー元をいつまでも参照しており失敗 Sub Commandbutton1_Click() Dim DATA_SOURCE As Worksheet Dim DATA As String Dim wb As Workbook Dim PvtCache As PivotCache DATA = ThisWorkbook.Path & “¥データ.xlsx” wb = Workbooks(DATA) Set DATA_SOURCE = wb.Worksheets(“データ”) Set PvtCache = ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=DATA_SOURCE) End Sub これでどうだと自分なりに記述したものの全く作動せず。 頻繁にブックがフォルダごとコピーや移動されるので都度同フォルダ内のソースを取得して更新したいのですが、可能でしょうか? 教えていただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
お礼
回答ありがとうございます。 まさに>接続文字列をVBAで動的に書き換える ことができればいいなあと思っております。 「Excel何それ?美味しいの?」という人にも渡る予定なのでピボットのあるシートは隠して接続ウィザードに触らせないようにしたいのです… 何分初心者のためVBAでできるかできないかの判断すらつかず…無理難題申し訳ございません