![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
下記のVBAはWORDファイル内の青文字で書かれた登録日を検索し、MSGBOXに表示するもので、正常に使えています。 しかし、MSGBOX内の表示がファイル内での順番になっています。昇順または降順表示にしたいのですが、 ネット検索してトライしましたが結果が得られていません。ご指導いただければ大変たすかります。よろしくお願いします。
Sub TEST()
'検索 青文字「ABC」+ 日付
Dim vv As Variant
Dim i As Integer
i = 0
ReDim vv(i)
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Font.Color = wdColorBlue
.Text = "登録日 202[0-9]/[0-9]{1,2}/[0-9]{1,2}"
.MatchFuzzy = False
.MatchWildcards = True
Do While Selection.Find.Execute
vv(i) = Selection
i = i + 1: ReDim Preserve vv(i)
Loop
End With
MsgBox "登録日" + vbCrLf + vbCrLf + Join(vv, vbCrLf)
End Sub
No.2ベストアンサー
- 回答日時:
ごめんなさい 訂正いたします
If arrData(i) > arrData(j) Then
swap = arrData(i)
arrData(i) = arrData(j)
arrData(j) = swap
End If
なので
QuickSortではなくBubble_Sort ですね
(ファンクション名を訂正してください)
参考:
https://daitaideit.com/vba-array-sort/
No.3
- 回答日時:
>検索結果が重複して有る場合、1つだけ表示することができるのでしょうか?
WORDファイル内でメッセージ作成の処理とすでに出来ている処理を考えると4,5行のVBA処理コードで容易にできると思います
データの重複処理と言うとCollectionオブジェクトやDictionaryオブジェクトを使う例があります
今回既に配列を作成するロジック
vv(i) = Selection
i = i + 1: ReDim Preserve vv(i)
がありますのでKey自体の取り出しが不要でItem要素が無いので重複分岐のトリガーとして使えば良さそうです
(一度オブジェクトに登録したデータをソートするのは少し複雑になるため分岐処理のトリガーとして使うのが簡単です)
具体的な例などは私が対応できるかわかりませんが別スレッドを建てる方が良いでしょう
ご質問の追加に関してはサイトの規約に抵触する可能性が高いのです
ご質問表題、キーワードなどから来る後の訪問者の為に、
追加質問に対しての回答をベストアンサーに選ばない様にしてください
No.1
- 回答日時:
Wordでのテストが出来ないので未検証ですが
配列vvをMsgBox前でソートする方法でいかがでしょうか
ソートについては下記をじっくり読んでください
参考 https://excel-ubara.com/excelvba5/EXCELVBA228.html
ExcelVBAですが今回は問題ないと思います
サンプル Function扱いとしています(昇順)
Function Array_QuickSort(arrData As Variant) As Variant()
Dim i As Long, j As Long
Dim swap As Variant
For i = LBound(arrData) To UBound(arrData)
For j = UBound(arrData) To i Step -1
If arrData(i) > arrData(j) Then
swap = arrData(i)
arrData(i) = arrData(j)
arrData(j) = swap
End If
Next j
Next i
Array_QuickSort = arrData
End Function
呼び出し位置
ご質問コード下部
i = i + 1: ReDim Preserve vv(i)
Loop
End With
vv = Array_QuickSort(vv)
MsgBox "登録日" + vbCrLf + vbCrLf + Join(vv, vbCrLf)
End Sub
Qchan1962様
早速ご連絡いただきありがとうございました。Wordで検証したところ、希望通りの結果となりました。arrData(i) > arrData(j)をarrData(i) < arrData(j)にすることにより、降順にすることも確認できました。大変に助かります。 もう一つ教えていただきたいのですが、検索結果が重複して有る場合、1つだけ表示することができるのでしょうか? 甘えてすいませんがよろしくご教授いただけますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/01/16 10:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) マクロについて教えてください。 下記のマクロは以前教えて頂いたマクロです。 マクロを実行すると 指定 6 2024/01/17 17:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/11/09 11:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/01/12 16:09
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
Latexで図番号だけを「図1.1」...
-
アクセス 壊れた? 「ファイ...
-
.NETアプリを作ったときの .man...
-
binファイルを解凍したいの...
-
公文書のxmlファイルの開き方が...
-
既に開いているエクセルを閉じ...
-
iPhoneでXMLファイルを開くには...
-
リンクの張り付けかたを教えて...
-
ストレージにある全てのファイ...
-
#include <Windows.h>というヘ...
-
C言語---ファイルに出力したデ...
-
CSSファイルの日本語コメントが...
-
reaper音声ファイルについて
-
バッチファイルでドラッグ&ドロ...
-
CRCが一致する確率
-
bibtexで参考文献作成できない
-
XPでVB6.0ディストリビューショ...
-
ファイルをDrag&Dropされている...
-
プログラム/条件分岐について2
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Latexで図番号だけを「図1.1」...
-
コマンドプロンプトで作成日時...
-
binファイルを解凍したいの...
-
リンクの張り付けかたを教えて...
-
アクセス 壊れた? 「ファイ...
-
公文書のxmlファイルの開き方が...
-
#include <Windows.h>というヘ...
-
.NETアプリを作ったときの .man...
-
Seasar2のdiconファイルの読み方
-
bibtexで参考文献作成できない
-
jarファイル
-
CRCが一致する確率
-
VBAでのicsファイル変換
-
C#でログファイルにファイルパ...
-
C言語---ファイルに出力したデ...
-
既に開いているエクセルを閉じ...
-
コマンドプロンプトで、指定し...
-
VBAのバイナリ出力について
-
自分で作成した重要ファイルを...
-
CSSファイルの日本語コメントが...
おすすめ情報