2011-03-09 15 views
6

私はC#を使用してPowerPointプレゼンテーションを作成:PowerPointのTextRangeのフォントの色をC#から変更するにはどうすればよいですか?

PowerPoint.Application powerpointApplication; 
PowerPoint.Presentation pptPresentation; 
PowerPoint.Slide Slide; 

// Create an instance of PowerPoint. 
powerpointApplication = new PowerPoint.ApplicationClass(); 

// Create a PowerPoint presentation. 
pptPresentation = powerpointApplication.Presentations.Add(
Microsoft.Office.Core.MsoTriState.msoTrue); 


// Create empty slide 
Slide = pptPresentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutBlank); 

TextRange objTextRng = objSlide.Shapes[1].TextFrame.TextRange; 
objTextRng.Text = "Remote sensing calendar 1"; 
objTextRng.Font.Name = "Comic Sans MS"; 
objTextRng.Font.Size = 48; 
// TODO: change color 
// objTextRng.Font.Color 



// Save presentation 
pptPresentation.SaveAs(BasePath + "result\\2_example.ppt", 
         PowerPoint.PpSaveAsFileType.ppSaveAsDefault, 
         MsoTriState.msoTrue // TODO: что за параметр??? 
        ); 
pptPresentation.Close(); 

、どのように私はobjTextRngのフォントの色を変更できますか?

答えて

6

次のコードは、赤にフォントの色を設定します:あなたは別の色を指定したい場合は、あなたが他のpre-defined colorsのいずれかを使用、またはColor.FromArgb methodを使用して、独自のRGB値を指定することができます

objTextRng.Font.Color.RGB = Color.Red.ToArgb(); 

どちらの方法でも、使用するColorオブジェクトのToArgb methodに電話するようにしてください。 RGBプロパティでは、RGBカラー値を指定する必要があります。

+1

実際には、プロパティの名前*にもかかわらず、PowerPointがBGR形式の色を解釈するにもかかわらず、青色に設定されます。 フォントの色を赤に設定する最も簡単な(そして最もエレガントでない)方法は、色を16進数で指定するだけです(RとBバイトを逆にする): 'range.Font.Color.RGB = 0x0000FF;' - 同様に、青は 'range.Font.Color.RGB = 0xFF0000;'などとなります (*実際はRGB形式ですが、ビッグエンディアンであり、バイトは左から右にではなく右から左に格納されます) – BrainSlugs83

0

私はthis MSDN pageと説明しています。

編集: ただし、これはVBScriptで行う方法についてのみ説明しています。 TextRangeオブジェクトのプロパティがFontであることがわかります。これはFontというオブジェクトを返します。hereこれらのリソースは、RGBプロパティにアクセスできることを示しています。コーディーが言ったように設定することができます。さらに詳しい情報が必要な場合は、MSDNのセクションを参照してください。

+0

このページの説明は確かに*得ることができますが、 'TextRange'オブジェクトではなく' DropCap'について話しています。サンプルコードはVB 6.0/VBScriptで提供されています。特に、C#には 'RGB'関数はありません。 –

+0

私は同意する、私はちょうどリンクを置くしたくない。時には迷惑なので、コード例をコピーしただけです。 –

+0

ただし、問題はタグが付けられているので、C#**ではコードサンプル**が動作しないことです。 'RGB'関数はありません。私の答えが示唆しているように(これが好ましい方法です)、' Information.RGB'関数を使うために 'Microsoft.VisualBasic'名前空間をインポートする必要があります。 –

5

用途このPPTX 2007

private int BGR(Color color) 
    { 
     // PowerPoint's color codes seem to be reversed (i.e., BGR) not RGB 
     //  0x0000FF produces RED not BLUE 
     //  0xFF0000 produces BLUE not RED 
     // so we have to produce the color "in reverse" 

     int iColor = color.R + 0xFF * color.G + 0xFFFF * color.B; 

     return iColor; 
    } 

例えば

shape.TextFrame.TextRange.Font.Color.RGB = BGR(Color.Red); 
+1

これはPowerpoint 2013の場合(私はそれが同じフォーマットだと思います)の場合のようです。あなたが 'Color.RGB'を赤に設定すると、この機能がなければ青色になります。 :) – Raziel

0

objTextRng.Font.Color.RGB = System.Drawing.ColorTranslator.ToOl(System.Drawing.Color.Blue)。

関連する問題