Excelマクロコードについて教えてください。 Sub 図形移動() ActiveSheet.Shapes("電子審査").Left = Range("L6").Left
Excelマクロコードについて教えてください。 Sub 図形移動() ActiveSheet.Shapes("電子審査").Left = Range("L6").Left ActiveSheet.Shapes("審査完了").Left = Range("L9").Left ActiveSheet.Shapes("チェック完了").Left = Range("L12").Left ActiveSheet.Shapes("PDF").Left = Range("L15").Left End Sub のコードがあります。このコードは該当する図形名の図形を指定したセル値に移動できるコードです。 現状のコードでは図形の左端がセルの左端に合うように移動します。 これを、図形の中心がセルの中心に合うように移動させていのですが Leftを「centre」に変更したらエラーが出てしまい、上手く実行が出来ません。 解決方法をよろしくお願いいたします。
Visual Basic | Excel・82閲覧・25
ベストアンサー
図がセル内に収まっているのであれば、 Sub 図形移動() Dim shp As Shape With Range("L6") Set shp = ActiveSheet.Shapes("電子審査") shp.Top = .Top + (.Height - shp.Height) / 2 shp.Left = .Left + (.Width - shp.Width) / 2 End With With Range("L9") Set shp = ActiveSheet.Shapes("審査完了") shp.Top = .Top + (.Height - shp.Height) / 2 shp.Left = .Left + (.Width - shp.Width) / 2 End With With Range("L12") Set shp = ActiveSheet.Shapes("チェック完了") shp.Top = .Top + (.Height - shp.Height) / 2 shp.Left = .Left + (.Width - shp.Width) / 2 End With With Range("L15") Set shp = ActiveSheet.Shapes("PDF") shp.Top = .Top + (.Height - shp.Height) / 2 shp.Left = .Left + (.Width - shp.Width) / 2 End With End Sub でいいのでは?
質問者からのお礼コメント
回答ありがとうございました。 全て解決いたしました。
お礼日時:5/25 11:11