
No.9ベストアンサー
- 回答日時:
なんか、、#7 が2重投稿になってますね(汗)
> (1)テスト見出し1
> (2)テスト見出し2
> の部分のみがゴシック+太字の書式になれば良いのです。
結果の認識についてすれ違いはないですね。Word2002 では縦書きでも問題
ありませんでした。どうも、環境の違いが原因ぽいのですけど、断定できる
だけの確証がありません。
では、#3 のコードで次のように修正したらどうなりますか?
.EndOf Unit:=wdParagraph, Extend:=wdExtend
↓
.EndOf Unit:=wdSentence, Extend:=wdExtend
この回答への補足
出来ました!ありがとうございます。
コードの修正できちんと処理されました。
しかも、処理にかかる時間もほんの一瞬ですね。
とりあえず処理したい文字列のパターンがすべて正規表現できるかやってみます。
No.10
- 回答日時:
> (1)テスト見出し1
> (2)テスト見出し2
> の部分のみがゴシック+太字の書式になれば良いのです。
いまさら、ですが、試行錯誤してみたら、一般機能の置換処理でもできますね。 (Word2000)
置換ダイアログの[オプション]を開いて、ワイルドカード使用 にチェックを入れ、
検索する文字列: ^13[((【○◎]*^13
[ ] の中には、見出しの文頭に使っている記号や文字を入れます。
置換後の文字列: ^&
更に、[書式]-[フォント] から ゴシック体と太字を指定。
で [すべて置換] をクリックします。
(1)あああああ
(2)いいいいい
のように、置換対象となる文字列が2行続くと置換されないものがありますが、見出しの
次に必ず本文があるのでしたら、問題ないと思います。
ありがとうございます。
なるほど、そういう方法もあるんですね。
それだったらマクロを自動記録するだけですね。
ですがよく見たら、置換対象となる文字列は2行続く事がありました…
No.8
- 回答日時:
うーーん。
。すれ違いがあるようですね。こちらが想定しているのは、例えば、下記のサンプルデータを Word にコピペ
して、マクロを実行すると、
(1)テスト見出し1
(2)テスト見出し2
の部分だけが、ゴシック+太字の書式になり、本文はそのままのはずです。
【サンプルデータ】
(1)テスト見出し1
本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル。
本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル。
(2)テスト見出し2
SampleData SampleData SampleData SampleData SampleData SampleData SampleData SampleData SampleData.
【サンプルデータ ここまで】
意図したものとは違ってますか? 補足頂いた内容は、
(1)テスト見出し1 本文サンプル本文サンプル....
のように改行が入らないとそうなるかもしれませんが、これだとご質問の仕様
と違いますから....
> “(1)”という文字列を検索して次に現れる改行(vbCr)までの文章を
> ゴシック体&ボールド体にしたい
どこが食い違ってますか?
この回答への補足
仰るとおり、上のサンプルでいきますと、
(1)テスト見出し1
(2)テスト見出し2
の部分のみがゴシック+太字の書式になれば良いのです。
コピペしてマクロを実行しましたところやはり前回と同じように文章すべてがゴシック+太字になってしまいます。
となると、環境の違いでしょうか。改行がおかしいのかも知れません。
WORD2000の縦書きですが、これは問題ないですよね?
No.7
- 回答日時:
うーーん。
。すれ違いがあるようですね。こちらが想定しているのは、例えば、下記のサンプルデータを Word にコピペ
して、マクロを実行すると、
(1)テスト見出し1
(2)テスト見出し2
の部分だけが、ゴシック+太字の書式になり、本文はそのままのはずです。
【サンプルデータ】
(1)テスト見出し1
本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル。
本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル本文サンプル。
(2)テスト見出し2
SampleData SampleData SampleData SampleData SampleData SampleData SampleData SampleData SampleData.
【サンプルデータ ここまで】
意図したものとは違ってますか? 補足頂いた内容は、
(1)テスト見出し1 本文サンプル本文サンプル....
のように改行が入らないとそうなるかもしれませんが、これだとご質問の仕様
と違いますから....
> “(1)”という文字列を検索して次に現れる改行(vbCr)までの文章を
> ゴシック体&ボールド体にしたい
どこが食い違ってますか?
No.6
- 回答日時:
> ...改行されたときに元に戻りません。
すみません。意味がわからないです。具体的にどういうことなのでしょうか?
普通、書式は自動では元に戻らないと思いますが...
> 処理がものすごく速い気がしますが。
Find を使ってキーワードを検索していますので、ループ回数は必要最小限に
なってます。
> ...(1)や(2)のような簡単なパターンだけじゃなく“【”や“○”や
> “◎”が含まれるものもあります
#3 の下記の検索パターンを修正することで、いかようにも対応します。
.Text = "[\((][0-90-9]{1,}[\))]" '<-- 検索パターン
正規表現による検索なので、正規表現で表せる以上は何パターンあろうとも
一括で処理可能です。
上のパターンは前半角対応で(数字)を表しています。
この回答への補足
度々すみません。
「改行されたときに元に戻らない」とは具体的に、
文書の最初に現れる(1)で太文字ゴシックに変換されるのですが、そのまま文書の最後まで変換されたままになってしまうという事です。
処理としましては、次の改行で元のフォント(明朝)に戻し、また該当文字列があった時に太文字ゴシックを開始する… と繰り返したいのです。
正規表現で表せれば、検索文字列がいくつあろうと一括処理が出来るんですね。
それは是非挑戦してみたいと思います。
No.4
- 回答日時:
#1です。
こんばんは。> 実は、(1)以外にも当然(2)、(3)・・・とあるわけでして
なのでしたら、私の方法の場合は次の2箇所を変更すればよいと思います。
ChkChar = "(1)" '← 太字にする先頭文字列です。
↓
ChkChar = ")" '← 太字にする先頭文字列を指定
Select Case Selection & Selection.Next & Selection.Next.Next
↓
Select Case Selection
もちろん (1)、(2)、‥‥、以外には、( ) で囲まれる文字列が無いとしてのこと
なのですが。
あと、
NXT: Loop
の部分は、ただの Loop にしてください。
試行錯誤の名残でした。
この回答への補足
度々ありがとうございます。
下にも書きましたが、パターンが結構いろいろありまして、一度の処理では不可能です。
30回この処理を実行すると、すごく時間がかかってしまいます。その中には“(1)”のように3文字のものもあれば、“【”のように1文字のものもあります。したがって、
Select Case Selection & Selection.Next & Selection.Next.Next
の部分も検索文字数によって変えなければなりません。
まぁ、この辺は自分で考えないといけませんね。
もう少し自分でも試行錯誤してみます。
No.3
- 回答日時:
> 実は、(1)以外にも当然(2)、(3)・・・とあるわけでして、
なら、こんな感じでどうですか? (2)、(3)にも対応しますよ。
Sub Sample()
Dim Rng As Range
For Each Rng In ActiveDocument.StoryRanges
With Rng.Find
.Text = "[\((][0-90-9]{1,}[\))]" '<-- 検索パターン
.MatchWildcards = True
Do While .Execute(Forward:=True)
With Rng
.EndOf Unit:=wdParagraph, Extend:=wdExtend
' フォント指定
.Font.Name = "MS ゴシック"
' 太字指定
.Font.Bold = wdToggle
.Collapse wdCollapseEnd
End With
Loop
End With
Next Rng
End Sub
この回答への補足
度々ありがとうございます。
試してみましたが、(1)や(2)以降フォントが変わるのですが、改行されたときに元に戻りません。
このままコピペで実行してもダメなんでしょうか?
成功すれば、処理がものすごく速い気がしますが。
あと、具体的に拾いたい文字列は、(1)や(2)のような簡単なパターンだけじゃなく“【”や“○”や“◎”が含まれるものもあります。
全部で30パターン以上あります。
そうなると一気に処理をするのは難しいと思うので、文字列ごとにプロシジャを走らせるか、ループさせるかしかないと思うのですが、処理速度が気になります。
No.2
- 回答日時:
こんにちは。
KenKen_SP です。こんな感じでも OK。....(1)というのは段落番号じゃないよね?
Sub Sample()
Dim Rng As Range
For Each Rng In ActiveDocument.StoryRanges
'For Each Rng In ActiveDocument.StoryRanges
With Rng.Find
.Text = "\(1\)" '<-- 検索パターン
.MatchCase = False
.MatchByte = False
.MatchWildcards = True
Do While .Execute(Forward:=True)
With Rng
.EndOf Unit:=wdParagraph, Extend:=wdExtend
' フォント指定
.Font.Name = "MS ゴシック"
' 太字指定
.Font.Bold = wdToggle
.Collapse wdCollapseEnd
End With
Loop
End With
Next Rng
End Sub
どうもありがとうございます。
(1)は段落番号じゃなく文字列です。要するに見出しとして目立たせたいのです。
KenKen_SPさんのコードはまだ試せていませんが、是非試してみたいと思います。
(1)だけでなく他にもたくさんの文字列があり、今後は処理時間をいかに縮めるかという事でやってみようと思います。
No.1
- 回答日時:
私なりの方法例です。
検索機能を使わないで文頭から文字チェックしていますので、少々時間がかかります。
3行目の (1) はすべて半角にしてありますが、実際の文字列に書き換えてください。
また、「次に現れる改行(vbCr)」とありますが、ここでは [Enter] 単体で改行された
段落記号(Ascコード=13) のみを対象にしています。
なお、[Shist]+[Enter] の「任意指定の行区切」のAscコードは 11、[Ctrl]+[Enter] の
改ページは 12 です。
Sub Kakko1()
Dim ChkChar
ChkChar = "(1)" '← 太字にする先頭文字列です。
Selection.EndKey Unit:=wdStory
ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="E"
Selection.HomeKey Unit:=wdStory
Do Until Selection.Range.Bookmarks.Exists("E")
Selection.MoveRight Unit:=wdCharacter, Count:=1
On Error GoTo Fin
Select Case Selection & Selection.Next & Selection.Next.Next
Case Is = ChkChar
Do Until Asc(Selection.Next) = 13
Selection.MoveRight Unit:=wdCharacter, Count:=1, _
Extend:=wdExtend
Loop
With Selection.Font
.Name = "MS Pゴシック"
.Bold = wdToggle
End With
End Select
NXT: Loop
Fin: ActiveDocument.Bookmarks("E").Delete
End Sub
どうもありがとうございます。
お教え頂いたコードで一発解決しました。
自分ではこんなコードは書けませんでした。
実は、(1)以外にも当然(2)、(3)・・・とあるわけでして、そうなってくると処理時間が気になります。
kakko1(str As Stirng)として引数を設定し、メインのコードからいちいちコールしたのですが、やはりすごく時間がかかります。配列に文字列を入れ、For文で処理しようとしてのですがうまくいきませんでした。
この辺はまた考えたいと思います。
とりあえず処理は出来るようになりましたので本当に感謝しています。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Word(ワード) ワードフォント 一括置換の方法 4 2022/12/31 00:27
- Word(ワード) Word文書で1,2,3...になっている脚注を、一括で(1),(2),...といった括弧つきに変更 2 2023/03/03 21:27
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- Word(ワード) ワードで,特定の文字だけ,字体を一括変換する方法は? 1 2023/04/26 10:11
- その他(インターネット接続・インフラ) Webサイトのフォント・級数変更について 1 2022/10/18 18:08
- Word(ワード) Wordで作った資料の修正方法 2 2023/06/19 00:51
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
新井祥さんのAV
-
このAV女優さんの名前
-
ビデオ屋さんのアダルトコーナ...
-
Windows Defenderのサンプルの...
-
測定値がまったく同じになった...
-
黒木薫のデビュー作って、どう...
-
AVの選び方について教えてくだ...
-
AVで、めちゃめちゃイケメンな...
-
VBAで既存のパワポのファイルを...
-
お勧めのエロ漫画
-
この人が誰なのか教えてください。
-
「見本」と「サンプル」について
-
女性はマンコ舐めてほしいんで...
-
男性が好きな人でオナニーする...
-
男性に質問です! 男性は女性の...
-
生とゴムの違い
-
処女を抱いた男性へ質問です
-
昨日の晩にスゴくいやらしい体...
-
付き合えそうな女性との行為…想...
-
息子と性的関係になり抜け出せない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
このAV女優さんの名前
-
Windows Defenderのサンプルの...
-
測定値がまったく同じになった...
-
ビデオ屋さんのアダルトコーナ...
-
AVの選び方について教えてくだ...
-
黒木薫のデビュー作って、どう...
-
VBAで既存のパワポのファイルを...
-
「見本」と「サンプル」について
-
AVで、めちゃめちゃイケメンな...
-
アダルトDVDの在庫が豊富なレン...
-
AV女優の名前を知りたい
-
アダルト動画は在日朝鮮人製作...
-
はじめて競泳水着(Vパン)を...
-
この人が誰なのか教えてください。
-
ファンザで漫画買ったら親にバ...
-
エクセルで粘度計算表を作りたい
-
このアダルトコミックの名前を...
-
システム開発ドキュメントのサ...
-
山文京伝 七彩のラミュロスに...
-
wordマクロで条件に合う文のみ...
おすすめ情報