3

Word 2007 で行間を設定するのに問題があります。Word 2007 の既定では、行間が 2 倍になるか、余分なスペースが設定されます。以前は、これに似たものを常に使用して成功していました (C# の場合):

//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」などのさまざまな列挙を調べてみましたが、「No Spacing」と同じことを達成するものを見つけることができないようです。

ここで誰かがこれを達成する方法を知っていますか?

4

2 に答える 2

5

使用について

Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;

コードは行間隔を設定しません。特定の行間隔が適用されたスタイルを設定します。

これが受け入れられた答えであるため、どのように解決したかを尋ねた人からの引用:

Joey が提案したように、解決策は Word の組み込みスタイルを使用することです。Word._Application オブジェクトに以下を適用することで、これを解決しました。

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle;
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F;
于 2011-01-12T19:08:50.353 に答える
1

Joey が提案したように、解決策は Word の組み込みスタイルを使用することです。Word._Application オブジェクトに以下を適用することで、これを解決しました。

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle;
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F;
于 2011-01-12T19:34:31.530 に答える