
No.1ベストアンサー
- 回答日時:
'選択状態なら、カーソルを一つ進め、非選択状態にする
If (Selection.End <> Selection.Start) Then
Selection.Start = Selection.Start + 1
Selection.End = Selection.Start
End If
’既存の検索処理
Selection.Find.ClearFormatting
With Selection.Find
.Text = "??"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.Start/Endなどというプロパティがあったんですね! 勉強になりました。おしえていただいたとおりにやったらできました! たいへんありがとうございました。
ですが、疑問がのこりました。じつは、同じような方法を前にためしたのですが、その方法とは、
Selection.MoveLeft Unit:=wdLine, Count:=1
Selection.MoveRight Unit:=wdLine, Count:=1
を使って、教えていただいたのと同じように、カーソル位置をひとつ右にずらすというものでした(1行目は、選択範囲を解除してカーソルを選択範囲の最初の位置にもってくるため)。
しかしこれを実行したら、文章末で無限ループを起こしてしまいました。
カーソルを右に1つずらすというやり方は同じなのに、どうして教えてもらった方法では、無限ループしないのか不思議に思いました。
No.2
- 回答日時:
>永久ループ
既存がどうなっているかを、ちゃんと書かないと、原因はわかりません。
カーソルを左右に動かしてやるなら、これでもいい
If (Selection.End <> Selection.Start) Then
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
End If
っていうか
If (Selection.End <> Selection.Start) Then
Selection.MoveLeft
Selection.MoveRight
End If
でいい
この回答への補足
ありがとうございます。
>既存がどうなっているかを、ちゃんと書かないと、原因はわかりません。
既存は、
Do
With Selection.Find.replacement.Font
.Underline = wdUnderlineDouble
End With
With Selection.Find
.Text = "[a-zA-Z0-9-]{1}?"
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
If Selection.Find.Execute = False Then
Exit Do
End If
If StrConv(Right(Selection.Text, 1), vbWide) = Right(Selection.Text, 1) And Not Right(Selection.Text, 1) = Chr(13) And Not Selection.Font.Color = wdColorGray50 Then
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
End With
End If
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Loop
というものでした。
a~z、A~Z、0~9およびハイフンの右隣に、全角文字がある場合、二重下線をつけるというものです。
Loopの前の2行を抜かすと、ABの次にCDを検索してしまいます。かといって、上の2行を入れると、文書末で無限ループしてしまいます。文書末に、半角スペースみたいなものがあって、それを[a-zA-Z0-9-]{1}?であると認識してしまうので無限ループするのではないかと考えましたが、原因はよくわかりません。
教えてもらった方法に直したところ、無限ループしなくなりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- ドライブ・ストレージ Windows10でのファイル内の文字列検索 SSDに寿命? 4 2022/07/12 03:25
- Android(アンドロイド) Pixelのレコーダーで文字起こしした英文を検索する方法 4 2022/10/21 07:45
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- その他(ソフトウェア) 秀丸エディタの最新版の質問です。文字検索で AAは検索して、AABBCCは検索しないことは出来ますか 2 2022/09/11 20:33
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Android Android、Webページの文字列検索はできない? 3 2022/05/29 11:02
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ドラッグ+右クリックの「Googl...
-
エクセルマクロでコメントから...
-
Outlookでのメールの検索について
-
Wordの検索機能で
-
goo検索
-
エクセルの検索窓で毎回検索場...
-
マウスで指定するだけですぐに...
-
助けてください!!
-
グーグル以外で
-
IE6 SP2 のアドレスバー検索がY...
-
Win2000のIEツールバー
-
画像検索のページが進みません
-
検索バー
-
ショートカットキー
-
ニコニコ動画投稿後
-
2ちゃんねる専用ブラウザJane S...
-
(β-α)^(n+m+1) という文字...
-
HPの検索アップ(SEO)について
-
Okwaveの検索が出来なくなりま...
-
powerDVD18で再生速度を変えたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの検索窓で毎回検索場...
-
編集した画像(JPEG)の保存場所...
-
wors赤い波線の検索
-
Wordで検索が一時停止する
-
サンダーバードで本文検索できない
-
エクセルでctrl+Fで検索できる...
-
VBAの質問になります Userform内で
-
Googleで検索を行った際の表示
-
教えて!goo、OKWebで、IEの文字...
-
Excelでの検索について
-
TSUTAYAのネットでの在庫検索を...
-
エクセルマクロの質問
-
文字化けして検索できません
-
文字列’ABC'を含むPDFファイル...
-
文字をドラッグすると ヤフー検...
-
IPアドレスで検索する方法を教...
-
検索・・・
-
参考URL
-
Excelで検索マクロを作りたい
-
ベロニカマーズ ユーチューブと...
おすすめ情報