2011-01-12 4 views
3

Word 2007で行間隔を設定するときに問題があります.Word 2007の既定値は、間隔を2倍にするか、行間に余分なスペースを入れることです。以前、私はいつも(C#の)成功とこれに似た何かを使用していますWord 2007の行間を文化的にニュートラルな方法で設定する

//No spacing when using Word version > 2003 
//Word 2003 = "11.0" 
//Word 2007 = "12.0" 
Word.Application appVersion = new Word.Application(); 
string sVersion = appVersion.Version.ToString(); 
if (sVersion != "11.0") 
{ 
    object noSpacingStyle = "No Spacing"; 
    oWord.ActiveWindow.Selection.set_Style(ref noSpacingStyle); 
} 

をしかし、そのようなイタリア語やドイツ語などの一部の地域/文化の設定、下のそれを適用しようとすると、これが破壊されます。私はこれが、英語のようにハードコードされているのではなく、 "スペースのない"をターゲット言語にする必要があるためだと考えています。ですから、私はこの同じ変更をより移植性のある方法で適用する方法を見つけようとしています。

"WdBuiltinStyle"などのさまざまな列挙を調べてみましたが、 "間隔無し"と同じことを達成できないようです。

これを達成する方法を知っている人はいますか?

答えて

5

Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle; 

の使用についてあなたのコードは、行間隔を設定していない何、それはそれに適用される特定の行間隔を持ってスタイルを設定します。

ジョーイが示唆したように、解決策は、Wordのスタイルに建てを使用することです。人から引用

は、これが受け入れ答えているので、彼らは、それを解決したのかを質問しました。私は私のWord._Application オブジェクトに次の適用することによって、これを解決 :

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle; 
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F; 
+0

ありがとう、ジョーイ。しかし、「Word.WdLineSpacing.wdLineSpaceSingle」は余分な行間隔を完全になくすことはできないようですWordで標準インターフェイスを使用している場合、この設定は[段落]の[間隔]セクションに表示されます。ここでは「後:」が10ptに設定されています。だから私はそれを操作する方法はわからないが、何とか操作しなければならないと思う。 – campbelt

+0

ジョーイ、私は残りの仕事をしました。詳細は以下の私の答えを見てください。解決に導いてくれてありがとう! – campbelt

1

ジョーイが示唆したように、解決策は、Wordのスタイルに建てを使用することです。私はこれを私の言葉に次のように適用して解決しました。アプリケーションオブジェクト:

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle; 
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F; 
関連する問題