WordのVBAについて


WordのVBAを構築したいと考えています。

処理の流れ
・配列の中に集計対象ファイルのフルパスを格納
・新規文書を作成
・当該文書のファイル名を変数に格納
※繰り返し処理
 ・配列で宣言したパスのファイルを開く
 ・新規作成した文書ファイルの文字に開いたファイルの全てを選択して追加
 ・追加した文書の最後の文字に改ページ(VbCr)を挿入
 ・開いたファイルを閉じる
※繰り返し処理終了
集約したファイルを名前をつけて保存

ということを検討しています。
ほぼほぼ完成しているのですが、問題が2つあります。
1.改ページコードが追加できない
2.集約したファイルの末尾に空白行(改行コード)が1回の繰り返しに付き2つ挿入されてしまう

※For文を抜けてからSendkeysでBackSpaceキーを押下するようにしましたが、効果がありませんでした。
どのようなコードを記述すればよいのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2016/03/30 11:49:44
  • 終了:2016/04/06 11:50:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4325ベストアンサー獲得回数17732016/03/30 13:50:00

1.改ページコードが追加できない

InsertBreak メソッドを使います。

    Selection.InsertBreak Type:=wdPageBreak

2.集約したファイルの末尾に空白行(改行コード)が1回の繰り返しに付き2つ挿入されてしまう

元のソースがないので想像ですが、改行ではなく段落ですよね?
最後の段落を削除するには、こんな感じで。

    Selection.Paragraphs.Last.Range.Delete

でも、ファイルの繰り返し処理で、今は改ページを挿入できてないのですよね。
そこで段落が余計に追加されているんじゃないかという気もします。

他2件のコメントを見る
id:keijun5145

ご提示いただいたコードを入力して実行した結果、
出力用ファイルの概要は以下のようになりました。
1ページ:元のファイルで入力した文字+改ページ文字
2ページ~4ページ:文字が全く入っていない状態で改ページ文字が入力されている
5ページ:段落文字が6文字(改ページされた状態でEnterキーを5回押下した状態)

改善点はどこになるでしょう?

2016/03/30 16:35:51
id:a-kuma3

他の文書の内容を貼り付けたのが最後の段落になっているからでしょう。

そもそも、余分な段落というのは改頁コードを挿入できていなかった場合の話だということは回答の方に書きました。
最後の文書じゃなかったら改頁する、という方法だったら、最後の段落を削除する必要がなくなるのではないでしょうか。

For i = 1 To 5
    AT = Documents(A).StoryRanges(wdMainTextStory).Text
    BT = Documents(C).StoryRanges(wdMainTextStory).Text
    Documents(C).StoryRanges(wdMainTextStory).Text = AT & BT
    If i <> 5 Then
        Selection.InsertBreak type:=wdPagebreak
    End If
Next i

# 自分で試してなくて、すみません

2016/03/30 22:57:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません