2016-07-06 2 views
1

VBAコードは非常にうまく機能します。私は、複数のサイズの図形を変更することはできますが、丸められた数値に対してのみ動作しています。私が形状のサイズを2.5または5.5に変更するようにしたら、動作しませんが、変数のデータ型は倍です。何か案は? 形状のサイズを変更するためのデータ型

あなたは integerとして結果をキャスト

objHeigh = CInt(InputBox$("Assign a new size of Height", "Heigh")) 

CIntを使用するためです

Function ConvertPointToCm(ByVal pnt As Double) As Double 
ConvertPointToCm = pnt * 0.03527778 
End Function 

Function ConvertCmToPoint(ByVal cm As Double) As Double 
ConvertCmToPoint = cm * 28.34646 
End Function 


Sub test() 

Dim objHeigh As Double 
Dim objWidth As Double 
Dim oSh As Shape 

On Error GoTo CheckErrors 

With ActiveWindow.Selection.ShapeRange 
If .Count = 0 Then 
    MsgBox "You need to select a shape first" 
    Exit Sub 
End If 
End With 

objHeigh = CInt(InputBox$("Assign a new size of Height", "Heigh")) 
' give the user a way out 
If objHeigh = 0 Then 
Exit Sub 
End If 
objHeigh = ConvertCmToPoint(objHeigh) 

objWidth = CInt(InputBox$("Assign a new size of Width", "Width")) 
' give the user a way out 
If objWidth = 0 Then 
Exit Sub 
End If 
objWidth = ConvertCmToPoint(objWidth) 

For Each oSh In ActiveWindow.Selection.ShapeRange 
If objName <> "" Then 
    oSh.Name = objName 
End If 

oSh.Height = CInt(objHeigh) 
    oSh.Width = CInt(objWidth) 
Next 
Exit Sub 

CheckErrors: MsgBox Err.Description 

End Sub 
+0

あなたが「動作しない」とはどういう意味ですか? –

答えて

2

ありがとうございます。
ので、答えは以下のようにする必要があります:

objHeigh = CDbl(InputBox$("Assign a new size of Height", "Heigh")) 
+0

代わりに 'CDbl'を使うようアドバイスするためにあなたの答えを更新しないでください - それはもっと良い答えになります;-) –

+0

Re:' Robin'はい、ちょうど改訂されました。ありがとうございました – Grace

+0

Re: 'ノービー'答えが役に立ったら、受け入れられる答えとしてマークしてください、ありがとうございます。) – Grace

関連する問題