現在、エクセルで運転免許証の有効期限を管理していす。
L3に =IF(L3="","",IF(L3<=TODAY(),"失効",IF(L3<=DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())+15),"間近",""))) この関数を入れて管理していますが、失効 が表示されたらその文字を点滅できればと思っています。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ちなみに、条件付き書式にする場合、条件式は


=L3<=TODAY()
です。
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2011/05/01 16:43

>L3に =IF(L3="","",IF(L3<=TODAY(),"失効",IF(L3<=DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY())+15),"間近",""))) この関数を入れて管理していますが、



とのことですが、入れているのはL3にじゃないですよね?
そうだとしたら、計算式の中にL3が入っているので、循環参照でエラーになるはずです。

この計算式は、無駄に長いですね。
=IF(L3="","",IF(L3<=TODAY(),"失効",IF(L3<=TODAY()+15,"間近","")))
これでも大丈夫です。

さて、失効になったら文字を点滅させたいということですが、やるとしたらマクロを使うしかありません。
そして、マクロを使って点滅させている間は、Excelの処理ができません。ただ見ているだけです。
どのタイミングで点滅を始めて、どのタイミングで点滅を終わらせますか?

点滅させるのではなく、セルの色を変えたり、文字の色や大きさを変えたりするだけではダメですか?
それでもよければ、条件付き書式を使えばよいです。

この回答への補足

ありがとうございます、計算式をご指摘のとおり改めました。 =IF(L3="","",IF(L3<=TODAY(),"失効",IF(L3<=TODAY()+15,"間近","")))

点滅は出来ればしたいのですが、シートが起動してからどれかキーを押した時点で点滅が終了し、以後は入力作業が出来れば良いのですが、宜しくお願いします。

補足日時:2011/04/28 18:50
    • good
    • 0
この回答へのお礼

点滅のマクロをを期待していましたが、ありがとうございました。

お礼日時:2011/05/01 16:48

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで文字の点滅方法

Excelでセル内の文字を点滅する方法を教えてください。
ヘルプや書籍で検索したのですが分かりませんでした。
できましたら、マクロを使わずにしたいのですが、無ければマクロでも可です。 宜しくお願いします。 使用しているVersionは"2000"です。

Aベストアンサー

Option Explicit

Private Sub Worksheet_Activate()
Const imax As Long = 5
Const tmax As Long = 10000000
Dim i As Long
Dim t As Long

For i = 0 To imax
Range("A1").Font.ColorIndex = 2

DoEvents

For t = 0 To tmax
Next t

Range("A1").Font.ColorIndex = 0

DoEvents

For t = 0 To tmax
Next t

Next i

End Sub

Qセル背景や文字を点滅させる方法

エクセルの関数や表作成、基本的な事は身につけることができ、次のステップに進もうと思い、マクロについて勉強したいと思い質問させていただきました。
今の目標としては、ある数値以下の時、またはそれ以上のときにセルを点滅、または文字を点滅させる方法などがありましたら教えて頂きたいです。条件付き書式でセル、またはフォント色を変えられても、点滅をさせる方法などは私には到底できる領域ではなく、マクロについても全く無知です。分かる方がいらしたらどうか教えてください。私のレベルはとりあえず基本的関数、マクロ以外の機能を理解できる程度です、尚プログラム言語については今から勉強という段階で全く分かりません。どうかこの程度のレベルの私ができる程度に説明して下さる方宜しくお願い致します。

Aベストアンサー

#1 #3 です。

>マクロについて勉強したい...

とのことでしたね。コメントを多く入れておきましたので、ご参考下さい。
また、さらに改造して、「A列にデータを入力すると」になっています。


【以下コード】

'API宣言---魔法の呪文みたいなもの
Private Declare Sub Sleep Lib "KERNEL32.dll" _
  (ByVal dwMilliseconds As Long)

'EXCEL既定のイベント
Private Sub Worksheet_Change(ByVal Target As Range)
  
  'セルが変化したら、以下のコードを実行
  '変化のあったセルは Target であらわされる
  
  '変数の宣言
  Dim i As Integer
  Dim ColorDat
  
  'カラーインデックス定義
  ColorDat = Array(15, 48, 16, 56, 16, 48, 15)
  
  'エラートラップ
  On Error Resume Next
  '変化のあったセル=TargetがA列(列番号=1)であれば
  'End If までの挟まれたコードを実行
  If Target.Column = 1 Then
    'そのセル背景色を
    With Target.Interior
      '配列ColorDatに書かれたデータ数だけ繰り返す
      For i = 0 To UBound(ColorDat)
        'ColorDatのi番目のカラー番号でセル背景色を塗る
        .ColorIndex = ColorDat(i)
        'API 30ミリ秒 Wait
        Sleep 30
      Next i
      '最後にセルの背景色を解除
      .ColorIndex = xlNone
    End With
  End If

End Sub

#1 #3 です。

>マクロについて勉強したい...

とのことでしたね。コメントを多く入れておきましたので、ご参考下さい。
また、さらに改造して、「A列にデータを入力すると」になっています。


【以下コード】

'API宣言---魔法の呪文みたいなもの
Private Declare Sub Sleep Lib "KERNEL32.dll" _
  (ByVal dwMilliseconds As Long)

'EXCEL既定のイベント
Private Sub Worksheet_Change(ByVal Target As Range)
  
  'セルが変化したら、以下のコードを実行
  '変化のあったセルは...続きを読む

QエクセルVBA 指定のセル背景色を点滅させたい

お世話になります。
忘れやすい入力セル シート名“施設”の セルF3
(入力が必要なのは100回に1回くらいなので、やむを得ませんが)を気に留めさせるために、そのセルF3の背景色を例えば「薄い青」と「白」で交互に入れ替えればどうかと思いました。

ネットで検索すると、下記のQ&Aが参考になり、うまく当てはめられるものもありました。

しかし、下記ページのANo.#6様の方法がとても魅力的に思えたのですが、うまく出来ないのです。

私の至らない点を教えていただけるでしょうか?

私は、下記ページのコードをシートモジュールに貼りつけました。
しかし、それだけではセルの色は変わりません。

OSはWin2000PRO エクセル2002を使用しています。

http://virus.okwave.jp/kotaeru.php3?q=1499419&rev=1

入力忘れを防止するためが目的ですが、フォームに入力欄を設けたりはしたくないのです。(ほとんどの場合は省略できるので)

よろしく、お教えください。
お願いいたします。

お世話になります。
忘れやすい入力セル シート名“施設”の セルF3
(入力が必要なのは100回に1回くらいなので、やむを得ませんが)を気に留めさせるために、そのセルF3の背景色を例えば「薄い青」と「白」で交互に入れ替えればどうかと思いました。

ネットで検索すると、下記のQ&Aが参考になり、うまく当てはめられるものもありました。

しかし、下記ページのANo.#6様の方法がとても魅力的に思えたのですが、うまく出来ないのです。

私の至らない点を教えていただけるでしょうか?

私...続きを読む

Aベストアンサー

こういう方法はいかがでしょうか。

標準モジュールに以下を記述

Sub Blink()
 Const ColorIdx1 = 37
 Const ColorIdx2 = xlColorIndexNone
 With Worksheets("Sheet1").Range("A1").Interior
  If .ColorIndex = ColorIdx1 Then
   .ColorIndex = ColorIdx2
  Else
   .ColorIndex = ColorIdx1
  End If
 End With
 Application.OnTime Now + TimeValue("00:00:01"), "Blink"
End Sub

続いてThisWorkBookに以下を記述

Private Sub Workbook_Open()
 Blink
End Sub

これで保存していったんブックを閉じ、再び開いてみてください。Sheet1のA1セルが1秒間隔で点滅します。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCEL(IF関数)でCELLの色を変える。

例えば、IF関数で真ならセルの色を赤色にしたり、文字の色を変えたりする関数とかはあるのでしょうか?わかりません・・・知ってる方いらっしゃれば教えて下さい。

Aベストアンサー

こんばんは。

関数ではありませんが‥

<条件付き書式>ではダメなのでしょうか?

メニュー<書式>-<条件付き書式> です。

どのような条件を想定していらっしゃるのかわかりませんが、
<条件付き書式>については↓の参考URLをご覧ください。

▽条件付き書式・その1
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm

▽条件付き書式・その2
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu5.htm

参考URL:http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu4.htm

Qあるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように

お世話になります。

表題の通り、
あるセルに特定の文字列を打つと、
他のセルにあらかじめ決められた文字が自動入力するようにしたいです。

具体的に言うと、
(1)セル(A,1)に「キリン」と打ち込むと

   A   B   C   D
1 キリン
2
3
4

(2)1列目の B,C,Dに予め決めておいた文字が入力されるようにしたい

   A   B   C   D
1 キリン 首  長い  アフリカ
2
3
4

のです。
エクセルで可能でしょうか?
詳しい方よろしくお願いいたします!

Aベストアンサー

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A:D,3) ″
4  =VLOOKUP(A4,Sheet2!A:D,2) =VLOOKUP(A4,Sheet2!A:D,3) ″

を入れておきます。
これで出来ると思います。
エラー表示がいやな場合は、=IF(A1="","",VLOOKUP(A1,Sheet2!A:D,2)) の様にして下さい。

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセル・・色の着いたセルの個数を数える関数はある?

エクセルの表内で塗りつぶしされているセルだけを数える様な関数はありますか?
セルには文字や数値は入力されておらず、塗りつぶしているだけです。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもしれませんね。

なお、以下は、引数のインデックスに0を入れると、配列出力するようにしてあります。

'------------------------------------
Function ColorCellCount(範囲 As Range, Optional インデックス As Integer = 1, Optional パターン As Integer = 0)
  Dim myRng As Range
  Dim myIndex As Integer
  Dim myPattern As Integer
  Dim myColor() As Integer
  Dim Ret() As Double
  Dim c As Range
  Dim i As Long
  Dim j As Long
  Set myRng = 範囲
  myIndex = インデックス
  myPattern = パターン
For Each c In myRng
   On Error Resume Next
   If myPattern = 0 Then
     i = WorksheetFunction.Match(c.Interior.ColorIndex, myColor, 0)
   Else
     i = WorksheetFunction.Match(c.Font.ColorIndex, myColor, 0)
   End If
   If i = 0 Then
     ReDim Preserve myColor(j)
     ReDim Preserve Ret(j)
      If myPattern = 0 Then
       myColor(j) = c.Interior.ColorIndex
      Else
       myColor(j) = c.Font.ColorIndex
      End If
      Ret(j) = 1
     j = j + 1
     On Error GoTo 0
     Else
      Ret(i - 1) = Ret(i - 1) + 1
   End If
  Next
  If myIndex <= 0 Then
   ColorCellCount = Ret()
  ElseIf myIndex > UBound(Ret) + 1 Then
   ColorCellCount = Ret(UBound(Ret()))
   Else
   ColorCellCount = Ret(myIndex - 1)
  End If
  Set myRng = Nothing
End Function

ワークシート上での使い方は、

A列
色付き
色なし
色なし
色付き
色付き

=ColorCellCount(A1:A5, 1 )

とすれば、上から数えて、1番目の色のセルの数が出ます。

=ColorCellCount(A1:A5, 2 )
を入れれば、色なしのセルの数が出ます。

=SUMPRODUCT(ColorCellCount(A1:A5, 0 ))

とすれば、全部の合計が出ます。

なお、
=ColorCellCount(A1:A5,1,1)

とすれば、文字の色を数えます。

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもし...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報