私はDelphiXE2を使用しており、次のコードを使用して、Word(2010)テンプレートのブックマークに文字Yを入力します。
Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');
ドキュメントを除いて、文字Yの代わりに数字89が表示されます。
障害は私のコードまたはWordドキュメントにある可能性がありますか?どんな方向でもありがたく受けました。
私はDelphiXE2を使用しており、次のコードを使用して、Word(2010)テンプレートのブックマークに文字Yを入力します。
Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');
ドキュメントを除いて、文字Yの代わりに数字89が表示されます。
障害は私のコードまたはWordドキュメントにある可能性がありますか?どんな方向でもありがたく受けました。
あなたのリテラル'Y'
は文字列リテラルではなく文字リテラルです。のASCII コードY
は 89です。
したがって、 aChar
ではなく aを渡していstring
ます。Word がその整数の文字列表現を取得する必要がある場合、整数89
をそのテキスト表現である string に変換するだけ'89'
です。
この問題を回避するには、次のようにします。
var
Text: string;
....
Text := 'Y';
Doc.Bookmarks.Item('NS').Range.InsertAfter(Text);
InsertAfter()
アイデアは、文字ではなく文字列を確実に渡すことです。はバリアント パラメータをInsertAfter()
受け取るため、バリアントに格納されているペイロードのタイプに注意する必要があることに注意してください。