前提・実現したいこと
エクセルを利用した報告書形式のxlsmファイルに評価・判定用の丸型のシェイプオブジェクト
を背景色の付いたセルに生成するマクロを作成する。
発生している問題
結合セルに背景色が付いている場合に、結合前の単体セル単位で〇がついてしまう。
該当のソースコード
vba
1Sub 丸object書き込み() 2 Dim myShp As Shape 3 Dim cell As Variant 4 Dim c As Variant 5 For Each c In ActiveSheet.Range(Cells(1, 24), Cells(45, 300)) 6 If c.MergeCells And c.Interior.Color = RGB(255, 0, 0) Then 7 With ActiveSheet.Range(c.Address) 8 Set myShp = ActiveSheet.Shapes.AddShape _ 9 (Type:=msoShapeFlowchartConnector, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height) 10 11 With myShp 12 .Name = "丸印" 13 .Line.ForeColor.SchemeColor = 0 '黒 14 .Line.Weight = 1 '線の太さ 15 .Fill.ForeColor.RGB = RGB(255, 0, 0) 16 .Fill.Transparency = 1 '透過 17 End With 18 End With 19 20 ElseIf c.Interior.Color = RGB(255, 0, 0) Then 21 With c 22 Set myShp = ActiveSheet.Shapes.AddShape _ 23 (Type:=msoShapeFlowchartConnector, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height) 24 25 With myShp 26 .Name = "丸印" 27 .Line.ForeColor.SchemeColor = 0 '黒 28 .Line.Weight = 1 '線の太さ 29 .Fill.ForeColor.RGB = RGB(255, 0, 0) 30 .Fill.Transparency = 1 '透過 31 End With 32 End With 33 Set myShp = Nothing 34 End If 35 Next 36End Sub 37
結果
試したこと
7行目にoffsetプロパティで2列単位で〇オブジェクトを指定出来るようにした。
'''vba
With ActiveSheet.Range(c.Address, c.Offset(0, 1)) '7行目
'''
結果(offset後)
芳しくありません。
結合セル内のセルにオフセット指定セルがついてきてしまうだけで、狙い通りにはいかない。
書き込まれた2種類の〇のうち、ひとつでも結合セルに当てはまっていれば片方を消せばいいのですが
悪いことに結合セルであっても一つのセルと見なされているのか3列に渡って丸が付けられてしまいます。
検索を含め、かなりの時間、頭をひねって考えましたが解決策が見つかりません。
何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/23 08:31