dポイントプレゼントキャンペーン実施中!

エクセル初心者です。
以下のマクロを教えて頂きました。
セルに入力する数値は他の計算式から数値を割り出しています。
このマクロをセンチで入力して、実行する事は可能でしょうか。
その方法がありましたら、教えてください。

Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveSheet.Shapes.Range(Array("Group 1"))
.Top = 100
.Left = 100
.Height = ActiveSheet.Range("A2").Value
.Width = ActiveSheet.Range("A3").Value
End With
End Sub

よろしくお願いします。

A 回答 (3件)

移動?


こちら↓の質問の続きですよね?
http://oshiete.goo.ne.jp/qa/7753279.html
グループ化したオブジェクトの拡大縮小なのでは?

私はExcelおよびマクロについては得意ではないので、無駄な
書き方になっているかもしれませんが。

図形のサイズはポイントなので、マクロで単位をセンチにする
場合は、Application.CentimetersToPoints()が必要で、
これを追加することで、対応できると思います。
http://excelfactory.net/excelboard/excelvba/exce …


Private Sub Worksheet_Change(ByVal Target As Range)
 Dim h As Double
 Dim w As Double

 h = ActiveSheet.Range("A2").Value
 w = ActiveSheet.Range("A3").Value

 h = Application.CentimetersToPoints(h)
 w = Application.CentimetersToPoints(w)

 With ActiveSheet.Shapes.Range(Array("Group 1"))
  .Top = 100
  .Left = 100
  .Height = h
  .Width = w
 End With
End Sub
    • good
    • 1
この回答へのお礼

ご回答を有難うございました。
無事、マクロを実行することが出来ました。
センチをポイントに換算してから、入力すれば良いと思いましたが、
センチでの入力が出来れば、いっそう効率的と生意気にも思ってしまいました。
ご指導を頂けて、感謝です。有難うございました。
これからも、よろしくお願いします。

お礼日時:2012/10/18 15:52

.Top = 5*72/2.54


.Left = 10*72/2.54
.Height = ActiveSheet.Range("A2").Value*72/2.54
.Width = ActiveSheet.Range("A3").Value*72/2.54

だから、
.Top = 5*28.35
.Left = 10*28.35
.Height = ActiveSheet.Range("A2").Value*28.35
.Width = ActiveSheet.Range("A3").Value*28.35
    • good
    • 2
この回答へのお礼

入力したセンチの数値に*28.35を加えればよいのですね。
目からうろこです。
生意気にもエクセルで手仕事の計算などをしていますので、
教えて頂くことが出来て、感謝するばかりです。
手取り足取りのご指導を再度お礼申し上げます。有難うございました。

お礼日時:2012/10/18 15:48

.Top = Application.CentimetersToPoints(5)


.Left = Application.CentimetersToPoints(10)
.Height = Application.CentimetersToPoints(ActiveSheet.Range("A1").Value)
.Width = Application.CentimetersToPoints(ActiveSheet.Range("A2").Value)
    • good
    • 0
この回答へのお礼

okormazd様
昨日に引き続き、ご回答を有難うございました。
センチで入力が無事に動作いたしました。
重ねて感謝申し上げます。有難うございました。

お礼日時:2012/10/18 14:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!