April 4, 2014

Excelのセル範囲の中心に図形を配置する

使い方

図形を複数のセル範囲の中央に配置するマクロを作成しました。
配置後に、セル範囲のセルを結合することで、いわゆるエクセル方眼紙のユーザーにとって使いやすい仕様にしました。


コード 

セルの結合機能がいらない場合は、強調した行を削除してください。
Sub centerObjectToRange()
    Select Case TypeName(Selection)
        Case "DrawingObjects"
            For Each targetObject In Selection
                Call subroutineCenterObjectToRange(targetObject)
            Next
        Case "Range","Nothing"
            MsgBox Prompt:="Select shapes or charts on worksheet.", Title:="centerObjectToRange"
        Case Else
            Call subroutineCenterObjectToRange(Selection)
    End Select
End Sub

Sub subroutineCenterObjectToRange(ByRef targetObject As Variant)
    Dim targetRange As Range
    
    Set targetRange = Range(targetObject.TopLeftCell, targetObject.BottomRightCell)
    
    With targetRange
        targetObject.Top = .Top + .Height / 2 - targetObject.Height / 2
        targetObject.Left = .Left + .Width / 2 - targetObject.Width / 2
    End With
    
    targetRange.Merge
End Sub

No comments :

Post a Comment