
1つのファイルに1種類の図表番号が約2,000ほどあり、何らかの原因でスタイルが標準になってしまいました. 修正用のプログラムは以下のようになっていますが、エラーはありませんがスタイルが変更になっておりません。ご指摘よろしくお願いします。
Sub B015参考文献スタイル変更()
Dim rng As Range
Dim searchText As String
Dim styleName As String
' 検索するラベルのテキスト
searchText = "参考文献[0-9]{1,}"
' 適用するスタイル名
styleName = "マ_連番"
' ドキュメント全体を範囲に設定
Set rng = ActiveDocument.Content
' ワイルドカードを使用して検索とスタイル適用
With rng.Find
.ClearFormatting
.text = searchText ' 数字が続くラベルを検索
.MatchWildcards = True
.Format = True
.Execute
Do While .found
' スタイルを適用
rng.style = ActiveDocument.Styles(styleName)
rng.Collapse wdCollapseEnd
.Execute
Loop
End With
MsgBox "ラベル「" & searchText & "」にスタイル「" & styleName & "」が適用されました。"
End Sub
No.2ベストアンサー
- 回答日時:
VBAで処理する前に、通常の高度な検索機能での処理として、以下の
[検索する文字列]で検索でいているのでしょうか?
参考文献[0-9]{1,}
検索対象が[図表番号]で自動挿入されたものならば、挿入した表記は
ラベル名+半角スペース+図表番号としての連番(SEQフィールド)で
用意されます。
参考文献 [0-9]{1,}
上記でワイルドカード検索が出来ているなら、一部の修正するだけで
済みますが、私が試したものだと検索できませんでした。
ラベル名だけとか連番部分だけなら検索したのですが、続けた場合の
処理は何故かできなかったからです。
もしも、通常の高度な検索での処理ができない場合は、以下のような
検索に切り替えたほうが良いかもしれません。
[ Alt+F9 ]キーでフィールドコードを表示。
[高度な検索]で、[ワイルドカード]と[あいまい検索]へのチェックを
入れないで、[検索する文字列]を以下のようにします。
参考文献 \d SEQ 参考文献
これで検索出来た場合は、マクロを上記手順で処理します。
Sub B015参考文献スタイル変更()
Dim rng As Range
Dim searchText As String
Dim styleName As String
' 検索するラベルのテキスト(参考文献ラベルのみ)
searchText = "参考文献 ^d SEQ"
' 適用するスタイル名
styleName = "マ_連番"
' ドキュメント全体を範囲に設定
Set rng = ActiveDocument.Content
' フィールドコードを表示する
ActiveWindow.View.ShowFieldCodes = True
' 検索とスタイル適用
With rng.Find
.ClearFormatting
.text = searchText ' 数字が続くラベルを検索
.Format = True
.Execute
Do While .found
' スタイルを適用
rng.style = ActiveDocument.Styles(styleName)
rng.Collapse wdCollapseEnd
.Execute
Loop
End With
' フィールドコードを非表示にする
ActiveWindow.View.ShowFieldCodes = False
MsgBox "ラベル「" & searchText & "」にスタイル「" & styleName & "」が適用されました。"
End Sub
Enunokokoro 様
詳しくご解説ありがとうございます。修正頂いたVBAで希望通り、検索後スタイルが変更になりました。 「参考文献 [0-9]{1,}」もだめ、ご指示頂いた高度な検索もだめで、多くのデータをを手動しかないかと諦めておりましたので、大変助かります。
No.3
- 回答日時:
No.2の回答者です。
質問にあるマクロで検索結果があるかどうかを確かめる書き方です。
https://www.relief.jp/docs/word-vba-find-if-not- …
Sub B015参考文献スタイル変更()
Dim rng As Range
Dim searchText As String
Dim styleName As String
' 検索するラベルのテキスト
searchText = "参考文献[0-9]{1,}"
' 適用するスタイル名
styleName = "マ_連番"
' ドキュメント全体を範囲に設定
Set rng = ActiveDocument.Content
' ワイルドカードを使用して検索とスタイル適用
With rng.Find
.ClearFormatting
.Text = searchText ' 数字が続くラベルを検索
.MatchWildcards = True
.Format = True
' 検索対象があれば
If .Execute Then
Do While .Found = True
' スタイルを適用
rng.Style = ActiveDocument.Styles(styleName)
rng.Collapse wdCollapseEnd
.Execute
Loop
MsgBox "ラベル「" & searchText & "」にスタイル「" & styleName & "」が適用されました。"
' 検索対象がない場合
Else
MsgBox "検索対象が見つかりませんでした"
End If
End With
End Sub
ご丁寧に追加情報ありがとうございます。今後の参考にさせてもらいます。実際には参考文献+SEQ+情報元の文字列の1行表示なっておりますが、「searchText = "参考文献 ^d SEQ"」で1行すべてにスタイルが適用され元に戻りました。深謝です。
No.1
- 回答日時:
こんばんは
WordのVBAはほとんど存じませんので、よくわかってませんけれど・・・
>1つのファイルに1種類の図表番号が約2,000ほどあり~~
通常の「図表番号の挿入」で入れている図表番号のことですよね。
その場合、番号はテキストボックスになっていて、本文ではないと思います。
ですので、「ActiveDocument.Content」から検索してもヒットしないのではないでしょうか?
もしそうなら、テキストボックスから検索するか、画像等に紐づけられたCaptionから検索するなどの方法になりそうな気がしますけれど・・
ご返信ありがとうございます。検索ボックスでワイルドカード検索してみましたが、参考文献[0-9]{1,}は出てきませんでした。私もみようみまねでVBAをしている高齢者で、数多くの処理を手動でするのを避けないと思っていますが、手動になるかもしれませんね。早速のご連絡に深謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) WORD VBA プログラム修正をお願いします。 2 2024/04/25 23:43
- Visual Basic(VBA) wordの文書内で上から順番に"有"、"無"などを走査し該当のキーワードがあったら丸で囲む、最終文字 1 2024/02/08 16:41
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) wordのマクロで思うように行きません(ファイル削除ができない) 3 2023/09/12 08:34
- Visual Basic(VBA) VBAの間違い教えて下さい 5 2024/08/03 21:35
- Visual Basic(VBA) Word VBA MSGBOX 内で降順表示 3 2024/03/28 13:12
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが 1 2024/03/07 16:21
このQ&Aを見た人はこんなQ&Aも見ています
-
納期順に勝手に並べ替えられるようにしたいのですが…
Excel(エクセル)
-
同率順位の発生しないランキング表をエクセルで作成したい
Excel(エクセル)
-
文字が書かれた写真や画像の文字をコピーして、Wordなどに貼り付ける方法はありますか?
その他(Microsoft Office)
-
-
4
Excelでの表の作り方
Excel(エクセル)
-
5
エクセルで、数字の下4桁の0を削除する関数
Excel(エクセル)
-
6
win10でexcel2003
Excel(エクセル)
-
7
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
8
エクセルの質問です。 F列からL列で、条件付き書式で一つでも色がついたセルをAB列で*で表示したいの
Excel(エクセル)
-
9
条件付き書式設定で罫線を引きたいです
Excel(エクセル)
-
10
① 【Excel】チェックボックス Excelの「チェックボックス」を設定出来たのですが✅を入れた項
Excel(エクセル)
-
11
Excelのデータの入力規則の問題点について
Excel(エクセル)
-
12
ワードのインデント機能、ぶら下がりなど 会社で知ってる人いない説ありますよね
Word(ワード)
-
13
パソコンのエクセルの操作について教えて下さい。 特定の箇所にフィルターをつけるやり方がわかりません。
Excel(エクセル)
-
14
MacのExcelで、ショートカットControl+TABが利きません
Excel(エクセル)
-
15
Excel関数の解決方法
Excel(エクセル)
-
16
エクセルで図形を含む複数のブックを結合するには
Excel(エクセル)
-
17
Excelの関数で質問です
Excel(エクセル)
-
18
標準、数値、文字列・・・VLOOKUPで参照がごちゃごちゃで困ってます
Excel(エクセル)
-
19
UNIQUE関数の代用
Excel(エクセル)
-
20
excelですが一つのマスに入ってる文字を2つのマスに変更できますか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの文字列を上...
-
ワードが白と黒が反転してしま...
-
office ワードで段組みで分けた...
-
同様の質問になってしまいます...
-
ワード(office365)のワード、...
-
群像新人賞って、400字詰め換算...
-
文章の途中に四角い穴埋めをつ...
-
縦使い・横書きは 画像のような...
-
正の字の入力
-
テスト問題などにある四角い空...
-
ワードの隠し文字について。 隠...
-
エクセルExcelで作った表をワー...
-
グラフを挿入した時の線のスタ...
-
Office365 ワードのアイコンが...
-
office365 のアプリについて
-
ワードでプリンターがA4までな...
-
ワード PDF化した際、背景の...
-
マイクロソフトワードのアプリ...
-
パソコンを修理にだすときにワ...
-
我慢の左上に文字が表示される現象
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの文字列を上...
-
国税局への申告用紙印刷
-
ワードが白と黒が反転してしま...
-
縦使い・横書きは 画像のような...
-
マイクロソフトワードのアプリ...
-
テスト問題などにある四角い空...
-
群像新人賞って、400字詰め換算...
-
文章の途中に四角い穴埋めをつ...
-
Office365 ワードのアイコンが...
-
win10ですがワードやメモ帳など...
-
正の字の入力
-
我慢の左上に文字が表示される現象
-
ワード PDF化した際、背景の...
-
パソコンのワードでいつもは、...
-
エクセルExcelで作った表をワー...
-
ワード 表の不要な縦線がどうし...
-
パソコンを修理にだすときにワ...
-
グラフを挿入した時の線のスタ...
-
ワードの隠し文字について。 隠...
-
自分で作成したワードのテンプ...
おすすめ情報