[[20151209161339]] 『複数のピボットのデータソースを一度に変更したい』(みそみそ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数のピボットのデータソースを一度に変更したい』(みそみそ)

お世話になります。

ピボットが同シート内に複数あります。
データソースの変更を,この複数のピボットに一度にしたいのです。
Ctrlキーを押して複数選択しておいてから変更をしても,ひとつしか変更されていません。
複数同時にデータソースを変更する技を教えてください。
よろしくお願いいたします。

< 使用 Excel:Excel2003、使用 OS:Windows7 >


こんにちは

Sub test()

    Dim s As Worksheet
    Dim p As PivotTable

    Const 変更するデータソース名 = "テスト"  '例「テスト」

    Set s = Worksheets("Sheet1")
    On Error Resume Next
    For Each p In s.PivotTables
        p.ChangeConnection ActiveWorkbook. _
            Connections(変更するデータソース名)
    Next
    On Error GoTo 0
End Sub

とかではダメでしょうか?

(ウッシ) 2015/12/09(水) 16:46


素早い回答ありがとうございます。
し,しかし実は私はマクロが大の苦手で拒否反応が!
質問文にちゃんとその旨書いておけばよかったです。
まさかマクロ使わないといけない要求だったとは思いませんでした。
申し訳ございませんが,マクロ以外の方法を教えてください。
マクロでないと無理なのでしたら諦めます。
現在複数のピボットをひとつひとつ手作業で変更している状況です。
本当に申し訳ございません。
引き続きよろしくお願いいたします。
(みそみそ) 2015/12/09(水) 16:53

>引き続きよろしくお願いいたします。

引き続くものは何もないと思います。
既定の「更新」ボタンか、マクロ、それ以外にはアクセスできないはずです。

# なぜ、マクロをそんなに毛嫌いするのか分からない。
# どんだけ痛い目にあったの?

(γ) 2015/12/09(水) 22:17


>既定の「更新」ボタンか、マクロ、それ以外にはアクセスできないはずです。

そうなんですか。
このサイトでそう言って頂けると諦めがつきます。
地道にひとつひとつ変更します。

>どんだけ痛い目にあったの?

そう,あれは3年前の冬・・・長くなるのでやめておきます。

ご迷惑おかけして申し訳ございませんでした。
回答ありがとうございました。

(みそみそ) 2015/12/10(木) 08:46


 「データソースの変更」って具体的にどーいう作業のこと?
 外部データソース参照してるの?
 それとも単に他に同じブック内にある元表じゃなく、まったく別の表範囲を元データにするってこと?
 それとも今ある表の範囲が広がったからその範囲を広げてるってこと?

 元表の場所にデータを新しくペーストして、「すべて更新」したらだめかな?

 まったく別の場所の表を参照したいんだ、っていうならマクロになると思うよ。

(1111) 2015/12/10(木) 09:02


もしかして光明が?
データソース(元データ)は同ブック内にあります。

シート1にピボットが5個ぐらい並んでいます。
シート2に元データがあります。
こんなブックが数十個あります。

シート2の元データは毎年変わります。

年越しにブックをコピーし,シート2の元データを来年のデータに更新。
元データを範囲指定して「H28元データ」と名前を付けます。
シート1の複数のピボットはデータソースを変更して使い回しします。

ひとつのピボットをクリックし,データソースを「H28元データ」に変更し,更新をクリック。
これをピボットの数だけ繰り返している状況です。
まぁ,更新ボタンは後で一括でも良いですが。

このデータソースを変更する作業を,複数のピボットに同時に出来ないものかなぁと思って質問させて頂きました。

単純に,複数のピボットを選択してからデータソースを変更すれば済むのかと思っていたのですが,そんな簡単なものではないよと,こちらのサイトで説得して下されば私も諦めがつくのです。
マクロは蕁麻疹が出るので(嘘),それ以外の方法があれば教えて頂けたら幸いです。
よろしくお願いいたします。
(みそみそ) 2015/12/10(木) 09:35


 もしかしてこういうことなのかな。
http://www.relief.jp/itnote/archives/001821.php

 最初の質問でバージョンが2003になっていますが、「間違えた!」ということなら
http://www.relief.jp/itnote/archives/003820.php
(se_9) 2015/12/10(木) 10:00

ぐぅぅ,大変申し訳ございません。
実は今会社からなのですが(自宅にPC無し),セキュリティ上の閲覧制限がかかっており,せっかく貼って頂いたリンクを覗くことが不可能な状況です。
ブログや掲示板は弾かれてしまいます。
このサイトは校内全文検索から入ってなんとか騙し騙し利用出来ています。

重ね重ね申し訳ございませんが,なんとか文章で説明願えないでしょうか。
よろしくお願いいたします。

(みそみそ) 2015/12/10(木) 10:20


 んーと?

 > 年越しにブックをコピーし,シート2の元データを来年のデータに更新。 

 ということは、H27のデータは別ブックで保存されていて、コピー先のブックはH28の分だけ、だよね?
 なんで名前変更してる?
 名前変更しなければ、そのまま更新だけでいいんじゃないかな?

 元データという名前にでもしておいて範囲を可変に。
 参考:Excel豆知識さん
http://www11.plala.or.jp/koma_Excel/contents3/mame3030/mame303001.html#mame30-2

 ピボットツールバーに「すべて更新」ボタンを表示
http://www11.plala.or.jp/koma_Excel/contents6/mame6045/mame604506.html

 一回だけデータ範囲を元データにしないといけないけど(気にしないならH27元データのままでもいいと思う)、
 その後は元データの表を書き換えたら「すべて更新」ボタンを押せば更新されると思うけどどうかな?

 追記:上記ページも見れないなら、午後に説明するよ
(1111) 2015/12/10(木) 10:25

あ,今調べたら,ご指摘の通りエクセルのバージョンは2010でした。
古いブックを2003でずっと保存しているので勘違いしておりました。
申し訳ございません。
なんか謝ってばかりですね。
(みそみそ) 2015/12/10(木) 10:27

 [ピボットテーブルツール]
  −[オプション]タブ
   −[データ]グループ
    −[更新][▼]
     −[すべて更新]をクリックする

 でできるようです。
(se_9) 2015/12/10(木) 10:35

(1111)さんの貼っていただいたページは閲覧できました。
初心者向けの丁寧な説明で理解しやすかったです。
ありがとうございました。

一応,元データのデータ量可変は名前を利用することでクリア出来ております。
複数のピボットをまとめて更新する方法もなんとか大丈夫です。

知りたいのは,「データソースの変更を複数のピボットに一度にやりたい」という行為です。

元データの名前を「元データ」だけに出来れば楽なのですが,
ブックによっては元データのあるシートが複数あり,それぞれ年度が異なっているケースがあるのです。
(来年度,来々年度のデータがあったり。)
なので,名前に年度を付けねばならなかったりするのです。
よろしくお願いいたします。

いやしかし,このように数人の方から検討して頂けるのって新鮮で嬉しいです。
業務量が多くて頭の中がテンパっているので,代わりに問題点を整理して頂けて非常にありがたいです。

(みそみそ) 2015/12/10(木) 11:20


 2010なのか!じゃあさっきのページはびみょーに違う説明だったね。

 > 知りたいのは,「データソースの変更を複数のピボットに一度にやりたい」という行為です。 

 それに対しては答えが出ている。「マクロでないと無理」

 俺が提案しているのは
 「運用方法を変えることにより、「すべて更新」で更新できるようになるんじゃないか?」
 ということ。
 絶対に運用方法は変えずデータソースの変更じゃなきゃ駄目、というなら、以下は無視して。
  
  
  
 > ブックによっては元データのあるシートが複数あり,それぞれ年度が異なっているケースがあるのです。 

 年度が異なっているとしてもオリジナルの名前でありさえすれば、「来年度」でも「2年目」でもなんでもいいはず。
 かたくなに毎年使えない名前にしなきゃいけない理由があるように思えないので、上記では年度の名前じゃなく一般的な名前にするよう提案してみた。
  
  
 まあそれはそれとして。
 2010なら名前じゃなくてテーブルを使用する方法がある。
 テーブルも一度設定してしまえばそのテーブルに名前がつけられるし、変更も出来る。
 データが追加されれば自動的にテーブル範囲も広がるのでお奨め。
 なおかつ、テーブルのタイトル行の位置さえ変わらなければ、テーブル名を変更しても自動的にピボットの参照先のテーブル名も変更されるんだ。

 つまり、
1:テーブル「H27データ」でピボットを作成
2:「H27データ」のデータを変更、テーブル名も「H28データ」と変更する
3:ピボットで「すべて更新」
4:「H28データ」のデータでピボットが更新される

 という流れ。
 これでどうかな?

 あ、ファイル形式は出来れば2010用(.xlsx形式)に変換をお奨めしとく。

(1111) 2015/12/10(木) 13:56


>「マクロでないと無理」

はい。了解致しました。

>年度の名前じゃなく一般的な名前にするよう提案してみた。

私が根本的に求めているのはまさにそういう発想でして,同じ仕事を続けていると凝り固まってしまい,臨機応変な発想が出来ない状態に陥ってしまっています。
とても刺激になります。

「テーブル」というものを初めて使ってみました。
「名前」と違い,つけた名称が上書きされるのは嬉しい機能です。
「名前」だと古いものがどんどん溜まっていきますからねぇ。

しかし教えていただいた通りに試しに作ってみたんですが,
「更新」を押してもデータソースが自動的に更新されません。
「参照が正しくありません」というエラーメッセージが出ます。
ブックは2010で保存しなおしてあります。

まぁ,出来なくても仕方ないのですが,この「テーブル」という機能に興味がわきました。
色々いじってみようと思います。
(みそみそ) 2015/12/10(木) 14:38


 > ブックは2010で保存しなおしてあります。 
 一度ブックを閉じて開きなおしてからテーブル名の変更をしてみてくれ。
 その際、ブックを開いたときに、一番上のExcelのタイトルバーに
 「Book1.xlsx[互換モード] - Microsoft Excel」
 っていうふうに[互換モード]って表示がないか確認してからやってみてくれ。

(1111) 2015/12/10(木) 15:39


エクセル2010で保存し,閉じて,もう一度開き,トライしてみましたが,やはり同じ状況です。
タイトルバーに[互換モード]という単語はありません。

元表に「H27元テーブル」というテーブル名を付け,それを元に別シートにピボットを2つ作成。
元表のデータを若干変え,「H28元テーブル」というテーブル名を付ける。
この瞬間,最初の「H27元テーブル」というテーブル名は消滅。
ピボットをひとつクリックし更新。
「参照が正しくありません」のエラーメッセージ。

ピボットのデータソース変更を使えば普通に変更は出来ます。
でもそれだと「名前」を使っていた時と何も変わりません。

私の手から何か悪い電波でも出ている可能性も(ry

(みそみそ) 2015/12/10(木) 16:19


 わかった。
 2010への変換を「名前を付けて保存」しなかった?

 もう一度2003形式を開いて、ファイルタブから情報欄の一番上のボタン「互換モード」の「変換」ボタンを押して変換してみて。

 そのあと、データ範囲をテーブルにして、ピボットのデータソースをテーブルに変更してみてほしい。

(1111) 2015/12/10(木) 16:35


>2010への変換を「名前を付けて保存」しなかった?

してました。

>「互換モード」の「変換」ボタン〜

やってみました。
もう一度同じ作業をしてみましたが,同じエラーメッセージで何も変わりません。
やはり電波か・・。

退社時間となってしまいましたので,また明日よろしくお願いいたします。
今日はおかげさまで有意義でした。
ありがとうございました。
(みそみそ) 2015/12/10(木) 16:51


 変換後、保存→Excel終了→Excel起動(ファイル開く)→テーブル作成
 の順番で、ウチは出来るんで…
 これで出来ないと、とりあえず新規ファイルで適当なデータ作ってテストしてみてくれ。
 新規ファイル(2010形式)でも出来ないならExcelのせいで、出来るならファイルのせいだ…

 本日はお疲れ様でした。

(1111) 2015/12/10(木) 17:01


皆様おはようございます。昨日はありがとうございました。

昨日のつづきですが,新規ブックで作り直してみたら,出来ました!!
「テーブル」を使用することにより,最初の希望通りの結果が得られました。

すぐに全部のブックを新規ファイルにコピーして作り直す作業にかかります。
手間ですが,これで来年から格段に楽チンになりますので。

根本から解決してくださって感動しております。
この「テーブル」機能を覚えたことにより,今後も様々なことに応用出来そうです。

このサイトで質問して本当に良かった。
マクロが使えなくても工夫すれば解決するのですね。
本当に感謝感謝です。
ありがとうございました!!!
(みそみそ) 2015/12/11(金) 08:50


 おはようございます。
 出来てよかった。

 昨日書き忘れてたので1つだけ注意点を。

 テーブルに使っていたテーブル名を他のテーブルに使うと、ピボットがそっちを参照することがある。

 例を使って説明すると
 テーブル1に「H27データ」と付けてピボットを作成。
  ↓
 テーブル1を削除する
  ↓
 別のところにテーブル2を作成
  ↓
 テーブル名を「H27データ」にする
  ↓
 元テーブル1があった場所にテーブル3を作成
  ↓
 テーブル3を「H28データ」にする

 この場合、ピボットを更新するとピボットはテーブル2の「H27データ」をデータソースとして認識する。
 ので、テーブル名を使いまわすことがある場合は作成順番とピボットの更新タイミングに注意して。

(1111) 2015/12/11(金) 10:09


(1111)さん,昨日はお世話になりました。

>テーブル名を使いまわすことがある場合は作成順番とピボットの更新タイミングに注意

テーブルを作成した場所ではなく,あくまでもテープル名が優先されるわけですね。
テーブルは元表の項目を使いまわす機能なので気をつけねばなりませんね。
了解いたしました。
場数踏んで操作に慣れようと思います。
本当にありがとうございました。
頑張ります。
(みそみそ) 2015/12/11(金) 10:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.