|
>質問も拙いものばかりで大変お手数をおかけして申し訳ありません。
いえいえ、十分できていると思いますよ。
かくいう私も、偉そうなことを書いておきながらWord VBAはあまり得意ではないので、自分自身が勉強しながら回答しているという感じですので(^^ゞ
> この3番目がどこにどのように繰り返しの記述を入れたらよいのか、どうしてもわかりません。よろしくお願いいたします。
Do
Selection.Move wdLine, 1
Select Case Selection.Information(wdFirstCharacterLineNumber)
Case 1 '1行目の時
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.TypeText Text:="</item>"
Case tempLine '最終ページの最終行の時
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.TypeText Text:="</item>"
Exit Sub '←ここを追加(ここでSubを抜ける。Doループの後に何かまだ処理をしたいならExit Do)
End Select
Loop
※Selectionが最終行でなかった場合は何もせずに次のループに入るので、この場合はCase Else は不要。(中身のないCase Elseを書いても害はありませんが)
こんな感じでどうでしょう。
既に1〜10行目の処理を全てのページに対して済ませた後で最終行に参照項目を入れるなら、1ページ目の1行目にカーソルを戻し、そこからこのコードを実行すればいいでしょう。カーソル位置が最終行でなければそのまま次のループへ入ってSelection.Move wdLine, 1が繰り返され、最終行に行き着けば指定の文字列を追加した上で次のループに入り、最終ページの最終行になればそこでプログラムを終了します。
1〜10行目の処理→最終行に参照項目の設定→次のページの1〜10行目の処理・・・ということであれば、全てのページに1〜10行目の処理をするループの中で、10行目の処理を終えた後に上記のループを加えます(ループの中にループができる形)
自分では動作確認をしていませんので、不具合があるようでしたらまたおっしゃってください。
|
|