• 締切済み

エクセルのマクロ、一定時間ごとに背景色を変える方法

Excel 2000 を使ってます。 15分刻みで一日の日程表を作ってます。 過ぎた時間のセルの背景を自動的に灰色にしたいんですが、 そういうことをマクロでするのは可能でしょうか? Selection.Interior.ColorIndex = 15 JavaScript なら Date クラスと setInterval で出来るんですが、 こちらは初心者でして。。。

みんなの回答

回答No.1

Application.OnTime があります。

yasu182
質問者

お礼

そんな便利な関数があったんですね。 ちょっと勉強したら出来そうな気がします。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA セルの色を変更する

    VBA(エクセル2007使用)で、セルの背景色を変更する場合についての質問です。 マクロを実行する度に、セルの背景色を変更するマクロを作成しました。 オレンジ→水色→緑→灰色→無色  という風に変わっていくところまでは できたのですが、これだとマクロを実行するのにセルの状態が無色か、指定した カラーコードで塗りつぶされていないと実行できません。 下記、コードの一番最初の Case で ”背景色がどんな色の場合でも”という条件に したいのですが、どのように記載したらわからずにいます。。。 ---------------------------- Sub 色チェンジ() n0 = ActiveCell.Interior.ColorIndex Select Case n0 Case xlNone   ’ここを”どんな色の場合でも、、、という条件にしたいです。。” Selection.Interior.ColorIndex = 40 Case 40 Selection.Interior.ColorIndex = 34 Case 34 Selection.Interior.ColorIndex = 35 Case 35 Selection.Interior.ColorIndex = 15 Case 15 Selection.Interior.ColorIndex = xlNone End Select End Sub -----------------------------------

  • エクセル2003 VBAマクロにて 背景色 白色の抽出

    エクセル2003のマクロでセル背景色にて抽出したいのですが 背景色が白色(空白)の抽出ができません。 背景色別に 他セルに文字を自動記入したいのですが、 背景色が白(collorindex=0)の認識をしてくれません。 カラーインデックスでは、白は「0」か「2」になっているので その値でマクロを組んでも認識してくれないようです。 どのようにすればよいのでしょうか? 以下に私(素人)のマクロ文(一部)です。ご指摘お願い致します。 Dim 行番号 As Integer 行番号 = 7 Do Until Cells(行番号, 1).Value = "" If Cells(行番号, 9).Interior.ColorIndex = 5 Then Cells(行番号, 14).Value = "3号機"   ElseIf Cells(行番号, 9).Interior.ColorIndex = 7 Then Cells(行番号, 14).Value = "4号機" ElseIf Cells(行番号, 9).Interior.ColorIndex = 0 Then Cells(行番号, 14).Value = "未加工" End If 行番号 = 行番号 + 1 Loop

  • エクセルマクロ 範囲内のTOP行位置等を知りたいです。

    エクセルマクロで以下の事がしたいのですが、行き詰ってしましました。 どなかたご教授願います。 事前に セルのA1:B3 に名前をつけておきます。 名前は"board"とします。 (1)選択したセルが"board"内に含まれるかどうかをマクロで判定したい。 (2)"board"範囲のセルに対して一つづつある処理をしたいのです。 (たとえば、色を変えるとか、データをSETするとか。) FOR文をふたつ組み合わせて 順番に処理しようとしているのですが、"board"のTOPの行 と 最終行、及び 同じくTOPの桁位置 と 最終桁 を取得するにはどうすればいいでしょうか? ROW1 = 7 ← この4つの変数を動的に取得したいのです。 ROW2 = 17 COL1 = 9 COL2 = 21 For I = ROW1 To ROW2 For K = COL1 To COL2 Cells(I, K).Select If Selection.Interior.ColorIndex = COLKUROX Then Selection.Interior.ColorIndex = COLKURO ElseIf Selection.Interior.ColorIndex = COLSIROX Then Selection.Interior.ColorIndex = COLSIRO ElseIf Selection.Interior.ColorIndex = COLWAKUX Then Selection.Interior.ColorIndex = COLWAKU End If Next Next  (3)これはマクロとは関係ないのですが・・・   "board"の名前を設定するときに間違って違うセル範囲につけてしまいました。 一旦つけた名前を削除したいのですが、やり方がわかりません。 以上 3 点 についてお願いします。 (1)は(2)を解決できれば、IF 文を使ってできそうなのですが、 Intersect を使ってできないでしょうか? Set myRange = Application.Intersect(??????, Range("board")) ↑ ?????のところに指定したセルを書けば、このマクロの結果がエラーになるかならないかで判定できないかな・・・・と。

  • マクロの簡素化

    下記マクロです。 Range("AE6:AE1005").Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone If Range("AD6").Value > 5 Then Range("AE6") = "*" Range("AE6").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD7").Value > 5 Then Range("AE7") = "*" Range("AE7").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD8").Value > 5 Then Range("AE8") = "*" Range("AE8").Select With Selection.Interior .ColorIndex = 3 End With Else End If 中略(セルを一個づつ指定しています) If Range("AD1004").Value > 5 Then Range("AE1004") = "*" Range("AE1004").Select With Selection.Interior .ColorIndex = 3 End With End If If Range("AD1005").Value > 5 Then Range("AE1005") = "*" Range("AE1005").Select With Selection.Interior .ColorIndex = 3 End With Else End If Range("AE3").Select 有るセルを参照しその値が5以上だったら別のセルに*マークとセルに色を付けるマクロですが、一個づつセル指定をしていますが、何とか短く出来ないでしょうか? お分かりになる方宜しくお願い致します。

  • エクセルのマクロ

    エクセル2002でマクロを記録しました。 セルD5を選択した状態で、マクロの記録を始めました。(相対参照ボタンをクリックしています) D5のセルの色を黒にして、セルD6を選択して色を白にしました。ここで記録を終了しました。 VisualBasicEditorで見ると以下のような記述がありました。 そこで教えてください。 1)どの部分が相対参照をしているという意味の記述でしょうか? 2)どの部分がD6を選択したという記述でしょうか? 3)「Range("A1").Select」はどういう意味ですか?A1のセルはクリックしていないのですが・・・。 教えてください。 記述は以下です。 With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With ActiveCell.Offset(1, 0).Range("A1").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With End Sub

  • 【エクセル】「実行時エラー’1004’ InteriorクラスのColorIndeXプロパティを設定できません。」とは?

    いつもお世話になってます。 マクロの記録で、シートの何箇所かの指定した部分のセルの色を白色にして印刷するマクロを作ったのですが、シートを保護すると自動で白色にしますが、印刷しません。 エラーの表示は、 「実行時エラー’1004’ InteriorクラスのColorIndeXプロパティを設定できません。」 です。 デバッグというところを押すと、 記述の「Selection.Interior.ColorIndex = 2」という部分が黄色くなっていました。 解消するにはどうすればよいのでしょうか? どうぞご教示のほどよろしくお願いします。 【エクセル2003】

  • Excelで渦巻状にセルを移動するマクロを作りたいのです

    マクロで渦身状&時計回りにアクティブセルを移動させるにはどのように 記述したらよいでしょうか。 例えば、E16を選択しているときにマクロを実行したら E16→D16→D15→D14→E14→F14→F15→F16→F17→E17→D17→C17→… と移動していく感じです。 キーボード記録マクロで[↑][↓][←][→]キーで移動してみても何も記録 されなかったので、移動→黄色に塗りつぶし、という繰り返しを記録 してみると、文末のようにはなりました。が、渦巻き状に移動という アルゴリズムがさっぱり思いつきません。 無限でなく、例えば10周くらいまわれば十分です。 最終的には、移動するごとに、踏んだセルの値を評価(1だったら赤に塗る、 のように)していきますが、まずは選択セルを基点に渦巻状にセルを移動 する方法が知りたいです。 よろしくお願いします。 Sub Macro1() With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With Range("E16").Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With Range("D16").Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With ' ■中略■ Range("C17").Select With Selection.Interior End Sub .ColorIndex = 6 .Pattern = xlSolid End With (ちなみに) エクセル上に、日本地図が碁盤目状に描かれています。 セルには、平野=1、山=2、海=3のように記述されています。 これを特定法則で塗り分けるのに利用します。

  • エクセルのマクロについて

    エクセルのマクロについて エクセル2007を使用しています。もしよかったら教えてください。 現在Sheet1のA1:F500の範囲内で1~31範囲の数字がランダムに入力されています。 この数字群の入ったセルをルール化しているセル背景色塗りを自動で処理したいためマクロを作成しております。 その仕様として、もうひとつシート(Sheet2)を作成して(※シート名は”配色表”にしています)、B3:H7範囲に1~31までの数字が入っており、それぞれ数字に背景配色しています。このシート(Sheet2)内の数字とSheet1内と数字が一致したら配色表のセルそのものの書式も運んでくれるルール設計になっています。 (※Sheet1の上記記載している範囲に直接入力及びコピーをして数字がSheet2内と一致したら、色が変わる仕組みになっています。) そのマクロ(※Sheet1内に作成しています)が下記なのですが、拝見頂いて仕様がすぐお分かりになると思います。 Private Sub Worksheet_Change(ByVal Target As Range) Dim v As Variant, c As Range, s As Range Dim rng As Range Set rng = Intersect(Target, Range("A1:F500")) If rng Is Nothing Then Exit Sub Application.ScreenUpdating = False For Each c In rng.Cells For Each s In Worksheets("配色表").Range("B3:H7") v = c.Value If Not IsNumeric(v) Or v < 1 Or v > 31 Then Exit For '色を一旦戻す c.Interior.ColorIndex = xlColorIndexNone c.Font.ColorIndex = xlColorIndexAutomatic If s.Value = v Then c.Interior.ColorIndex = s.Interior.ColorIndex c.Font.ColorIndex = s.Font.ColorIndex Exit For End If Next s Next c Application.ScreenUpdating = True Set rng = Nothing End Sub ここで今回の質問の本題なのですが、このマクロを少し仕様変更して、現在のSheet2の配色表を、A配色表・B配色表・C配色表...というようにJ配色表まで合計10シートまで増やして(※A~Jは全部別々の色に設定する)、更にSheet1に一つH1の場所のセルにA~J迄の英字を入力するためのセルを設けて、例えばそのセルにCを入力すればC配色表を見に行くという条件付きのマクロにしたいと思っております。 これが簡単そうでなかなかうまく行かず困っています。 上記のマクロを使ってどういう風に変更したらベストであるかご伝授頂ければ幸いです。 どうぞよろしくお願い申し上げます。

  • マクロ:セルの範囲指定

    エクセルマクロで困っています。 セルの範囲指定をしようとしています。 初心者過ぎて、よくわかりません。 現在のマクロ↓ Sub 済() If ActiveCell.Column = 21 Then Selection.FormatConditions.Delete '条件付き書式削除 With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With ActiveCell.Offset(0, 1).Select With Selection.Interior .ColorIndex = 16 .Pattern = xlSolid End With '色変え判定セル書き換え ActiveCell.Offset(0, 5).Select ActiveCell.FormulaR1C1 = "77" ActiveCell.Offset(0, -5).Select Else answer = MsgBox("U列を選択して下さい", vbCritical) End If End Sub やりたい事は、下記の通りです。 列Uがアクティブの時にU~ACの行を塗りつぶし。 列は変動します。 今は、やり方がよく分からなかったため オフセットで一つ一つ塗りつぶしてます。 マクロを組みすぎてファイルが重くなって困っています。 回答よろしくお願いいたします。

  • エクセルVBAについて

    エクセルVBAについて 下記のようなマクロで、選択したセルの、列の背景色の切り替えを行いたいと思っています。 が、写真のように、塗りつぶしを行いたいセルが結合しているところと、 そうでないところがあり、列全体に、うまく塗りつぶしができません。 '列の背景色を変更 Cells.Interior.ColorIndex = xlNone Dim i As Long i = Target.Column Columns(i).Interior.ColorIndex = 6   Columns(i + 1).Interior.ColorIndex = 6 また、選択するセルは、2行目で、2列が結合しています。 うまく、2列が結合しているセルにも、塗りつぶしを適用することは可能でしょうか? また、できれば列全体の塗りつぶしでなく、行の範囲も指定できればと思っています。 写真では、2列が結合していない部分のみ、塗りつぶしが適用されています。 表の構成上、結合しているセルとそうでないセルの変更ができないため、困っています。 どうぞ、よろしくお願いいたします。

胃ろう中止について
このQ&Aのポイント
  • 胃ろう中止とは、高齢者の胃ろうを止める選択肢です。胃ろう中止後、栄養停止するのか、緩和ケアを提供するのか、不明です。
  • 胃ろう中止によって空腹を感じることになり、そのまま無視するのか、緩和ケアを行うのか、明確な情報がありません。
  • 胃ろうを中止する場合、空腹感を緩和する方法や、その他何らかのケアが提供されるのか、具体的な情報は得られません。
回答を見る