質問: false worksheets("sheet1")select range("a2").select selection.querytable.refresh backgroundquery:=false range("a2").select end sub sub ピボットテーブル更新日報印刷() sheets("sheet2").select range("b14").select activesheet.pivottables("ピボットテーブル1").refreshtable activewindow.selectedsheets.printout copies:=1, collate:true end sub この構文で、selection.querytable.refresh backgroundquery:=false が 間違っているようなのですが、どうすればいいのか良くわかりません。 どなたか教えていただけないでしょうか?
回答: >selection.querytable.refresh backgroundquery:=false この『構文』自体が間違っているわけではありません。 "sheet1"のa2セルに設定されているquerytable(外部データ取り込み) を更新する時に、エラーが発生して更新できない、という意味です。 おそらく、エラー原因はエラーメッセージそのままではないでしょうか。 『..空白でないセルをワークシートの外にシフトすることはできません..』 querytableの設定によっては、取り込みデータを挿入するようになっています。 例えば、シートの最下行にデータがあって、 取り込みデータを挿入するとデータがはみ出てしまう、という場合は そういったエラーメッセージが出る事も考えられます。 #こちらの環境では再現できなかったので半分自信なしですが -"- 対策もエラーメッセージに書かれている通りです。 例えば"sheet1"で使用中のデータの最終行が1,000行だと思っていても、 それ以下になんらかの使用領域が残っている可能性があります。 ctrl+endキーを押してみてください。 "sheet1"の実際の最終セルに移動します。 その行から1,001行目までを選択して削除してください。 (実際に必要なデータがないかどうかを確認の上で。) その後ブックを保存してください。 以上で解消すれば良いのですが。 または、querytableの設定を変更してみる方法もあります。 "sheet1"のa2セルを選択して右クリック。 [データ範囲のプロパティ]を開きます。 『変更されたレコード(行)のデータ更新時の処理:』 が ○新しいデータのセルを挿入し、使用されていないセルを削除する になっていたら、 ○既存のセルを新規データで上書きし、使用されていないセルはクリアする に変更してみてください。 いずれかでも解消できない場合は 現在のシート状態と実際の利用の仕方などの詳細情報があると 他にアドバイスあるかもしれません。 (例えば外部データを取り込んだ後に数式や書式を設定していたりとか、 何かの図形を配置しているとか)