
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
納期順に勝手に並べ替えられるようにしたいのですが…
Excel(エクセル)
-
ワードのインデント機能、ぶら下がりなど 会社で知ってる人いない説ありますよね
Word(ワード)
-
エクセルで、数字の下4桁の0を削除する関数
Excel(エクセル)
-
-
4
excelですが一つのマスに入ってる文字を2つのマスに変更できますか
Excel(エクセル)
-
5
標準、数値、文字列・・・VLOOKUPで参照がごちゃごちゃで困ってます
Excel(エクセル)
-
6
文字が書かれた写真や画像の文字をコピーして、Wordなどに貼り付ける方法はありますか?
その他(Microsoft Office)
-
7
エクセルで図形を含む複数のブックを結合するには
Excel(エクセル)
-
8
エクセルのブック名の付け方
Excel(エクセル)
-
9
エクセルで作れる簡単なスケジュール表(日程管理)、有りますか?
Excel(エクセル)
-
10
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
11
wordの脚注の挿入について
Word(ワード)
-
12
MS Word 画像のサイズを変更する方法
Word(ワード)
-
13
Excelのデータの入力規則の問題点について
Excel(エクセル)
-
14
VBA の単語の意味を教えて下さい。
Excel(エクセル)
-
15
① 【Excel】チェックボックス Excelの「チェックボックス」を設定出来たのですが✅を入れた項
Excel(エクセル)
-
16
エクセルの数式について教えてください。
Excel(エクセル)
-
17
パソコンのエクセルの操作について教えて下さい。 特定の箇所にフィルターをつけるやり方がわかりません。
Excel(エクセル)
-
18
MacのExcelで、ショートカットControl+TABが利きません
Excel(エクセル)
-
19
Excelの関数で質問です
Excel(エクセル)
-
20
縦使い・横書きは 画像のようなフォーマット(書き方)でしょうか?
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの文字列を上...
-
同様の質問になってしまいます...
-
ワードの段落番号と文字の隙間...
-
ワードで「 」(カギかっこ)の...
-
ワードの句読点が変な位置に出...
-
ワードで,一瞬,英数になって...
-
ワードで図の変更をすると図の...
-
ワードで4段組みで文章を書い...
-
テスト問題などにある四角い空...
-
ワード レイアウトの崩れ
-
我慢の左上に文字が表示される現象
-
ワードで四角形の図形の中に文...
-
Office365 ワードのアイコンが...
-
ワードが白と黒が反転してしま...
-
ワードの画質の設定
-
ワード PDF化した際、背景の...
-
ワードの読み上げ音声について ...
-
office ワードで段組みで分けた...
-
マイクロソフトワードのアプリ...
-
<OFFICE>フォントを教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの文字列を上...
-
ワードで四角形の図形の中に文...
-
ワードの画質の設定
-
ワードでページ全体に色をつけ...
-
ワードで「 」(カギかっこ)の...
-
我慢の左上に文字が表示される現象
-
ワードの読み上げ音声について ...
-
Office365 ワードのアイコンが...
-
ワードで4段組みで文章を書い...
-
ワード PDF化した際、背景の...
-
テスト問題などにある四角い空...
-
ワードで,一瞬,英数になって...
-
ワードで図の変更をすると図の...
-
ワードが白と黒が反転してしま...
-
ワードの段落番号と文字の隙間...
-
office ワードで段組みで分けた...
-
正の字の入力
-
文章の途中に四角い穴埋めをつ...
-
ワード(office365)のワード、...
-
同様の質問になってしまいます...
おすすめ情報