人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WordのVBAについて

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

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

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

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

●質問者: keijun5145
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3

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

InsertBreak メソッドを使います。

 Selection.InsertBreak Type:=wdPageBreak

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

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

 Selection.Paragraphs.Last.Range.Delete

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


keijun5145さんのコメント
ソースコードの抜粋が以下になります。 Sub MERGE() A = ActiveDocument.Name Documents.Add C = ActiveDocument.Name For i = 1 To 5 If i <> 1 Then Selection.insertbreak type:=wdPagebreak End If AT = Documents(A).StoryRanges(wdMainTextStory).Text BT = Documents(C).StoryRanges(wdMainTextStory).Text Documents(C).StoryRanges(wdMainTextStory).Text = AT & BT If i <> i Then Selection.Paragraphs.Last.Range.Delete End If Next i End Sub このようなコードを記述していますが、アウトプットする前のファイルに段落の編集記号が6つ追加された状態で処理が終了しています。

a-kuma3さんのコメント
>|vb| 'If i <> i Then ここが間違ってるんじゃないでしょうか。 If i <> 5 Then Selection.Paragraphs.Last.Range.Delete End If ||<

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

a-kuma3さんのコメント
他の文書の内容を貼り付けたのが最後の段落になっているからでしょう。 そもそも、余分な段落というのは改頁コードを挿入できていなかった場合の話だということは回答の方に書きました。 最後の文書じゃなかったら改頁する、という方法だったら、最後の段落を削除する必要がなくなるのではないでしょうか。 >|vb| 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 ||< # 自分で試してなくて、すみません
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ