Word VBA質問箱 IV

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

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


1 / 298 ツリー 前へ→

【869】ファイル分割 あおぎんこ 19/4/24(水) 19:42 質問[未読]

【873】Re:ファイル分割 あおぎんこ 19/4/26(金) 9:14 お礼[未読]
【874】Re:ファイル分割 あおぎんこ 19/4/26(金) 12:07 質問[未読]
【875】Re:ファイル分割 マナ 19/4/26(金) 18:06 発言[未読]
【876】Re:ファイル分割 あおぎんこ 19/5/8(水) 14:38 お礼[未読]

【873】Re:ファイル分割
お礼  あおぎんこ  - 19/4/26(金) 9:14 -

引用なし
パスワード
   ▼マナ さん:
さっそくのご回答ありがとうございます。

>これだとどうなりますか
>Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=myPage

これだときちんと2ページずつ選択できました!

>
>動作確認のために、ほとんど同じですが、書き換えてみました。
>

そして書き換えてくださったコード。
同じようにしっかり分割できました!

今はレイアウトが違うので、新規ファイルは3ページになったりしてますけど、無事に2ページずつ分割できました。
これでページレイアウトを設定して、1ファイルずつ任意の名前をつけて保存できるように、コードを加えていきたいと思います。

またわからなくなったら質問させてください。

ありがとうございました。

【874】Re:ファイル分割
質問  あおぎんこ  - 19/4/26(金) 12:07 -

引用なし
パスワード
   ▼マナ さん:

さっそく追加質問をさせてください。

ファイルを保存するときに、分割元ファイルにある文字をファイル名にしたいと考えています。

使用したい文字の位置は一定ではないのですが、必ず「番号」という文字があるセルの次のセルに入っているので、
「番号」を検索し、右に一つタブ移動し取得した文字列をファイル名の変数に格納という方法で何とか取得できないかと考えているのですが
検索はできるのですが、見つかった個所を選択するというのができずにいます。

myPage内に必ず1つ「番号」はあるので、myPageの範囲確定後に
検索文字列を赤で表示するコードを参考に下記のように記述しています。

with myPage.Find
.text="番号"
Do While .Execute
myPage.HighlightColorIndex= wdRed
Loop
End With

これで赤く表示されるのですが、カーソルは動いていないので、
検索文字列に一つ右というのがうまくいきません。
検索文字にカーソルを持っていきたいのですが、方法がよくわかりません。
myPage.HighlightColorIndex= wdRed をどのように変えたらいいのか。。
検索文字にカーソルが移動できたら、
その後は
Selection.MoveRight Unit:=wdCell
で右に一つカーソル移動し
その文字列をコピーすればいいのかなと思っております。(ここはまだコードを思いついていませんがなんとか)

もしくはファイル名をうまく取得できる方法がほかにありましたら、ご教示いただけると幸いです。

よろしくお願いいたします。

【875】Re:ファイル分割
発言  マナ  - 19/4/26(金) 18:06 -

引用なし
パスワード
   ▼あおぎんこ さん:

こんな感じでできると思います。

Sub test()
  Dim myPage As Range
  Dim r As Range
  Dim s As String

  Set myPage = ActiveDocument.Range
  Set r = myPage.Duplicate

  With r.Find
    .Text = "番号"
    If .Execute Then
      If r.Information(wdWithInTable) Then
        s = r.Cells(1).Next.Range.Text
        s = Left(s, Len(s) - 2)
      End If
    End If
  End With

  MsgBox s

  myPage.Select

End Sub


この操作が、ファイル分割の後で
myPage の範囲が変わってもよいのであれば
変数 r を使う必要ないです。


  

【876】Re:ファイル分割
お礼  あおぎんこ  - 19/5/8(水) 14:38 -

引用なし
パスワード
   ▼マナ さん:

すっかり遅くなってすみません。
ご教示ありがとうございます。
ご提示いただいたコードを試してみたところ、ばっちりできました。

ファイル分割のあとなので 変数rを使用しなくてもうまくいきました。
でも.Duplicateで複製する方法があるのですね。勉強になりました。

それと s = r.Cells(1).Next.Range.Textで次のセルのテキストを取得
したときに *が末尾に入ることや、*が2文字となることも今回勉強にな
りました。

今回分割したファイルを配布し、また回収して1つのファイルに結合する
予定です。
こちらは今コードを書いている途中です。
自力で頑張りますが、つまづいたときにはまた質問をさせてください。
どうぞよろしくお願いいたします。


>こんな感じでできると思います。
>
>Sub test()
>  Dim myPage As Range
>  Dim r As Range
>  Dim s As String
>
>  Set myPage = ActiveDocument.Range
>  Set r = myPage.Duplicate
>
>  With r.Find
>    .Text = "番号"
>    If .Execute Then
>      If r.Information(wdWithInTable) Then
>        s = r.Cells(1).Next.Range.Text
>        s = Left(s, Len(s) - 2)
>      End If
>    End If
>  End With
>
>  MsgBox s
>
>  myPage.Select
>
>End Sub
>
>
>この操作が、ファイル分割の後で
>myPage の範囲が変わってもよいのであれば
>変数 r を使う必要ないです。

1 / 298 ツリー 前へ→
ページ:  ┃  記事番号:
201900
(SS)C-BOARD v3.8 is Free