Word VBA質問箱 IV

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

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


33 / 840 ←次へ | 前へ→

【832】Re:各ページ各行それぞれ違う文字列の挿入
回答  亀マスター  - 18/2/5(月) 13:19 -

引用なし
パスワード
   > Selection.GoTo What:=wdGoToPage, Which:=wdGoToFirst, Count:=1

無限ループしている直接の原因はこれでしょう。
これはカーソルを1ページ目へ移動する記述ですので、ループ処理の中でこれを使えば、いつも1ページ目しか処理されず、ループも終わらなくなりますね。

あと、その部分を削ったとしても今のままでは各ページの1行目だけに文字が挿入され、2行目以降が処理されなくなるように思えます。

文字を挿入する部分は、以下のように考えてみてください。
それぞれの処理の記述の仕方がわからなければ、再質問してください。

Do
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.MoveEndWhile Cset:=myExcludes, Count:=wdBackward

  'ループの中でmyText1とmyText2の内容を変更できるように工夫が必要
  With Selection
    .InsertBefore myText1
    .InsertAfter myText2
  End With

  'もし10行目まで処理を終えていればループを抜ける
  If (10行目まで終わっている)
    (ループを抜ける)
  'まだ10行目になってなければカーソルを次の行に移動する
  Else
    (カーソルを次の行に移動)
  End If

Loop


ちなみに、

> Dim doc As Word.Document
> Set doc = Application.ActiveDocument

> Dim myDoc As Document
> Dim myRange As Range
> Set myDoc = ActiveDocument
> With Selection
>  Set myRange = myDoc.Range(.End - Len(myText2), .End)
> End With
> Set myRange = Nothing
> Set myDoc = Nothing

これらは完全に不要な記述ですね。実質的に何も処理していないので。
複数の処理について参考サイトからコピーしてきたのだと思われますが、あなたがやろうとしていることには必要ありませんよ。


> myExcludes

一見すると、変数の定義がされていないようです。
バグの元になるので、
Dim last_page As Long
などと並べて
Dim myExcludes As String
と記述しておいた方がいいですよ。


> Const myText1 As String = "<item id=""" '前の文字列"
> Const myText2 As String = """>" '後の文字列

間違いではないのですが、普通、変数や定数の宣言はコードの最初にしてしまいます。
Dim last_page As Long
などと並べて記述しておいた方がいいですよ。

> myExcludes = Chr(9) & Chr(10) & Chr(11) & Chr(12) & Chr(13)

ループ処理の中に記述すると、何度も同じ処理をすることになるので(今回の場合大した問題ではないですが)、ループに入る前に記述しましょう。

67 hits

【829】各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/2(金) 10:58 質問[未読]
【830】Re:各ページ各行それぞれ違う文字列の挿入 亀マスター 18/2/2(金) 23:06 発言[未読]
【831】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/5(月) 9:30 質問[未読]
【832】Re:各ページ各行それぞれ違う文字列の挿入 亀マスター 18/2/5(月) 13:19 回答[未読]
【833】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/6(火) 11:14 質問[未読]
【835】Re:各ページ各行それぞれ違う文字列の挿入 亀マスター 18/2/6(火) 19:41 回答[未読]
【836】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/7(水) 14:03 質問[未読]
【837】Re:各ページ各行それぞれ違う文字列の挿入 亀マスター 18/2/7(水) 21:38 発言[未読]
【838】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/9(金) 12:47 質問[未読]
【839】Re:各ページ各行それぞれ違う文字列の挿入 亀マスター 18/2/10(土) 0:08 回答[未読]
【844】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/13(火) 12:48 質問[未読]
【848】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/14(水) 10:31 質問[未読]
【849】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/14(水) 11:05 お礼[未読]
【842】Re:各ページ各行それぞれ違う文字列の挿入 マナ 18/2/10(土) 15:00 発言[未読]
【845】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/13(火) 14:12 質問[未読]
【846】Re:各ページ各行それぞれ違う文字列の挿入 マナ 18/2/13(火) 19:54 発言[未読]
【847】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/14(水) 10:22 発言[未読]
【850】Re:各ページ各行それぞれ違う文字列の挿入 マナ 18/2/14(水) 19:51 発言[未読]
【851】Re:各ページ各行それぞれ違う文字列の挿入 あかよん 18/2/15(木) 14:03 お礼[未読]

33 / 840 ←次へ | 前へ→
ページ:  ┃  記事番号:
199953
(SS)C-BOARD v3.8 is Free