Square Beat Engine

Blog for variety of things…

MS-Office

[PowerPoint VBA] PowerPoint.Shapes.Chart エラー発生

投稿日:2015-08-24 更新日:

パワーポイント2007のVBAで、予想外のエラーに遭遇し、解決できたのでメモ。

いきなり結論

パワーポイント2007は、インストール直後はPowerPoint.Shapes.Chartを実装していない様子。
Windows Updateを実施し、Officeをアップデートしたらできるようになる。

状況

基本的には結論の通りなんだけど、念のため状況も記載。

自分のPCでエクセル2007およびパワーポイント2007を使ってデータからチャートを自動的に作成するエクセルマクロを作成した。
諸事情により、他のPCでそれを実行する必要があり、Office 2007をインストール後、そのマクロを実行したところ、Chartメソッドおよびオブジェクトが存在しないというエラーが発生。

以下の方法を試したところ、解決し、無事に実行することができた。

  • 参照設定 → 開発したPCと同じ状況のため問題なし
  • Officeの修復 → 改善せず
  • Windows Update → 解決!

なお、Office 2007の時代は「Microsoft Update」という機能があり、Windows Updateとは別々になっていた。
今はWindows Updateで更新するようになっているため、この点もあわせて記載しておく。

注意点(2003と2010)

解決前、Chartオブジェクトがヘルプに記載されていたことを確認している。
そのため、最初の仮説として、参照設定が間違っているかファイルが壊れているという仮説を立てたのだが、それは誤りだった。

この実行用のPCには、Office 2007をインストールする前、2003や2010をインストールしていたことがあるので、それが悪さをしていた可能性もある。
両方ともアンインストール済みで、修復も実行したので可能性が低いと思うが、間違っていたら申し訳ないのであらかじめ言い訳しておきたい。

以上!

-MS-Office

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[Excel][VBA] ブックの手動計算とValue(xlRangeValueXMLSpreadsheet)の危険な関係

VBAを使ってExcelで複雑なツールを作ろうとすると、いろいろと細かい部分でつまずくものだ。 今回は、ブックの計算を手動にしていても、特定の条件下で自動に戻ってしまうという現象に遭遇した。 Valu …

[Excel][VBA] シートを新規ワークブックにコピーする方法

既存のシートからワークシートを新規シートにコピーする。 手動の場合は、新規ワークブックを選択するだけでよい。 VBAでは以下のメソッドを用いる。 コード例 [crayon-5c920bf340e715 …

[Excel][VBA] オブジェクト名のワナ

Excel 2010のVBAで、ActiveXコントロール(VBA内ではOLEObject)の名前に罠があることに気づいたのでメモ。 「OLEObjectがうまく動作しない!」と嘆く誰かを1人でも救い …

[Excel][VBA] リストボックスがクリアされてしまう問題

ActiveXコントロール(OLEObject)のリストボックスは、セルに何かを書き込んだりすると、選択状況がクリアされてしまう。 正確には、自動計算をOFFにしておけばクリアされないのだが、通常は自 …

[Excel][VBA] クリップボードを経由しないコピーを勧める理由

自分の作ったエクセルマクロには、クリップボード経由のコピーは皆無だ。 その理由はいたってシンプルだ。 クリップボードを使わない理由 自分がマクロでクリップボードを使わない理由はたった1つ。 「ほかの作 …