解決済
エクセルでセルを半透明着色処理にする方法はありますでしょうか?
ご存知でしたら教えて下さい。通常Excelのセルを選択したらセルの周りが濃くなるだけかと思うのですがそれを半透明の灰色に変更することは出来ないでしょうか?またセルにデフォルトで日付が入っていて今日の日付だったらその部分を自動で上記のような処理にすることは可能でしょうか?
回答(3)
3.

こちらにアップロードしています。
http://pub.idisk-just.com/fview/Wp6RjRvMqZ0b-PLDzX...
標準モジュールではなく、Sheet1のマクロスペースに以下のように記述しています。
Option Explicit
Dim r As Integer, c As Integer, old_r As Integer, old_c As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If old_r = 0 Then old_r = 1 If old_c = 0 Then old_c = 1 Cells(old_r, old_c).Interior.ColorIndex = xlNone ActiveCell.Interior.ColorIndex = 15
r = ActiveCell.Row c = ActiveCell.Column old_r = r old_c = cEnd Sub
また、別のシートには、3つの条件付き書式を設定して、セルの日付が「今日であれば緑」「日曜なら赤」「土曜日なら青」としています。
セルの値が次の値に等しい =today()
数式が次の値に等しい =(WEEKDAY(A1)=1)
数式が次の値に等しい =(WEEKDAY(A1)=7)
参考までに、うちの課で現実に使っているスケジュールファイルもアップロードしておきます。
(奇数月と偶数月の2つのファイルを交互に使用する形となります。)
有難うございます!僕が探していたのはこれです!ただ、別の条件付書式を入れると動かなくなってしまいました。ということは条件付書式をつけてしまうと並行で動かせないということでしょうか?
1.
それで、アクティブセルについてはさらに反転(色抜け?)だったような・
VBAからアクティブセルにセルの背景色(透明色というのはないです)として色の指定はできるような気はします。
ただ、この方法は色々問題があるような気がします。
図形の長方形に透明度を設定して、アクティブセルに移動させれば、お望みの動作となるのかもしれません。
>今日の日付だったらその部分を自動で上記のような処理にすることは可能でしょうか?
前述の処理と、両立は難しいような気がします。
こういう場合には、条件付き書式が適していると思います。
2.
あと図形で四角くセルの形に貼り付け、図形を右クリック→書式設定→塗りつぶしに透過性というのがあり、図形なら半透明にする事ができます。
コメント(3)
補足
要求は「半透明」ということですが、セルの配色に半透明の灰色というのがありませんので、「薄い灰色」で設定しています。
また条件付き書式の
=today()
=(WEEKDAY(A1)=1)
=(WEEKDAY(A1)=7)
の設定は、例えばA1からG1までをドラッグして選択し、上記3つの条件付き書式を設定します。
実際にキー入力するのはA1で入れますが、B1セルにはB1、~、G1セルにはG1と相対的に「式」が入力されます。
マクロを簡素化してみました。
Option Explicit
Dim r As Integer, c As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If r = 0 Then r = 1 If c = 0 Then c = 1 Cells(r, c).Interior.ColorIndex = xlNone ActiveCell.Interior.ColorIndex = 15
r = ActiveCell.Row c = ActiveCell.ColumnEnd Sub
Excel2003までは条件付き書式は3つまでしか設定できませんが、Excel2007からは無限に設定できます。
しかし、条件付き書式に頼らなくても全てマクロで処理することも可能ですので、具体的に「こうして欲しい」というのを書いていただければ作ることは可能と思いますが…。
日付が入っていて、かつ、その日付のセルが今日だったら灰色にする、でよろしいのでしょうか?
それ以外の日付ではないセルは灰色にしない?
だとすれば、マクロで、
「もし activecell=日付かつ今日 だったら灰色」という式を書けば良いのですが。

