[[20170221101313]] 『「=TODAY」を含む物の条件付き書式』(ズボラ人) ページの最後に飛ぶ

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

 

『「=TODAY」を含む物の条件付き書式』(ズボラ人)

初めまして、皆様のお知恵を貸してください。
 
エクセルで TODOリストを作っているのですが
期限日の列の入力の際に仕事の順番の関係で
「=TODAY()」や「=TODAY()+7」と入力しているセルがあります。
セル内に「TODAY」と入っているのが一目でわかるように
文字列に下線を引く条件付き書式で設定したいのですが...
 
特定の文字列に「TODAY」や「*TODAY*」を入力しても
「=FIND("*TODAY*",$G1)<>0」でも
「=COUNTIF($G1,"*TODAY*")」でも
反応はありませんでした。
 
初心者のためネットで調べても分からなかったため
ここで質問させていただきました。
よろしくお願いします!

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


 Today関数の入っているセルの値に下線を引きたいということですか?
 それなら「特定の文字列」では関数ではなくセルの値を見てしまいます。
 条件付き書式で「指定の値を含むセルだけを書式設定」「セルの値」「次の値に等しい」「=Today()」
 または「指定の値を含むセルだけを書式設定」「セルの値」「次の値より大きい」「=Today()」
 だと思います。
(2Win) 2017/02/21(火) 11:24

回答ありがとうございます!

後出しになってしまうのですが、
「2017/02/21」を入力しているところもあれば
「=TODAY()」と入力しているものもあります。

2Winさんの回答通りに設定すると、

 
<<条件付き書式で「指定の値を含むセルだけを書式設定」「セルの値」「次の値に等しい」「=Today()」

「2017/02/21」と入力されているセルも書式変更されてしまいました。

<<または「指定の値を含むセルだけを書式設定」「セルの値」「次の値より大きい」「=Today()」

今日の日付以外のセルが書式変更されてしまいました。

説明下手ですみません(>_<;)
(ズボラ人) 2017/02/21(火) 11:45


 2013以降であればFORMULATEXT関数が使えるのだが2010であればVBAか4.0マクロ関数ということになると思うが。
(ねむねむ) 2017/02/21(火) 11:59

 値じゃなく、数式の中のTodayを探すということですか。
 そうなるとねむねむさんがおっしゃるようにマクロになってしまいますね。

 一応、簡単なものを記載しておきます。
 標準モジュールに貼り付けて実行してみてください。
 A列しか探していません。

 Sub kensaku()
    Dim myRange As Range
    Set myRange = Columns("A").Find(what:="today")
    If myRange Is Nothing Then
        Exit Sub
    Else
        myRange.Font.Underline = xlUnderlineStyleSingle
    End If
 End Sub
(2Win) 2017/02/21(火) 12:39

手作業でtodayを文字列検索し、全て置換で下線を引いてもできますね。
チェックしたいときだけ、手作業でいかがですか?(手作業をマクロの自動記録で保存しておき、マクロ化も簡単)
(???) 2017/02/21(火) 12:54

皆さん、回答ありがとうございます!
 
G列を変更したかったのと、todayが全て大文字にしてたこともあり

 Sub kensaku()
    Dim myRange As Range
    Set myRange = Columns("G").Find(what:="TODAY")
    If myRange Is Nothing Then
        Exit Sub
    Else
        myRange.Font.Underline = xlUnderlineStyleSingle
    End If
 End Sub

に変更して標準モジュールに貼り付けて実行してみたのですが、
書式が変更されませんでした...

マクロも勉強中なので、何が間違っているか全然わからないです(;_;)

条件付き書式のように入力したら勝手に切り替るようにしたかったのですが
この条件では難しいみたいですねorz
(ズボラ人) 2017/02/21(火) 13:39


 4.0マクロ関数を使ったもの。
 まず、A1セルを選択した状態で数式-名前の定義で名前に「siki」参照範囲に「=GET.CELL(6,A3)」と設定する。

 次に条件付き書式で
 =FIND("TODAY",siki)
 としてみてくれ。
(ねむねむ) 2017/02/21(火) 13:52

 すまない、「=GET.CELL(6,A3)」は「=GET.CELL(6,A1)」としてくれ。
(ねむねむ) 2017/02/21(火) 13:53

 G列に=TODAY()以外の数式がないなら

 Sub kensaku()

     Dim r As Long

     For r = 1 To Cells(Rows.Count, "G").End(xlUp).Row
         If Cells(r, "G").HasFormula Then Cells(r, "G").Font.Underline = xlUnderlineStyleSingle
     Next

 End Sub
(bi) 2017/02/21(火) 13:57

ねむねむさん、スミマセン、VBA本当に初心者で、4.0マクロ関数がわからないレベルです(;_;)

ですが、biさんのコードを他の物に組み込んだ事によって変えれることが出来ました!

皆さん、ご協力ありがとうございました!
(ズボラ人) 2017/02/21(火) 14:47


 手順のどこがわからなかったのだろうか?
 A1セルを選択した状態で「数式」タブの「定義された名前」の名前の定義を開き「範囲」と「参照範囲」を
 定義しその後は条件付き書式を設定するだけだが。
(ねむねむ) 2017/02/21(火) 14:54

 出遅れてますが一例です。
 対象領域をシート全体にしていますが、列指定等が必要なら、お好きなように変更してください。

 Sub Sample()
    Dim r As Range
    Dim c As Range

    On Error Resume Next
    Set r = Cells.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0

    If r Is Nothing Then Exit Sub

    For Each c In r
        If LCase(c.Formula) Like "*today*" Then c.Font.Underline = xlUnderlineStyleSingle
    Next

 End Sub

( β) 2017/02/21(火) 14:55


ねむねむさん、3度挑戦してみたところ出来ました!

希望通りの設定になったので、とても嬉しいです!(^^)

ありがとうございます!

皆さん、お忙しい中ありがとうございました!
(ズボラ人) 2017/02/21(火) 15:06


コメント返信:

[ 一覧(最新更新順) ]


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