Word VBA質問箱 IV

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

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


723 / 886 ←次へ | 前へ→

【169】Re:文字列の抜き出し
回答  H. C. Shinopy  - 04/11/26(金) 22:24 -

引用なし
パスワード
   ワイルドカードを使って検索し、
その検索した文字列範囲を取得すれば、
「」に囲まれてる部分を抜き出すことが可能です。

検索する文字列を『 「*」 』と指定します。
(* は、任意の長さの文字列を意味します。)

どこへ抜き出すのか判りませんが、
ここでは、抜き出した文字列を新しい文書に引き渡すと解釈します。

Sub myTypeText()
 Dim myStartMarker As Word.Range ' 検索開始点
 Dim DocOne As String ' 原典文書ファイル名
 Dim DocNew As String ' 新規文書ファイル名
 Dim myText As String ' 抜き出し文字列
 '
 Rem 検索開始点の取得。
 Rem カーソルが文章の途中にあると、不都合が起こるので、
 Rem 単語の先頭に移動する。
 Set myStartMarker = Selection.Range
 Selection.Sentences(1).Select
 Selection.Collapse wdCollapseStart
 '
 Rem 原典文書ファイル名の取得。
 DocOne = ActiveDocument.Name
 '
 Rem 抜き出し先文書ファイル名の取得。
 Documents.Add
 DocNew = ActiveDocument.Name
 Documents(DocOne).Activate
 '
 Rem 検索開始(ワイルドカードを使用)。
 Rem 『「*」』を検索。
 With Selection.Find
  .ClearFormatting
  .Text = "「*」"
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindStop
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
 '
 Rem 検索実行。文字列抜き出し。
 Do While Selection.Find.Execute
  myText = Selection.Range.Text
  myText = Mid(myText, 2, Len(myText) - 2)
  '
  Documents(DocNew).Activate
  Selection.TypeText Text:=myText & vbCr
  '
  Documents(DocOne).Activate
  Selection.Collapse wdCollapseEnd
 Loop
 '
 Rem 検索開始点に戻る。
 myStartMarker.Select
 MsgBox "検索終了!"
 '
 Rem 新規文書ファイルの表示。
 Documents(DocNew).Activate
 Selection.HomeKey Unit:=wdStory
End Sub ' myTypeText

1,436 hits

【168】文字列の抜き出し みみ 04/11/26(金) 4:41 質問
【169】Re:文字列の抜き出し H. C. Shinopy 04/11/26(金) 22:24 回答
【171】Re:文字列の抜き出し みみ 04/11/28(日) 22:29 お礼

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