SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.10<<123456789101112131415161718192021222324252627282930>>2017.12
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

以前、仕事でエクセルのワークシート上の図形を読み込んだ位置データに従って移動、回転させたことがある。備忘録として載せておく。
Sub MoveSym(ByVal s As Worksheet, _
ByVal symname As String, _
ByVal x1 As Double, _
ByVal x2 As Double, _
ByVal y As Double, _
ByVal v1 As Integer, _
ByVal v2 As Integer, _
ByVal pos As Integer, _
ByVal rot As Integer)
x = (x1 - x2) * (pos - v2) / (v1 - v2) + x2
s.Shapes(symname).Rotation = rot
s.Shapes(symname).Left = x - s.Shapes(symname).Width / 2
s.Shapes(symname).Top = y - s.Shapes(symname).Height / 2
End Sub


特に詳細は書かないが、sはワークシート、symnameは図形の名前(数式バーの左に表示される名前)。
上のコードは実際に仕事で書いたコードだが、もうちょっとわかりやすいサンプルも書いてみたので、載せておく。
Sub test()
For i = 1 To 3600
Sheet1.Shapes("RECT").Rotation = i
Sheet1.Shapes("RECT").Left = Abs(i Mod 360 - 180)
Sheet1.Shapes("RECT").Top = Abs(i Mod 720 - 360) / 2
DoEvents
Next i
End Sub

テーマ:EXCEL - ジャンル:コンピュータ
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。