重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になっております。

カーソル位置の段落情報を取得したら、次の段落に反映させたいと思っています。

取得したい情報はインデント、段落番号、書式です。


■具体的には、以下の通りです。
1)カーソルセットして段落情報取得

  1.大項目1     ←カーソルセットして段落情報取得
     1.中項目1
     2.中項目2

  |←このカーソル位置に段落情報を反映


2)文字「あいうえお」を入力した結果、段落情報が反映

  1.大項目1
     1 中項目1
     2.中項目2

  2.あいうえお  ←段落情報が反映されている


  ・「あいうえお」を入力した結果、「2.あいうえお」と表示され、
   インデントや書式が「1.大項目1」と同じになる。


こんなツールを作りたいと思っています。
おそらくSelection.ParagraphFormatを使用するのではないかと思いますが、何をどこまでコピーすればよいかがわかりません。

何かアドバイスをいただけますと幸いです。
よろしくお願いします。

A 回答 (2件)

No.1の回答者です。



VBAで処理する場合、カーソルを置いた段落全体を選択してから、
書式のコピーをするマクロだと、以下のようになります。
コメントブロックしてあるCollapseの行は選択状態を解除するもの
なので、必要に応じてコメントブロックを外してください。

Sub 段落の書式をコピー()
With Selection
.Collapse
.Expand Unit:=wdParagraph
.CopyFormat
' .Collapse Direction:=wdCollapseStart
End With
End Sub

貼り付けるのはこちら↓になります。

Sub 段落の書式を貼り付け()
With Selection
.Collapse
.Expand Unit:=wdParagraph
.PasteFormat
' .Collapse Direction:=wdCollapseStart
End With
End Sub
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
それぞれの意味を確認いたしました。

まず必要なのは書式のコピー、ペーストを行う以下の2つだと思います。
Selection.CopyFormat、Selection.PasteFormat

これらは書式+番号などの段落もコピーされている事を確認できました。
(貼り付け後、番号も変更されたため)

あとは、貼り付け処理のSelection.Expand Unit:=wdParagraphで、段落全体に書式に貼りつけることだと思います。
これがないと、書式が変更されず、番号のみが変更されていました。

大変勉強になりました。
ありがとうございました。

お礼日時:2018/08/27 07:13

段落書式だけをコピーして、別段落へと設定するだけならば、


[書式のコピー/貼り付け]のコマンドで対応できるのでは。
https://support.office.com/ja-jp/article/%E6%9B% …

コピーしたい段落にカーソルを置き、[ Ctrl+Shift+C ]キーを押す
などして、段落書式のみをコピーします。
(文字を選択しない場合、段落書式のコピーとなるため)

書式を適用したい段落にカーソルを置き、[ Ctrl+Shift+V ]キーで
書式の貼り付けをすれば、段落書式のみが適用されます。
(段落の配置やインデント、箇条書きや段落番号など)
フォントなどの設定も同じにしたい場合は、段落全体を選択して、
[書式のコピー/貼り付け]を実行すれば、段落全体での書式が適用
されます。
https://www.becoolusers.com/word/format-painter. …

ただし、
> 「あいうえお」を入力した結果、「2.あいうえお」と表示され
のような動作はしません。
段落番号などは、文字入力前に設定されるものなので。
(Wordには文字入力でのイベントなどは設定でいないと思う)
    • good
    • 0
この回答へのお礼

ありがとう

ご回答、ありがとうございます。
凄く丁寧に回答していただき、感謝しております。
まだまだ勉強中のため、まずはいただいた回答の把握と理解をさせていただこうと思います。
どうぞどうぞよろしくお願いします。

お礼日時:2018/08/21 18:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!