- ベストアンサー
図形の移動をセンチの数値でマクロを実行する方法
- エクセル初心者の方でも図形をセンチで移動させるマクロを簡単に実行する方法をご紹介します。
- 他の計算式から得られた数値をセンチ単位で入力し、マクロを実行することで、図形が指定した位置に移動します。
- 具体的な手順を以下で説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
移動? こちら↓の質問の続きですよね? http://okwave.jp/qa/q7753279.html グループ化したオブジェクトの拡大縮小なのでは? 私はExcelおよびマクロについては得意ではないので、無駄な 書き方になっているかもしれませんが。 図形のサイズはポイントなので、マクロで単位をセンチにする 場合は、Application.CentimetersToPoints()が必要で、 これを追加することで、対応できると思います。 http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=154591&rev=0 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
その他の回答 (2)
- okormazd
- ベストアンサー率50% (1224/2412)
.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
お礼
入力したセンチの数値に*28.35を加えればよいのですね。 目からうろこです。 生意気にもエクセルで手仕事の計算などをしていますので、 教えて頂くことが出来て、感謝するばかりです。 手取り足取りのご指導を再度お礼申し上げます。有難うございました。
- okormazd
- ベストアンサー率50% (1224/2412)
.Top = Application.CentimetersToPoints(5) .Left = Application.CentimetersToPoints(10) .Height = Application.CentimetersToPoints(ActiveSheet.Range("A1").Value) .Width = Application.CentimetersToPoints(ActiveSheet.Range("A2").Value)
お礼
okormazd様 昨日に引き続き、ご回答を有難うございました。 センチで入力が無事に動作いたしました。 重ねて感謝申し上げます。有難うございました。
お礼
ご回答を有難うございました。 無事、マクロを実行することが出来ました。 センチをポイントに換算してから、入力すれば良いと思いましたが、 センチでの入力が出来れば、いっそう効率的と生意気にも思ってしまいました。 ご指導を頂けて、感謝です。有難うございました。 これからも、よろしくお願いします。