C#4を使用してWord文書からフッターを削除しようとしています。フッターは次のようになります。
ページ12012年4月18日
実際、これはWordVBAで表示されたときのフッターのテキストです。
ページ1(2012年4月18日
実際、「ページ1」と「4月」の間に箇条書きがあります。最終的に、フッターは次のようになります。
2012年4月18日
とにかく、Word VBAでは、次のコードを使用してそれを行うことができます。
Dim rngFtr As Range
Set rngFtr = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
rngFtr.Collapse wdCollapseStart
rngFtr.MoveStart wdParagraph, 1
rngFtr.MoveEnd wdWord, 4
rngFtr.Delete
C#でも同じことを試しましたが、フッターが完全に削除されます。これがC#4の私のコードです:Microsoft.Office.Interop.Wordを使用しています。
Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application();
Document doc = ap.Documents.Open(docFile.FullName, ReadOnly: false, Visible: false);
doc.Activate();
Microsoft.Office.Interop.Word.Range ftrRng =
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
ftrRng.Collapse(WdCollapseDirection.wdCollapseEnd);
ftrRng.MoveStart(WdUnits.wdParagraph, 1);
ftrRng.MoveEnd(WdUnits.wdWord, 4);
ftrRng.Delete();
ap.Documents.Close(SaveChanges: false, OriginalFormat: false, RouteDocument: false);
((_Application) ap).Quit(SaveChanges: false, OriginalFormat: false, RouteDocument: false);
System.Runtime.InteropServices.Marshal.ReleaseComObject(ap);
「ページ1」と箇条書きを取り除くために、次のような他の方法も試しました。
var replaceText = string.Empty;
object mis = System.Type.Missing;
var targetFooterText =
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text.ToString().Substring(1, 10);
doc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Find.Execute(
targetFooterText,
ref mis, ref mis, ref mis, ref mis, ref mis, ref mis, ref mis, ref mis,
replaceText,
ref mis, ref mis, ref mis, ref mis, ref mis);
これは何もしません。
私が間違っていることを教えてください。前もって感謝します。
これが重要かどうかはわかりませんが、箇条書きはUnicode-2022です。
これがドキュメントフッターのスクリーンキャップです。「Page1」というテキストと箇条書きを削除して、日付に置き換えるだけです。残りはそのままにしておく必要があります。