|
ゆう さん、こんにちは。
>題名のとおりなのですが、ワードで作った文書の
>最後の文字(ただし、改行、改ページ以外の文字)が
>入力されているページが何ページなのかを調べる
>マクロを作ろうとしています。
>
h t t p://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=651;id=word
これを応用して、
Sub Test()
Dim tp, objR As Rectangle, LL As Long, Lmax As Long, PP As Long, s1 As String
s1 = "なかった"
With Application.ActiveWindow
tp = .View.Type '元のビュー
'表示→印刷レイアウト(違っている場合は一旦変更)
If tp <> wdPrintView Then .View.Type = wdPrintView
PP = .Panes(1).Pages.Count '最後のページ
Do While PP >= 1
Set objR = .Panes(1).Pages(PP).Rectangles.Item(1)
Lmax = objR.Lines.Count
'下からループして、改行コードのみではないところを探す
' → 何か字が入っている行
For LL = Lmax To 1 Step -1
With objR.Lines.Item(LL).Range
If Len(.Text) > 1 Then '改行のみの行以外を探す
'見付けたら抜ける
s1 = "最後は" & PP & "ページの" & LL & "行目"
Exit Do
End If
End With
Next
PP = PP - 1
Loop
If tp <> .View.Type Then .View.Type = tp '元のビュー
End With
'結果
MsgBox s1, vbInformation, "改行・改ページ以外の文字の位置"
End Sub
文字単位ではなく、行単位でみるという考え方もあります。
|
|