[[20170122184823]] 『選択したセルの行にある文字を強調したい』(黒き翼) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『選択したセルの行にある文字を強調したい』(黒き翼)

選択しているセルの行にある文字を太文字にして色を変えたいです
このサイトを参考に作りました

http://tech.tmd45.jp/entry/2013/07/05/201434

サイトにあるPrivate~のコードを自分で作ったマクロに組み込みたいのですが、どうすればいいですか。
どなたかご教授願います

2. 表示されているコードの編集ウィンドウに以下のコードを貼り付ける。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Application.ScreenUpdating = True
End Sub

Sub 選択した行を強調()
'
'

    Columns("F:M").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=ROW()=CELL(""row"")"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Bold = True
        .Italic = False
        .Color = -16776961
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

< 使用 Excel:Excel2007、使用 OS:Windows7 >


条件付き書式は、手動で設定すればよいのでは?
なぜ、マクロ。

(マナ) 2017/01/22(日) 19:43


(1)対象とするシートをアクティブにしておいて、
  「選択した行を強調」マクロを実行
(2)対象とするシートのシートモジュールに、
 そのWorksheet_SelectionChangeをコピーする
ということです。

そのスレッドに書いてあるとおりですが。
(γ) 2017/01/22(日) 19:47


 元々は 2005年にアンドリューさんが発表された方式ですけど、マナさんもおっしゃっているように
 あるいは、以下のページにも記載されているように

http://blog.livedoor.jp/andrewj/archives/18035971.html

 手作業で条件付き書式をセットして、シートモジュールにおまじないを書いておけばいいと思いますけど?

 なぜ、わざわざ 標準モジュールにマクロを書くのですか?

 なお、シートモジュールのおまじないは

 Me.Calculate でもいいです。

(β) 2017/01/22(日) 20:14


私がコメントしたのは、条件付き書式の設定の手作業部分がマクロ化されているなら、
それを利用すればよいというだけです、

>サイトにあるPrivate~のコードを自分で作ったマクロに組み込みたいのですが、どうすればいいですか。

イベントプロシージャをあなたのマクロに組み込んじゃダメです。
イベントプロシージャは、そのままでいいんです。

イベントプロシージャの効果は、シートの再描画のトリガーだということです。
手作業にせよ、マクロにせよ、条件付き書式が設定できたら、
あとはイベントプロシージャーをそのままシートモジュールにコピイペイストするだけです。

カーソルを動かせば、条件付き書式が機能します。

(γ) 2017/01/22(日) 21:08


このテクニックについては、下記も詳しいと思います。
アンドリューさんのものの紹介ですね。
 
「アクティブセルのある行・列を目立たせる」
http://www.relief.jp/itnote/archives/001406.php
 

(γ) 2017/01/22(日) 21:12


丁寧な回答ありがとうございます。
リンク先のサイトはとても参考になりました。

イベントプロシージャをマクロに取り込みたい理由としてはマクロをショートカット登録して他人でも新規ファイルで使用できるようにするためです。なのでコピペではなく1クリックで動作できるようにマクロ化したかったのです。

自分なりに考えてみるとApplication.ScreenUpdating = Trueを一定時間有効にするのはどうでしょうか

(黒き翼) 2017/01/23(月) 18:56


 >>1クリックで動作できるようにマクロ化したかったのです。 

 勘違いしておられます。

 皆さんレスしておられる通り、

 ・まず条件付書式を設定。きわめて簡単な設定。1回こっきり。
  (γさんレスのように、この設定をマクロでやることはありえますね。でも1回こっきりです)
 ・あとは、セルを選ぶだけで強調表示されます。

 強調表示するためにマクロをショートカットキーに割り当て実行する必要は全くないです。

 ★ 『コピペ』というのは、処理を行うたびに何かをコピペするという意味ではないです。
  シートモジュールに3行のコードを記述するわけですが、それをコピペで
  記入すれば楽だということですよ。

(β) 2017/01/23(月) 21:54


>自分なりに考えてみるとApplication.ScreenUpdating = Trueを一定時間有効にするのはどうでしょうか
ダメですね。
紹介したサイトをもう一度じっくり読んでください。
Application.ScreenUpdating = True
の趣旨をよく理解してください。
カーソルを動かすたびに、画面更新させるための仕掛けです。
一定時間とかの話じゃないんですよ。
 
すでにβさんからご指摘いただいているように、
この仕掛けの意味が理解できないうちは、使わない方がよいし、
他人に使って貰うのは早いと思います。
それに、こうしたこと(アクティブセルの位置の強調手段)は、
余り推奨できませんし、万人が必要としているものでもないと思います。
紹介サイトの管理人さんも同様のことを発言しているはずです。

(γ) 2017/01/23(月) 22:27


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.