質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1548閲覧

カレンダーの休みの日にオートシェイプ表示

chie3

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

0クリップ

投稿2020/03/13 07:49

カレンダーで土日祝日にオートシェイプで丸を付けたい。
ここに質問の内容を詳しく書いてください。
B8に日にち・C8に曜日・D8に非表示で休が縦に表示されます。
C8から土・日は判別できるのですが、D8の休も識別できるように作るにはどうすればいいでしょうか?

ソースコード

Sub test()
Dim S As Shape
Dim i As Long

For Each S In ActiveSheet.Shapes If S.Name Like "丸*" Then S.Delete End If Next S For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row Select Case Cells(i, "C").Text Case "土", "日" With Range(Cells(i, "B"), Cells(i, "C")) With ActiveSheet.Shapes.AddShape(msoShapeOval, .Left, .Top, .Width, .Height) .Name = "丸" & i .Fill.Visible = msoFalse .Line.Weight = 1.5 .Line.ForeColor.RGB = RGB(255, 0, 0) End With End With End Select Next i

End Sub

s.k👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SelectをIfに置き換えただけですが。。。

VBA

1 2 For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row 3 If Cells(i, "C").Text = "土" Or Cells(i, "C").Text = "日" Or Cells(i, "D").Text = "休" Then 4 With Range(Cells(i, "B"), Cells(i, "C")) 5 With ActiveSheet.Shapes.AddShape(msoShapeOval, .Left, .Top, .Width, .Height) 6 .Name = "丸" & i 7 .Fill.Visible = msoFalse 8 .Line.Weight = 1.5 9 .Line.ForeColor.RGB = RGB(255, 0, 0) 10 End With 11 End With 12 End If 13 Next i 14

投稿2020/03/13 07:58

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chie3

2020/03/13 08:02

このコードですと前の月の丸が消えず、増えていってしまいます。
chie3

2020/03/13 08:05

よく確認祖鱈出来ましたありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問