Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


69 / 308 ツリー ←次へ | 前へ→

【705】文書の最後の文字(改行、改ページ以外)が入力されているページ数の取得につ... ゆう 10/10/27(水) 11:30 質問[未読]
【706】Re:文書の最後の文字(改行、改ページ以外)... りる 10/10/30(土) 11:25 回答[未読]
【707】お礼 ゆう 10/10/31(日) 23:12 お礼[未読]

【705】文書の最後の文字(改行、改ページ以外)が...
質問  ゆう  - 10/10/27(水) 11:30 -

引用なし
パスワード
   題名のとおりなのですが、ワードで作った文書の
最後の文字(ただし、改行、改ページ以外の文字)が
入力されているページが何ページなのかを調べる
マクロを作ろうとしています。

やりたい作業としては、

1.文書末にジャンプする。
2.文書末に入力されている文字を調べる。
3.文書末に入力されている文字が
   改行、改ページ以外だったら、ページ番号を取得し終了。
   改行、改ページだったら、1つ前の文字を調べる。
※ 改行、改ページ以外の文字になるまで1つ前の文字を調べることを繰り返す


文書末にジャンプする方法はわかりましたが、
カーソル位置の文字が改行、改ページ以外かどうかを調べる方法がわからず、
困っています。わかる方、教えてください。

また、上記の方法以外で、改行、改ページ以外の最後の文字が入力されている
ページ数を取得する方法がありましたら、それもぜひ教えてください。

よろしくお願いします。

【706】Re:文書の最後の文字(改行、改ページ以外...
回答  りる  - 10/10/30(土) 11:25 -

引用なし
パスワード
   ゆう さん、こんにちは。
>題名のとおりなのですが、ワードで作った文書の
>最後の文字(ただし、改行、改ページ以外の文字)が
>入力されているページが何ページなのかを調べる
>マクロを作ろうとしています。
>
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
文字単位ではなく、行単位でみるという考え方もあります。

【707】お礼
お礼  ゆう  - 10/10/31(日) 23:12 -

引用なし
パスワード
   ▼りる さん:

質問に答えてくださってありがとうございます。

文字単位ではなく行単位で考えるというのは
目からウロコでした!

こんなに早く回答がもらえると思っていなかったので
とてもうれしいです。ありがとうございます。

書いていただいたもので作ってみようと思います。

結果はまたご報告させてください。

まずはお礼まで。

69 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207136
(SS)C-BOARD v3.8 is Free