2012-04-12 13 views
1

PowerPoint(少なくとも2007年だがおそらく他の人)では、いくつかの図形で「いくつかの」テキストのスペルチェックを拒否している。PowerPointのスペルチェッカーのバグの発見 - 今、VBAを使ってファイルを修正する方法を教えてください。

私はそれが形状のタイプだと思ったので、それを修正しましたが、これは修正されませんでした。だから、私が「感染した」テキストをいくつかのボックスに移動し、それが何らかの形でテキストに添付されているのを見た実験を行った。

私は.zipファイルに.PPTXを変換し、開かれた知られ、感染および非感染のセクションで非常に単純なファイルを取る。\ PPTは\スライドすると、\ slide1.xmlここで

スペルチェックしませんテキストが囲ったです:

<a:rPr noProof="1" ...

OK綴られているテキスト、またはで囲った中に押す "無視" 持っていた:

<a:rPr dirty="0" smtClean="0" ...

そしてmissspelledテキスト、それがで見つかった:

<a:rPr dirty="0" smtClean="0" err="1" ...

私が発見し、ファイル内のすべてのnoProof =「1」を削除し、countainerにそれを返され、プレゼンテーションを開きました。ファイルが壊れないように、すべてのボックスのすべてのエラーが見つかりました。

保存した後、silde1.xmlを再度開き、正しい場所にdirty="0" smtClean="0"またはdirty="0" smtClean="0" err="1"が見つかりました。

ここで問題になるのは、新しい発見された知識を使ってファイルを修正するにはどうすればいいですか?スライド#.xmlファイルをすべて抽出してテキストエディタで開き、 "Replace"

その抽出処理は自動化できますが、PowerPoint内のVBAから行うことができれば簡単になります。

おかげで、 アンドリュー

+0

XMLには、テキストをプルーフリーディングするべきではないと書かれているとき。私はそれが根拠ではなく、確かに根拠ではないバグではないと言いたい。もしそれがバグであれば、根本は、校正されていないはずのテキストのようなものです。 –

+0

それはバグではない場合、bl ** dy bad design! :) 問題は、PowerPoint内で「機能」のオン/オフを切り替えることができないということです。ソフトウェアの使用を過度に困難にする。 PowerPoint内でこの属性を切り替える方法がわかっていればそれはすばらしいでしょう。 – Stripy42

答えて

1

ニース発見。 VBA APIを使用してこれを行う方法があるかどうかは不明です。しかし、OpenXML APIを使ってこれを行うことができるはずです。これは.netプロジェクトとしてコード化する必要があります。

http://www.microsoft.com/download/en/details.aspx?id=5124

+0

ありがとう、今これは私に学ぶ必要がある言い訳を与えるでしょう.Net! – Stripy42

1

私は、PowerPointに関する具体的な答えは、「一部」の分野ではスペルチェックではないために、あなたが求めて知っています。

私が使用するプログラムは、スペルチェックどこでも呼ばれたいと思います。それは、PowerPointを含むすべてのWindowsプログラムにスペルチェックを追加します。だからあなたが入力したどこのWindowsプログラムでも、スペルチェックをすることができます。

スペルチェックは非常に高品質で、Wordよりもはるかに優れた単語の候補です。

スピードタイピングも付属しています。

PowerPoint用のソリューションを探している間、このプログラムは、スペルチェックのニーズをすべて解決するソリューションを提供します。

おかげで、 Tomer

+0

ありがとう、それは自宅で私のPCのための素晴らしいストップギャップになります。しかし、オフィスではコンピュータがロックダウンされています。私はすべてのユーザーのファイルを "修正"できる必要があります。 – Stripy42

1

は、私は最終的にpowershellを使用して、この使用して、スクリプト(プロセスの少なくとも一部を)修正する方法を発見しました。

  1. 次のコードを貼り付けslide*.xmlファイル
  2. 実行Windows Powershell
  3. 移動抽出されたXMLファイルを含むフォルダが
  4. を抽出\ppt\slides

  5. .zip
  6. 移動に.pptxファイルの名前を変更します。

    $configFiles=get-childitem . *.xml -rec

    foreach ($file in $configFiles) { (Get-Content $file.PSPath) | Foreach-Object {$_ -replace ' noProof="1"', ''} | Set-Content $file.PSPath }

  7. 、バック.pptxから.zipファイルの名前を変更し、バックzipファイルに結果

  8. xmlファイルを置く:正しくチェックをスペルPowerpointファイルを。
関連する問題