Word VBA質問箱 IV

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

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


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

【657】ページ全体の移動 Weipu Zhenfu 09/10/18(日) 20:37 質問[未読]
【748】Re:ページ全体の移動 マナ 13/5/2(木) 21:55 発言[未読]
【750】Re:ページ全体の移動 マナ 13/5/3(金) 13:32 発言[未読]

【657】ページ全体の移動
質問  Weipu Zhenfu  - 09/10/18(日) 20:37 -

引用なし
パスワード
   お世話になります。

下記の件でお尋ねします。


特定ページの先頭位置あるいは先頭文字
      最後位置あるいは最後文字  の取得

あるいは特定ページのページ番号の 取得

は可能でしょうか。


さらにおそらくは上記を情報を用いることになると

思いますが、あるページのページ全体を他のページ

へ移動させることが可能でしょうか。


換言すれば、WORD VBAで EXCEL VBA

のようにページ管理が可能でしょうか。

【748】Re:ページ全体の移動
発言  マナ  - 13/5/2(木) 21:55 -

引用なし
パスワード
   もう見てないでしょうが。自分の勉強のために書いてみました。

>換言すれば、WORD VBAで EXCEL VBA
>
>のようにページ管理が可能でしょうか。

EXCEL VBAのようにの意味がわかりませんが、
1ページ目を4ページ目の前に移動させる例です。
ちゃんと出来てるのかなぁ。あまり自信ありません。

Sub test()
  Dim s As Long
  Dim e As Long
  
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=4
  ActiveDocument.Bookmarks.Add Name:="移動先"
  
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=1
  s = Selection.Range.Start
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
  e = Selection.Range.Start

  If e > s Then
    ActiveDocument.Range(s, e).Cut
    ActiveDocument.Bookmarks("移動先").Range.Paste
  End If
  
  ActiveDocument.Bookmarks("移動先").Delete

End Sub

【750】Re:ページ全体の移動
発言  マナ  - 13/5/3(金) 13:32 -

引用なし
パスワード
   >特定ページの先頭位置あるいは先頭文字
>      最後位置あるいは最後文字  の取得
>
>あるいは特定ページのページ番号の 取得
>
>は可能でしょうか。

↑については、こんな感じで。
カーソルの移動関係 は必須なのに、すぐに忘れちゃうので、
いつも、こちらを参考にしています。今回も。
ht tp://hanatyan.sakura.ne.jp/vbhlp/wordref1.htm

Sub test()
  Dim p As String   '指定のページ
  Dim e As Long    '最終のページ
  Dim c As Long    '現在のページ
  Dim msg As String
  
  e = Selection.Information(wdNumberOfPagesInDocument)
  msg = "ページ番号(1〜" & e & ")を入力してください。"
  
  c = Selection.Information(wdActiveEndPageNumber)
  Do
    p = InputBox(Prompt:=msg, Default:=c)
    If p = "" Then Exit Sub
    If IsNumeric(p) Then
      p = CLng(p)
      If p > e Then
        MsgBox "そんなにページはありません"
      Else
        Exit Do
      End If
    Else
      MsgBox "数字のみ入力可です"
    End If
  Loop
  
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=p

  MsgBox "ページ:" & Selection.Information(wdActiveEndPageNumber) & vbCrLf & _
      "先頭位置:" & Selection.Start & vbCrLf & _
      "先頭文字:" & Selection.Text
  
  If e > p Then
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
  Else
    Selection.Move Unit:=wdStory
  End If
  Selection.MoveLeft

  MsgBox "ページ:" & Selection.Information(wdActiveEndPageNumber) & vbCrLf & _
      "最後位置:" & Selection.Start & vbCrLf & _
      "最後文字:" & Selection.Text
  
End Sub

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