エクセルを赤でチェック!
今回も訪問して頂きありがとうございます。
佛教大学で非常勤講師をしている関係で、授業の為の細かな工夫をしています。
目的のセルを赤くするだけのVBAです。
チェックしたい時に赤い塗りつぶしの枠を挿入する感じです。
でも。挿入時はセルの形に合わせた方が綺麗でしょ?
一つ作れば、図形はCtrl+左クリックで引っ張れば増やせます。
それに、ハンドルにて拡大も出来ますから便利に使えると思ったんです。
こんな感じです。
ワークシート内をいつでも綺麗に使いたいですよね。
一つ挿入したら、出来た赤枠を使いまわす感じです。
今回はリボンに記述したマクロを登録しました。
cellredを二回押すとアクティブセルだけ一つ残って残りは消えます。
残るのは選択してる図形ではなく、アクティブセルです!
オブジェクトの選択と表示で確認すると名前を指定すると、コピーしたものは同じ名前になります。それを利用する前提で作っています。
それでは行きまーす!
Sub cellred()
On Error Resume Next
Dim i As Long, j As Long
i = ActiveCell.Row
j = ActiveCell.Column
Dim t As Shape
For Each t In ActiveSheet.Shapes
On Error Resume Next
Dim i As Long, j As Long
i = ActiveCell.Row
j = ActiveCell.Column
Dim t As Shape
For Each t In ActiveSheet.Shapes
If t.Name = "四角" Then
t.Delete
Else
End If
Next t
Dim tshape As Shape
With ActiveSheet.Cells(i, j)
Set tshape = ActiveSheet.Shapes.AddShape(Type:=msoShapeRoundedRectangle, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
tshape.Fill.Visible = msoFalse
tshape.Line.ForeColor.RGB = RGB(255, 0, 0)
tshape.Name = "四角"
End With
Set tshape = Nothing
With ActiveSheet.Cells(i, j)
Set tshape = ActiveSheet.Shapes.AddShape(Type:=msoShapeRoundedRectangle, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
tshape.Fill.Visible = msoFalse
tshape.Line.ForeColor.RGB = RGB(255, 0, 0)
tshape.Name = "四角"
End With
Set tshape = Nothing
End Sub
以前紹介したVBAを、一部再利用しています。
誰でも思いつくような考えになってしまいましたが、授業では結構使えそうです。
なるべくシンプルにVBAを記述しようと思っています。
たぶん、上記のVBAはもっとシンプルに書けるんだと思います。
角が丸い四角形を採用しているのは、角が立つのが嫌だからです(wa)
特に深い意味は有りません。
VBAを頭のスポーツ楽しんいます。プロシージャの読みにくさなど、
お許しください。
アドインは作成すると便利です。
ただ、汎用マクロにするの時に少し考えなくちゃですね。
特定のシートでしか使えないなどは、使い勝手悪いですからね。
上手く書けたと思っても、不具合が出るかも知れません。
その時は、懲りずに改めて考え直して変更しなくちゃでです。
今回も、最後までお付き合いいただきありがとうございました。