人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Microsoft Wordに、こんなテキストを貼り付けたとします。
(本当は質問は Q001?Q100まで100問、あります)

--------------------------------------------
Q001. 好きな果物は?
りんごです。
おいしいと思います。

Q002. 嫌いな果物は?
ぶどうです。種がいや。

Q003. いま1000円あったら、何を買いますか?
アップルパイとコーヒー。
シナモンが効いているのが好きですね。
コーヒーはブラックで。
--------------------------------------------

そして、質問文だけを太字にするマクロを作りたいのです。
マクロ実行後のイメージを、この質問の画像に示します。

どのようなコードを書けばいいか、VBAに強い方、ご教示いただけないでしょうか。よろしくお願いいたします。

1337787788
●拡大する

●質問者: lionfan2
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●150ポイント

VBA じゃなく、vim を使って、html なファイルを作る方法です。


まず、テキストを貼り付けます。

Q001. 好きな果物は?
りんごです。
おいしいと思います。

Q002. 嫌いな果物は?
ぶどうです。種がいや。

Q003. いま1000円あったら、何を買いますか?
アップルパイとコーヒー。
シナモンが効いているのが好きですね。
コーヒーはブラックで。

次に、以下のコマンドを打ちます。

:%s/$/<br>/

続けて、次のコマンドを打ちます。

:g/^Q/s/.*/<b>&</b>/

vim 上では、こんな感じになってるはずです。

<b>Q001. 好きな果物は?<br></b>
りんごです。<br>
おいしいと思います。<br>
<br>
<b>Q002. 嫌いな果物は?<br></b>
ぶどうです。種がいや。<br>
<br>
<b>Q003. いま1000円あったら、何を買いますか?<br></b>
アップルパイとコーヒー。<br>
シナモンが効いているのが好きですね。<br>
コーヒーはブラックで。<br>

文書の先頭と末尾を、<html><body>?</body></html>で、くくります。

<html>
<body>
<b>Q001. 好きな果物は?<br></b>
りんごです。<br>
おいしいと思います。<br>
<br>
<b>Q002. 嫌いな果物は?<br></b>
ぶどうです。種がいや。<br>
<br>
<b>Q003. いま1000円あったら、何を買いますか?<br></b>
アップルパイとコーヒー。<br>
シナモンが効いているのが好きですね。<br>
コーヒーはブラックで。<br>
</body>
</html>

この状態で、ファイル名を *.html で保存します。
そのファイルを、Word で開くと、こんな感じになってると思います。
f:id:a-kuma3:20120524014253p:image

これを「名前を付けて保存」で Word 文書として保存すると、期待してる Word 文書になってると思うんですが。


lionfan2さんのコメント
a-kuma3様、ありがとうございます!! 了解です。 今回は、最終的にやりたいことは、n人から答えてもらった、100の質問文と回答(を、Wordに貼り付けた)のWordファイルのデータを、100行n列のExcelにまとめることです。 最初からそのテキストを処理すれば良さそうなものですが、インタビュー時にWordで印刷したものはいずれ作ることになるため、できれば [1] アンケート回答をテキストでもらう [2] Wordに貼り付ける [3] インタビュー用に質問文だけ太字にする [4] VBAで太字の部分を削除する [5] [4]の結果、100行になるので、Excelに貼り付ける をやりたいのです。[4]のマクロは入手しましたので、どうせでしたらすべてをVBAでやりたいと思い、[3]もVBAでできないかなあ、と思った次第です。 ですが、a-kuma3様の回答も、VBAでやるよりは少しだけ手間がかかりますが、良い答えだと思います。他に回答がなければ、このほうほうで行こうと思います。ありがとうございます!!

a-kuma3さんのコメント
そうか、もう Word の文書ができているんでしたよね <tt>orz</tt>

lionfan2さんのコメント
先日はたいへんお世話になりました (^o^)

2 ● cx20
●350ポイント ベストアンサー

サンプルの内容であれば、VBAでコードを書かなくても、「検索と置換」ダイアログで置換できそうです。

検索する文字列:[Q[0-9]{3}.*^13 ]
オプション: ワイルドカード
書式:

置換後の文字列:[ ]
書式: フォント:太字

<参考情報>
■ Regular Expression(Zaco's Page)
http://homepage2.nifty.com/zaco/rexp/rexp02.html


cx20さんのコメント
参考までに「検索と置換」ダイアログの実行結果の VBA コードを記載します。 >|vb| Sub Macro1() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Bold = True With Selection.Find .Text = "Q[0-9]{3}.*^13" ' 「^13」は改行を表します .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub ||<

lionfan2さんのコメント
すばらしい!! 最初の「検索と置換」でできました!! ただ、改行コードが ^13 でなく、自分の場合は ^11 でしたので、 Q[0-9]{3}.*^11 でした。正規表現的なことがWordでできるとは素晴らしい!! ポイントはずまさせていただきます。 VBAのコードもありがとうございます!!

lionfan2さんのコメント
cx20様、いやー、素晴らしい。ハマりました!! 土日にうんざりしつつやろうと思っていた仕事が、いま終わりました!! 今後も、同様の仕事が一瞬で片付くのもうれしいですし、あさっての授業で、学生に教えることもできそうです。大感謝!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ