Word VBA質問箱 IV

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

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


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

【694】数値列タイトルを検出しページ更新 mimikoqa 10/6/16(水) 14:59 質問[未読]
【695】Re:数値列タイトルを検出しページ更新 りる 10/6/16(水) 21:50 発言[未読]
【696】Re:数値列タイトルを検出しページ更新 mimikoqa 10/6/17(木) 10:11 回答[未読]
【697】Re:数値列タイトルを検出しページ更新 H. C. Shinopy 10/6/18(金) 9:22 回答[未読]
【698】Re:数値列タイトルを検出しページ更新 mimikoqa 10/6/18(金) 11:17 お礼[未読]

【694】数値列タイトルを検出しページ更新
質問  mimikoqa  - 10/6/16(水) 14:59 -

引用なし
パスワード
   必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。

【695】Re:数値列タイトルを検出しページ更新
発言  りる  - 10/6/16(水) 21:50 -

引用なし
パスワード
   mimikoqa さん、こんばんは。
>必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。

たとえばどんな感じの文書ですか?
12345678
あああああああああああああ
あああああああああああああ
あああああああああああああ
999999999
あああああああああああああ

こんな?

【696】Re:数値列タイトルを検出しページ更新
回答  mimikoqa  - 10/6/17(木) 10:11 -

引用なし
パスワード
   ▼りる さん:
>mimikoqa さん、こんばんは。
>>必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。
>
>たとえばどんな感じの文書ですか?
>12345678
>あああああああああああああ
>あああああああああああああ
>あああああああああああああ
>999999999
>あああああああああああああ
>
>こんな?

早速、お目通しいただき有難うございます。
全くこの通りです。ただし、文字列とWORD文書の間に空き行が入ったり、WORD文書内に空き行が入ったりはします。また、数値列は全くのランダムな配列で規則性はありません。以上ですがよろしくお願いします。

【697】Re:数値列タイトルを検出しページ更新
回答  H. C. Shinopy  - 10/6/18(金) 9:22 -

引用なし
パスワード
   8〜10桁の数字を検索し、その数字の前に改ページを
追加するということでいいでしょうか?

1.まず、テスト用の文書を用意し、下の文字列をコピーして貼り付け。

12345678
あああああああああああああ
あああああああああああああ
あああああああああああああ
999999999
あああああああああああああ

2.[マクロの記録]で下記の文字列置換の手作業する。
[検索する文字列]に「([0-9]{8,10})」、[置換後の文字列]に「^m\1」を指定する。
[オプション]に[ワイルドカードを使用する]のチェックをONにする。
[すべて置換]ボタンを押す。
検索置換が終わったら、[検索と置換]ダイアログボックスを閉じて、[Del]キーを押す(すべて置換後に文書の先頭に戻るはずなので)。

その結果がこれ↓。
実際の文書で正しく動くかどうか…後は必要に応じて手直しして下さい。

Sub Macro1()
'
' Macro1 Macro
'
'
 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 With Selection.Find
  .Text = "([0-9]{8,10})"
  .Replacement.Text = "^m\1"
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
 Selection.Find.Execute Replace:=wdReplaceAll
 Selection.Delete Unit:=wdCharacter, Count:=1
End Sub

【698】Re:数値列タイトルを検出しページ更新
お礼  mimikoqa  - 10/6/18(金) 11:17 -

引用なし
パスワード
   ▼H. C. Shinopy さん:
>8〜10桁の数字を検索し、その数字の前に改ページを
>追加するということでいいでしょうか?
>
>1.まず、テスト用の文書を用意し、下の文字列をコピーして貼り付け。
>
>12345678
>あああああああああああああ
>あああああああああああああ
>あああああああああああああ
>999999999
>あああああああああああああ
>
>2.[マクロの記録]で下記の文字列置換の手作業する。
>[検索する文字列]に「([0-9]{8,10})」、[置換後の文字列]に「^m\1」を指定する。
>[オプション]に[ワイルドカードを使用する]のチェックをONにする。
>[すべて置換]ボタンを押す。
>検索置換が終わったら、[検索と置換]ダイアログボックスを閉じて、[Del]キーを押す(すべて置換後に文書の先頭に戻るはずなので)。
>
>その結果がこれ↓。
>実際の文書で正しく動くかどうか…後は必要に応じて手直しして下さい。
>
>Sub Macro1()
>'
>' Macro1 Macro
>'
>'
> Selection.Find.ClearFormatting
> Selection.Find.Replacement.ClearFormatting
> With Selection.Find
>  .Text = "([0-9]{8,10})"
>  .Replacement.Text = "^m\1"
>  .Forward = True
>  .Wrap = wdFindContinue
>  .Format = False
>  .MatchCase = False
>  .MatchWholeWord = False
>  .MatchByte = False
>  .MatchAllWordForms = False
>  .MatchSoundsLike = False
>  .MatchFuzzy = False
>  .MatchWildcards = True
> End With
> Selection.Find.Execute Replace:=wdReplaceAll
> Selection.Delete Unit:=wdCharacter, Count:=1
>End Sub


見事なご回答に感謝いたします。
何の手直しをすることなくcopy,pasteさせていただき実行させていただきました。
1999個の文書が一瞬のうちに処理され所望の改ページが出来上がりました。
全くの感激です。自分の力量不足を痛感し、改めまして
.Text = "([0-9]{8,10})"
.Replacement.Text = "^m\1"
.MatchWildcards = True
の使い方を勉強し直す所存です。
有難うございました。厚く御礼を申し上げます。

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