- ベストアンサー
特定の段落の文字色を変えたい
Excel マクロコードそのまま印刷すると、赤字表示のコメントも黒字になってしまいます。 そこで、マクロコードをワードに貼り付けて、コメントの段落(段落の先頭文字としてシングルクォーテーション[']あるもの)のみを目視確認してフォントの色を赤に変更して印刷していますが、見落としてしまうことがあります。 貼り付けたマクロコードを全文選択して、シングルクォーテーションのある段落のみをフォントの色変更をする方法はないでしょうか。ワードのVBAでもよいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3 misatoanna です。 原因がわかりません。 Word2010でも2013でも、こちらではちゃんと処理されています。 バージョン違いでしょうか。 ただ、 '右クリックメニューを入力用リスト選択メニューに _ 切り替えます。 のように _ で2行以上になっているコメントは、先頭行だけしか処理されませんが‥‥。
その他の回答 (3)
- misatoanna
- ベストアンサー率58% (528/896)
Wordに貼り付けたら、置換処理されたらいかがでしょうか。 ワイルドカード使用にして、 検索する文字列を '*^13 に。 置換後の文字列は、ボックスをクリックしてから、空白のまま、[書式]ボタン-[フォント]から文字色を指定します。 で、[すべて置換]。
- eden3616
- ベストアンサー率65% (267/405)
>マクロコードをワードに貼り付けて >ワードのVBAでもよいです。 補足です。 No1のコードはExcelのVBAコードです。 は使用せず、Excelの各シートにアクティブブックのコードをコピーし、 該当箇所へ着色します。 また、他には 以下のようなコードをHTMLへ変換するコンバーターを使用して HTML化したファイルをブラウザで開き印刷する方法があります。 ▼番外編その1 VBAコードをカラーで印刷するには?(VBEアドイン) http://www1.plala.or.jp/chikada/cell/b01/b01.htm ▼ソースコード HTML化 コンバーター「唐辛子」(オンライン) http://kujirahand.com/tools/tougarasi/ ▼HTML 変換ソフト T'sConverter Ver 2.00 http://www.tsware.jp/download/tsconv/
お礼
Excelに貼り付ける手がありますね。 やってみます。 ありがとうございました。
- eden3616
- ベストアンサー率65% (267/405)
ちょっと雑ではありますが、このような感じでどうでしょうか。 VBAコードを取得しているためセキュリティレベルを下げる必要があります。 以下のサイトの「VBEを操作するための設定」を参考願います。 http://officetanaka.net/excel/vba/vbe/index.htm 新規ブックの標準モジュールに最下のVBAコードを貼り付けてください。 該当のコードが記述されているブックを表示した状態で、「Sample1」を実行してください。 標準モジュール毎にシート別にコードがコピーされ、コメント行が赤文字になります。 (標準モジュールの数>シートの数)でエラーになりますね、予めシートを作成しておいてください) 各行のコードで「'」が有る文字より末端までを赤文字にしております。 現状は添付画像にあるように「"'"」のような場合にも後半のコードが赤着色される簡易的なものとなっております。 セキュリティレベルを変更しない場合は、Excelのシートにコードを貼り付けて頂き、 「'▼~'▲」の部分を適切に変更ください。 ■VBAコード Sub Sample1() Dim VBC, cnt As Integer, i As Long, hit As Integer With ActiveWorkbook.VBProject For Each VBC In .VBComponents 'モジュール毎に繰り返し With VBC.codemodule '標準モジュール判定 If VBC.Type = 1 And .CountOfDeclarationLines <> .countoflines Then '▼コードのシートへ書き出し・色変更 cnt = cnt + 1 '先頭行から最終行まで繰り返し For i = 1 To .countoflines + 1 'コードの1行貼付け ThisWorkbook.Worksheets(cnt).Cells(i, 1) = .Lines(i, 1) '文字色の変更 hit = InStr(.Lines(i, 1), "'") If hit > 1 Then ThisWorkbook.Worksheets(cnt).Cells(i, 1).Characters( _ Start:=hit, Length:=Len(.Lines(i, 1)) - hit + 1) _ .Font.Color = RGB(255, 0, 0) End If Next i 'シート名の変更 ThisWorkbook.Worksheets(cnt).Name = .Name '▲ End If End With Next VBC End With End Sub
お礼
ありがとうございました。 >ワイルドカード使用にして、'*^13 これでやると全文が色変更になってしまいました。 何かやり方が悪いのでしょうか。