質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Q&A

解決済

3回答

3007閲覧

C# Word文書での行内の左右の文字配置

mura_kami

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

0グッド

1クリップ

投稿2020/09/24 21:01

編集2020/09/25 03:42

Visual Studio C#を用いてWord文書ファイルを作成しております。

Wordでは左寄せの行にテキストが入力された状態で,
マウスカーソルを右端に合わせるとカーソルが右揃えのアイコンになり,
ダブルクリックすると同じ行に右寄せのテキストが入力できるようになります。

Word上での操作の画面 参考URL:https://dekiru.net/article/5559/

上記のような、同じ行の内で左右に文字を配置した状態を
プログラムで再現する方法はありますでしょうか。
ご教授いただきたく思います。

現在実装実装しているサンプルは以下です。

//Wordの起動 Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); //文書の作成 Document document = word.Documents.Add(); //行の追加 Paragraph p = document.Content.Paragraphs.Add(); //行を左寄せに設定 p.Range.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; //行に”左寄せ”の文字追加 p.Range.Text += "左寄せ"; (ここに右寄せの設定を追加するコードが入ると思います。) //行に”右寄せ”の文字追加 p.Range.Text += "右寄せ";

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/24 22:43 編集

自力でテキストエディタを作る話ですか? (Office オートメーションの機能とかを使って MS Word を操作するという話ではなくて) 何にせよ、自分でどこまで実装できていて、どこで躓いていて、何が分かれば解決できるかを、自分が書いたコード提示するなどして説明できませんか? でないと丸投げですよ。
退会済みユーザー

退会済みユーザー

2020/09/24 22:38

参考にしている url は文字列を記載するだけでなくリンクを張ってください。
mura_kami

2020/09/25 03:47

ご指摘いただきました修正点を質問に反映いたしました。大変失礼いたしました。
guest

回答3

0

自己解決

自己解決できましたので参考のために内容を記載しておきます。
タブの設定とタブ文字を使用すると右端に寄せることができるようでした。
以下コードです。

//段落の追加 Paragraph p = document.Content.Paragraphs.Add(); //段落内に文字を追加(タブ文字後の文字が右寄せになる) p.Range.Text = "左"+"\t"+"右"; //段落を左寄せに設定 p.Range.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; //タブストップを初期化 p.Range.ParagraphFormat.TabStops.ClearAll(); //タブ文字の位置の数値(ページのサイズ-ページの左右の余白) float mW = document.PageSetup.PageWidth - document.PageSetup.LeftMargin - document.PageSetup.RightMargin; //タブの位置設定を追加 p.Range.ParagraphFormat.TabStops.Add(mW, WdAlignmentTabAlignment.wdRight, WdTabLeader.wdTabLeaderSpaces);

コメント・ご回答いただいた皆様ありがとうございました。

投稿2020/09/26 22:23

mura_kami

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

左と右の間にタブが入り、右揃えのタブ位置が設定されているようです。段落のプロパティでタブ設定を見てください。
タブについては以下を参照してください。

TabStops オブジェクト (Word) | Microsoft Docs

右揃えタブの設定については以下の通りです。

wdtabalignment 列挙 (Word) | Microsoft Docs

投稿2020/09/26 22:23

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mura_kami

2020/09/26 22:27

すみません、自己解決の投稿と同時にご回答いただいていました。 いただいたようにタブの設定でできるようでした。 ご回答ありがとうございました。
guest

0

Wordで「マクロの記録」を行い、作成されたVBAコードをC#に書き換えてみてください。

投稿2020/09/24 22:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mura_kami

2020/09/26 22:08

「マクロの記録」ですが,記録中は右端に設定するためのクリックアンドタイプ機能が使えなくなるので コードが作成できませんでした。 「マクロの記録」でVBAコードが作成できることは知らなかったので大変参考になりました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問