エクセルVBAでピボットテーブルを更新する際にエラーが発生する

このQ&Aのポイント
  • エクセル2002で、ボタンをクリックしてピボットテーブルを更新するとエラーが発生します。エラーの症状は、全角入力が受け付けられなくなり、文字入力やBSキー、Delキー、テンキーなどが効かなくなります。ただし、Fキーとタブは正常に動作します。半角入力には問題はありません。エクセルを再起動すると問題が解消しますが、再発を防ぐためにはどのように対処すれば良いでしょうか?
  • エクセルVBAでピボットテーブルを更新するとエラーが発生します。エラーの症状は、ボタンをクリックすると全角入力が受け付けられなくなり、文字入力やBSキー、Delキー、テンキーなどが効かなくなります。ただし、Fキーとタブは正常に動作します。再起動すると問題は解消しますが、再発を防ぐためにはどうするべきでしょうか?
  • エクセル2002の環境で、VBAのボタンをクリックするとピボットテーブルを更新するものを作成しました。しかし、更新後に全角入力が受け付けられなくなり、文字入力やBSキー、Delキーなどが効かなくなります。Fキーとタブは問題ありません。この問題を解決するためには、どのような対処が必要でしょうか?
回答を見る
  • ベストアンサー

エクセルVBA ピボットテーブル更新するとエラー

エクセル2002 ボタンをクリックするとピボットテーブルが更新できるようにしました Private Sub CommandButton1_Click() ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh End Sub ボタンを押して実行したあと、全角入力を受け付けなくなります 症状(全角時) 文字入力、BS、Del、テンキー等が効かなくなります。 Fキー、タブは生きています。 半角入力は問題ありません。 エクセルを再起動すると回復します。 症状を無くすにはどうすればよいでしょうか? できればピボットテーブルはVBAのボタンで更新したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

[コントロールツールボックス]のCommandButtonですね。 よくわかりませんが、デザインモードにしてCommandButtonを右クリック[プロパティ]。 TakeFocusOnClick を False にしてみたらどうなりますか? もしくは、[コントロールツールボックス]のCommandButtonではなく、[フォーム]の[ボタン]に変更して [マクロの登録]を使った場合はどうなるでしょう? マクロの内容は、標準モジュールに Sub Macro1()   ActiveSheet.PivotTables(1).PivotCache.Refresh End Sub ...というようなマクロです。

suisouoku
質問者

お礼

お礼が遅くなりました。 end-u様のどちらの方法でも解決しました。 今までコントロールツールボックスをつかってなかったかもしれません。 ありがとうございました。

関連するQ&A

  • 現在のシートの全てのピボットテーブルを更新するには

    vba現在のシートの全てのピボットテーブルを更新するには? シートがアクティブになった時にそのシートのピボテをすべて更新したいのですが、 複数あり、 Private Sub Worksheet_Activate() ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh ActiveSheet.PivotTables("ピボットテーブル2").PivotCache.Refresh ・ ・ ・ End Sub とやっていくのは面倒なので、「現在のシートの全てのピボットテーブルを更新」と言うことをやりたいのですが そのようなコードはありますか?

  • VBAでピボットテーブルをセレクトすることは可能?

    VBAでピボットテーブルをセレクトすることは可能ですか? 既存のピボットテーブルに対して ActiveSheet.PivotTables("ピボテ").Select ActiveSheet.PivotTables("ピボテ").PivotCache.Select どちらのコードも実行時エラー438になるのですがどうすればいいでしょうか?

  • エクセル2010使い方-ピボットテーブル-

    エクセル2010で作成した、ピボットテーブルの 同一項目を選択するにはどうすればよいでしょうか。 以前は項目の始まりにマウスを合わせると、矢印にかわり、 一括して同一項目を選択できたのですが。 行の小計を選択するのをマクロに書くと、こんな感じなのですが。 Sub 小計を選択() ActiveSheet.PivotTables("ピボットテーブル").PivotSelect "行ラベル[All;Total]", _ xlDataAndLabel, True End Sub よろしくお願いいたします。

  • ピボットテーブルをマクロで行なうには

    以下3行目が項目でデータレコードが4~588行目迄入っています。(行数は毎回変わります) これをピボットテーブルで 縦列に"分類" 横行に"月" フィールドに"受注額(合計)" としたく以下マクロ記録しましたが次に実行しようとするとうまくいきません。 参考書読むとActiveSheetとEnd(xlUp)を使うのかなと思えたのですが 具体的にどのようしたら良いのか宜しく御願いします。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'Aシート'!R3C1:R588C12").CreatePivotTable _ TableDestination:="", TableName:="ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル1") .DisplayNullString = False .RowGrand = False .SmallGrid = False End With ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="分類", _ ColumnFields:="月" With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("受注額(合計)") .Orientation = xlDataField .NumberFormat = "#,##0_ ;[赤]-#,##0 " End With End Sub

  • ピボットテーブルのマクロについて

    ピボットテーブルのマクロについて教えてください。 NO 場所  ランク 面積 1  東京  上    10 2  大阪  上    20 3  福岡  中    20 4  広島  中    30 5  東京  中    15 6  東京  中   25 7  大阪  下   35 8  福岡  下   45 9  大阪  下   10 10 大阪  下   10 という表があり、 場所ごとランクごとの面積集計を ピボットテーブルのマクロを組んで実施したい のですが(同じ作業を繰り返すので)、 マクロを記録して、内容を実行しようとすると、 「実行時エラー」が出てしまいます。 記録したマクロは以下の通りです。 ( → ←のところでエラーが出ます) Sub Macro1()  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _   "Sheet1!C2:C4").CreatePivotTable TableDestination:="", TableName:= _  "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10  ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)  ActiveSheet.Cells(3, 1).Select → With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("場所")   ←   .Orientation = xlRowField   .Position = 1  End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("ランク")    .Orientation = xlRowField    .Position = 2  End With  ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _    "ピボットテーブル2").PivotFields("面積"), "データの個数 / 面積", xlCount  Range("A3").Select  ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("データの個数 / 面積 ").Function = _  xlSum End Sub ピボットテーブルのフィールドリストがうまく挙がってこないようなのですが、 どのようにマクロを組み直せば、よいのでしょうか? 作りたい集計表は、以下のようなものです。 場所 ランク  合計 広島  中   30  集計     30 大阪  下   55     上    20  集計     75 東京  上   10     中    40  集計     50 福岡  下   45     中    20  集計     65 総計      220 長々とまた見づらくてすみません。 よろしくお願いします。

  • ピボットテーブルの範囲を可変にしたい

    ピボットテーブルのマクロを作っています。 「発注データ」というシートの隣に新しいシートを追加し そこにピボットテーブルを作成するという内容です。 シート名の「発注データ~」と参照範囲「R1C1:R477C8」の部分が毎回変わるため (列は固定で行数が増減)それに対応した記述にしたいのですが どのように変えたらいいのでしょうか? アドバイスよろしくお願いします。 以下マクロ記録で作成してみました。 Sub pivot() ' pivot Macro Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "発注データ20170202!R1C1:R477C8", Version:=xlPivotTableVersion15). _ CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1" _ , DefaultVersion:=xlPivotTableVersion15 Sheets("Sheet1").Select Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("課") .Orientation = xlColumnField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品番") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品コード") .Orientation = xlRowField .Position = 2 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品名1") .Orientation = xlRowField .Position = 3 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品名2") .Orientation = xlRowField .Position = 4 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("棚番号") .Orientation = xlRowField .Position = 5 End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("単価") .Orientation = xlRowField .Position = 6 End With ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル1").PivotFields("数量"), "合計 / 数量", xlSum ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品番").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品コード").Subtotals = Array _ (False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品名1").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("製品名2").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("箱番").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("単価").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("数量").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("課").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").RowAxisLayout xlTabularRow End Sub

  • ピボットテーブルの更新について教えて下さい。

    ピボットテーブルの更新について教えて下さい。 ピボットテーブルを複数作成しています。 それらは、全て元データは同じなんですが、項目の種類分けの為に複数作成しています。 そこで、教えて頂きたいのは、 今、2つのエクセルシート(名前をabc.xls、def.xlsとします)を作成し、それぞれ同じように複数のピボットテーブルを作成しています。 それぞれのシートでピボットテーブルを更新をした時、abc.xlsではひとつのピボットテーブルを選択し更新すると全てのピボットテーブルが更新されてしまいます(元データが同じものだけですが)。 しかし、def.xlsではひとつのピボットテーブルを更新しても他のピボットテーブルは更新されません(元データが同じものだけですが)。 (更新には「ピボットテーブル」ツールバーの「すべて更新」ボタンは使用していません。当然、「すべて更新」ボタンを使用すればどちらのシートでも全てのピボットテーブルが更新されます) 更新範囲を単体か全体かを指定する、設定があるのでしょうか? 今使用しているエクセルシートで、選択しているピボットテーブルしか更新されないのは1つだけで、いつの間にかこうなっていました。 宜しくお願いします。

  • マクロでピボットテーブルを作成したい

    こんばんは。マクロの自動記録を使って、ピボットテーブルを作成したのですが、記録した時のシート名とデータ範囲で記録されてしまいます。アクティブシートのデータがある範囲をピボットテーブルにしたい時は、どうすれば良いでしょうか? 以下のコードが自動記録で作成したコードです。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "シート名!R1C1:R1000C30").CreatePivotTable TableDestination:= _ "", TableName:="ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品名 ") .Orientation = xlRowField .Position = 2 End With Range("A9").Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("数量 "), "データの個数 / 数量 ", xlCount With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ") .Orientation = xlPageField .Position = 1 End With Range("A1").Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ").Orientation = _ xlHidden With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("希望時期") .Orientation = xlColumnField .Position = 1 End With

  • マクロでピボットテーブルを行う方法

    マクロ初心者です。よろしくお願い致します。 マクロでピボットテーブルにて集計を行いたいと思っています。 コマンドボタン1発で以下の全ての動作を行いたいです。 ■動作詳細■ [OK]コマンドボタンで指定したファイルを開く。 [OK]集計しやすいようにファイル内のデータを加工。 [NG]指定して開いたファイル上でピボットテーブル集計ができない。 ■NG要因として■ 指定して開いたファイルのSheet1上のデータをピボットテーブル新規作成でSheet2に作成するので、集計する元のデータの場所(Sheet1)をマクロ上に記載する必要があると思うのですが、うまくいきませんでした。 どなたかお分かりになる方がいらっしゃいましたらご助言いただければと思います。よろしくお願いします。 ■作成マクロ■ ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "test01!C1:C8").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("コード") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("色") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("売上"), "データの個数 / 売上数量", xlCount 一度、作成したピボットテーブルのデータをマクロにコピーしてコマンドボタンにペーストしました。 それによって参照してあるセルの位置もズレてしまったのでしょうか? どこを直せばよいのか分からなくなってしまいました。 よろしくお願いいたします。

  • 更新をすると、ピボットテーブルが消える

    エクセル上にピボットテーブルがあるのですが、 更新をすると、画像のようにピボットテーブルが消えてしまいます。 エクセル2010です。 更新を押したら更新するにはどうすればいいですか?

専門家に質問してみよう