デルファイシアトル、PPT 2013.DelphiとMicrosoft PowerPointの統合...設定太字属性
私はプログラムでPPTデッキを構築しています。私は使用しているPPTテンプレートを持っています。実行可能ファイルに埋め込まれたPPTファイルを抽出し、PPTを開始し、ファイルを開き、スライドに移動してコンテンツを取り込みます。現在私が戦っている問題はフォント属性と関係しています。私はテキストフレームを持っています。私はCR/LFで区切られたそのテキストフレームに様々な行を書きたいと思います。 PPTはこれらが私が望むものである別々の弾丸であることを示しています。各行の最初の単語はカテゴリなので、私はそれを太字で欲しい。
はコードでは、私がtextframeに最初の行を追加しproduct3、product4 - 製品1、product2
- カテゴリ1 ...このように見える終わる必要があります次に、キャラクター1〜9から、それを太字にします。テキストフレームに2行目を追加し、20文字から次の9文字まで太字に設定します。これは4行の操作です。 1行目を追加し、太字に設定し、2行目を追加して、太字に設定します。 1行目と2行目は動作しますが、2行目のテキストを追加すると、すべてが太字になります。私のコードの順序を変更すると、行1を追加し、行2を追加し、最初の部分文字列を太字に設定し、2番目の部分文字列を太字に設定すると動作しますが、
私は行1を追加しようとしましたが、文字1〜9を太字にし、文字セット10を太字にしないで、2行追加しましたが、違いはありません。
ここにコードスニペットがあります。
uses ... Office2000, msppt2000; var lFinalDeck: PowerPointPresentation; lApplication: PowerPointApplication; sl: _Slide; sh1 : Shape; FoundIt : Boolean; i : Integer; CRLF : String; PPTFileName : String; begin lApplication := CoPowerPointApplication.Create; ... // Open File lFinalDeck := lApplication.Presentations.Open(PPTFileName, msoFalse, msoFalse, msoFalse); // The second parameter specifies whether the presentation should be opened in read-only mode. // If the third parameter is True, an untitled copy of the file is made. // The last parameter specifies whether the opened presentation should be visible. // Get a handle to my slide and go to it. sl := lFinalDeck.Slides.Item(2); sl.Select; FoundIt := False; CRLF := #13#10; // Now look for the textframe that has the TEXT 'TEXTBOX1' for i := 1 to sl.Shapes.Count do begin sh1 := sl.Shapes.Item(i); if sh1.HasTextFrame = msoTrue then if sh1.TextFrame.TextRange.Text = 'TEXTBOX1' then begin FoundIt := True; sh1.TextFrame.TextRange.Text := ''; Break; end; end; // Put data in the textframe, setting first 5 characters of each line bold sh1.TextFrame.TextRange.Text := '1234567890' + CRLF; sh1.TextFrame.TextRange.Characters(1,5).Font.Bold := msoTrue; sh1.TextFrame.TextRange.Text := sh1.TextFrame.TextRange.Text + 'ABCDEFGHIJKLMNOP' + CRLF; sh1.TextFrame.TextRange.Characters(13,5).Font.Bold := msoTrue; end;
これを修正する方法はありますか?
それはどのように一般的な振る舞いでPowerPoint、およびOfficeプログラム、 私は信じている。新しい段落を追加すると、前の段落のフォントが仮定されます。これは、手動で行っているときでも、時には痛みです。私が提案することができる唯一の方法は、新しいパラを挿入し、フォントを明示的に太字に設定するか、選択を追加してボールドをオフにすることを計画する場所にテキスト選択を設定することです。あなたがそれを何度もやっているとき。 – Dsm
「それでは大胆な言葉がほしい」 - あなたはMicrosoft Officeで仕事をしているので、ほぼすべての質問に対して普遍的な答えがある。 "Visual Basicマクロの記録"を開始します。次に、単語を選択して太字にして、それを選択解除します。その後、 "マクロの記録を停止する"。次に、マクロのマネージャを開き、新しいマクロを見つけてエディタに入力します。 Visual Basicコードが表示されます。それをBasicからPascalに変換します。 PS。 Office 2013でこれらのマクロ関連のコマンドがどこに隠れているのかわかりません。Office試用用のクラシックメニューを試してみてください –
レコードマクロ機能は、ほとんどのOffice製品にありますが、Powerpointではありません。 Powerpoint 2007はそれを持っていた最後のバージョンでした... – user1009073