'@数据化分析
http://weibo.com/data2analysis
'博客:
http://blog.sina.com.cn/data2analysis
'日期:2012-06-05
Sub auto_add_macro()
'新建一个模型时手动运行,一次性添加宏
For i = 1 To ActiveSheet.Shapes.Count
'5表示对象类型是地图版块
If ActiveSheet.Shapes(i).Type = 5 Then
ActiveSheet.Shapes(i).OnAction = "'thisworkbook.click(""" & ActiveSheet.Shapes(i).Name & """)'"
End If
Next
End Sub
Sub click(region_name)
'1、取A1单元格值,将上次选择的地图版块填充黄色边缘,即还原边缘色
ActiveSheet.Shapes(Range("A1").Value).Line.ForeColor.RGB = RGB(134, 142, 146)
'2、将当前选择的地图版块名称填值到A1
Range("A1").Value = region_name
'3、将当前选择的地图版块填充红色边缘, 并置顶
ActiveSheet.Shapes(region_name).Line.ForeColor.RGB = RGB(255, 0, 0)
ActiveSheet.Shapes(region_name).ZOrder msoBringToFront
End Sub
Sub fill_color()
'1、取A1单元格值,将上次选择的地图版块填充黄色边缘,即还原边缘色
ActiveSheet.Shapes(Range("A1").Value).Line.ForeColor.RGB = RGB(134, 142, 146)
'2、将当前选择的地图版块名称填值到A1
Range("A1").Value = "zhongguo"
'3、将当前选择的地图版块填充红色边缘
ActiveSheet.Shapes(Range("A1").Value).Line.ForeColor.RGB = RGB(255, 0, 0)
Application.ScreenUpdating = False '暂停刷新屏幕
For i = 4 To 34 '为数据源的起始和结束行号
ActiveSheet.Shapes(Range("区域销售分析!AC" & i).Value).Fill.ForeColor.RGB = Range(Range("区域销售分析!AD" & i).Value).Interior.Color
'对各省的图形使用其颜色栏的值作为名称所指向的单元格的颜色填充
Next i
Application.ScreenUpdating = True '恢复刷新屏幕
End Sub
Sub init()
Application.ScreenUpdating = False '暂停刷新屏幕
For i = 4 To 34 '为数据源的起始和结束行号
ActiveSheet.Shapes(Range("区域销售分析!AC" & i).Value).Fill.ForeColor.RGB = Range(Range("区域销售分析!U7").Value).Interior.Color
ActiveSheet.Shapes(Range("区域销售分析!AC" & i).Value).Line.ForeColor.RGB = RGB(134, 142, 146)
ActiveSheet.Shapes("zhongguo").Line.ForeColor.RGB = RGB(134, 142, 146)
Next i
Application.ScreenUpdating = True '恢复刷新屏幕
End Sub