「だるころ」(だぁ~るまさんがこぉ~ろんだ♪)

「だるころ治療院」を開設しようと思って、はてなブログを作りました。 https://darucoro.com/

大学の授業に向けて(VBA)6


スポンサーリンク

★読者登録お願いします

 


 

 

 赤ペン先生

 エクセルを赤でチェック!
今回も訪問して頂きありがとうございます。
佛教大学で非常勤講師をしている関係で、授業の為の細かな工夫をしています。
 
目的のセルを赤くするだけのVBAです。
チェックしたい時に赤い塗りつぶしの枠を挿入する感じです。
でも。挿入時はセルの形に合わせた方が綺麗でしょ?
 
一つ作れば、図形はCtrl+左クリックで引っ張れば増やせます。
それに、ハンドルにて拡大も出来ますから便利に使えると思ったんです。
 
 こんな感じです。
ワークシート内をいつでも綺麗に使いたいですよね。
一つ挿入したら、出来た赤枠を使いまわす感じです。
 

f:id:darucoro9216kun:20200413153324p:plain

今回はリボンに記述したマクロを登録しました。
 

f:id:darucoro9216kun:20200413153954p:plain

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
            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
 
End Sub

  以前紹介したVBAを、一部再利用しています。
誰でも思いつくような考えになってしまいましたが、授業では結構使えそうです。
なるべくシンプルにVBAを記述しようと思っています。
たぶん、上記のVBAはもっとシンプルに書けるんだと思います。
角が丸い四角形を採用しているのは、角が立つのが嫌だからです(wa)
特に深い意味は有りません。
 
 
VBAを頭のスポーツ楽しんいます。プロシージャの読みにくさなど、
お許しください。
 
アドインは作成すると便利です。
ただ、汎用マクロにするの時に少し考えなくちゃですね。
特定のシートでしか使えないなどは、使い勝手悪いですからね。
上手く書けたと思っても、不具合が出るかも知れません。
その時は、懲りずに改めて考え直して変更しなくちゃでです。
 
 
 
 
今回も、最後までお付き合いいただきありがとうございました。
 
 
 
 
 

友だち追加

プライバシーポリシー