[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『土曜日を□、日・祝日を○で囲みたい』(シュー)
予定表の土曜日を□で、日祝日を○で自動的に囲むようにしたいのですが、技術がなくできません。 セルに色付けするように簡単にできる方法はないでしょうか。 もちろん、自動入力ができるようにするまでの努力、苦労はは惜しみません。
○や□囲み文字はご自分で作成する必要があります。(外字登録orオートシェイプ) それらを仮にC1に丸囲み日曜日,C2に□囲み土曜日、C3を丸囲み祝日として
A列が日付(シリアル値)なら B1=IF(WEEKDAY(A1)=1,C$1,IF(WEEKDAY(A1)=7,C$2,IF(COUNTIF(祝日リスト,A1),C$3,TEXT(A1,"aaa")))) (gon-2)
↓を参考にさせていただき作成してみました。 [[20050514151949]]『マクロでオートシェイプを描く』
シートモジュールに貼り付けて下さい。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim MyShape As Shape Cancel = True If Target = "" Then Exit Sub With Target Select Case Target Case "土曜日", "土" Set MyShape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ .Left + (.Width / 4), .Top, (.Width / 4), .Height) MyShape.Fill.Visible = msoFalse
Case "日祝日", "日曜日", "祝日", "日", "祝" Set MyShape = ActiveSheet.Shapes.AddShape(msoShapeOval, _ .Left + (.Width / 4), .Top, (.Width / 4), .Height) MyShape.Fill.Visible = msoFalse
Case Else Exit Sub End Select End With Set MyShape = Nothing End Sub
曜日のセルをダブルクリックすると□や○が描かれるはずです。的外れでした?
(1or8)
1or8さまシューです。 質問をしたとたん怪我で入院しました。 早々の回答いただきありがとうございました。 早速ためしてみました。 Left + (.Width / 4), .Top, (.Width / 4), .Height)を Left + (.Width / 1), .Top, (.Width / 1), .Height)に変えたりして自分の 表 の大きさに合うよう変えましたがセルの大きさより小さくなりません。 特に土曜日の□が罫線と重なってしまい□があるのか無いのかわかりません。 セルより小さくできないでしょうか。 それともう一つ○、□に色付けがどうしてもできません。 よろしくおねがいします。
Left + .Width / 4, .Top, .Width / 4, .Height) ~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~ ~~~~~~~~ 縦位置 横位置 幅 高さ
なので、
大きさを変えるなら、 Left + .Width / 4, .Top, .Width / 8, .Height / 2)
位置を動かすには Left + .Width / 2.4, .Top * 1.1, .Width / 4, .Height)
お好みをご自身で調整して下さい。
色付けは MyShape.Fill.Visible = msoFalse の前に MyShape.Line.ForeColor.SchemeColor = 12 '12は青。10は赤。 を追加で!
(1or8)
1or8さまシューです。 ありがとうございました。 早速挑戦させてもらいました結果、なんとセルの真ん中に赤、や青 の"○"や"□"ができました。 私のような素人に優しく教えていただき感謝いたします。 今後ともよろしくお願いします。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.