Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4 / 13196 ツリー ←次へ | 前へ→

【80249】ExcelVBA 外部データのピボットをまとめて更新 VBA初心者 18/12/3(月) 6:20 質問[未読]
【80254】Re:ExcelVBA 外部データのピボットをまとめ... マナ 18/12/3(月) 19:52 発言[未読]
【80256】Re:ExcelVBA 外部データのピボットをまとめ... VBA初心者 18/12/3(月) 23:13 発言[未読]
【80258】Re:ExcelVBA 外部データのピボットをまとめ... マナ 18/12/4(火) 18:45 発言[未読]

【80249】ExcelVBA 外部データのピボットをまとめ...
質問  VBA初心者  - 18/12/3(月) 6:20 -

引用なし
パスワード
   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


これでどうだと自分なりに記述したものの全く作動せず。
頻繁にブックがフォルダごとコピーや移動されるので都度同フォルダ内のソースを取得して更新したいのですが、可能でしょうか?

教えていただければ幸いです。

【80254】Re:ExcelVBA 外部データのピボットをまと...
発言  マナ  - 18/12/3(月) 19:52 -

引用なし
パスワード
   ▼VBA初心者 さん:

フォルダごとコピーすれば、問題ないような気がしますが…
テーブル名で指定しているからでしょうか?

>都度同フォルダ内のソースを取得して更新したいのですが、可能でしょうか?

Sub test()
  Dim wb As Workbook
  Dim DATA_SOURCE As String
  Dim ws As Worksheet
  Dim pvt As PivotTable
  
  Set wb = Workbooks.Open(ThisWorkbook.Path & "\データ.xlsx")
  DATA_SOURCE = wb.Sheets("データ").Cells(1).CurrentRegion.Address(, , xlR1C1, True)

  For Each ws In ThisWorkbook.Worksheets
    For Each pvt In ws.PivotTables
      pvt.SourceData = DATA_SOURCE
    Next
  Next
  
  wb.Close False

End Sub

【80256】Re:ExcelVBA 外部データのピボットをまと...
発言  VBA初心者  - 18/12/3(月) 23:13 -

引用なし
パスワード
   ▼マナさん

返信ありがとうございます!
ただ…

>      pvt.SourceData = DATA_SOURCE

この部分で
実行時エラー ‘1004’:
アプリケーション定義またはオブジェクト定義のエラーです

と出てしまいます。
もうひと押しのような印象なので諦めきれません!

【80258】Re:ExcelVBA 外部データのピボットをまと...
発言  マナ  - 18/12/4(火) 18:45 -

引用なし
パスワード
   ▼VBA初心者 さん:

>もうひと押しのような印象なので諦めきれません!

こちらでは、原因がわかりませんが、
DATA_SOURCEは、期待通りのアドレスとなっていることは確認済みでしょうか。

4 / 13196 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free