[[20100810222752]] 『セルの値により図形を移動』(竜) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの値により図形を移動』(竜)
 図形を移動方法を教えて欲しいです。
 例えばA1の値が「りんご」だったら
 結合セルQ27:W28の中に配置してある図形(円/楕円)を左に100ピクセル移動させる。
 A1の値が「みかん」だったら左に100ピクセル移動させる
 なんてことはできないですか?

 エクセル2007です
 宜しくお願いします。


 Sub tet()
    Dim objS As Object, objr As Range

    If Range("a1").Value = "りんご" Or Range("a1").Value = "みかん" Then
        Set objr = Range("q27:w28")
        For Each objS In ActiveSheet.DrawingObjects
            If Not Application.Intersect(Range(objr.Address), Range(objS.TopLeftCell, objS.BottomRightCell)) _
                        Is Nothing And objS.OnAction = "" Then
                If Left(objS.Name, 4) = "Oval" Then
                    ActiveSheet.Shapes(objS.Name).IncrementLeft -100
                End If
            End If
        Next
    End If
End Sub
(~o~)


 ピクセル単位での移動は出来ないと思いますよ。
 ポイントで、0.75単位が基準。

 ピクセルをポイントに変えて移動しても、例えば、0.5の移動は、
 0.75に修正されるだろうし。
 BJ

 失礼しました。ポイント単位としてました。Sub tet()は 無視してください。
BJさん ありがとう。
(~o~)


 急に仕事がたてこんで、ネットを開けずにいました。申し訳ありません。
 回答をつけていただいたものの、ピクセル単位での移動はどうやら無理みたいだとわかりました。
 では、他の単位での移動なら可能でしょうか?例えばセル単位とか
 もし方法をご存じの方がいらっしゃいまいしたら、ご教示願います。
 (竜)


 ActiveSheet.Shapes(objS.Name).IncrementLeft -100*3/4
100ピクセルならイケソウナ気がしますが?     ↑追加して
(盆)

 盆さんへ
 回答有難うございます。
 早速 試させていただいたのですが、残念ながらコードは動きませんでした。
 (竜)


 >例えばセル単位とか
 セル単位でなくセル基準だけど。
 参考
[[20080926072706]]『VBA:画像の挿入2』(masabou5)
 BJ

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.