|
初心者ですが、本を基本に、ここの質問箱で勉強させて頂いています。
今回、初めて図形に関わるマクロに挑戦したんですが基本的なことが分かりません。
持って要る本にはShapeに関することがほとんど書かれていないので、宜しくお願いします。
【質問】
Range("C10:C15)の位置にオートシェイプで赤丸を書いた。
この図形(赤丸)を各セルの上下方向の中間、左端から一定距離の位置に表示するには、どうすればいいのかを教えていただきたい。
【これまでに検討したこと】
[1]マクロを記録し、動きを確認しました。
For i = 1 To 6
ActiveSheet.Shapes("Picture " & i).Select
Selection.ShapeRange.IncrementLeft 2.25
Selection.ShapeRange.IncrementTop 7.5
Next
理解したこと・・・・現在の位置を基準に右、下(マイナス数値にすれば左、上)へ移動する
[2]ネット検索でのコードをヒントに表示位置を確認
For i = 1 To 6
ActiveSheet.Shapes("Picture " & i).Select
Selection.ShapeRange.Left = 100
Selection.ShapeRange.Top = 50 * i
Next
理解したこと・・・・A列の左端を基準に右へ移動、1行目の上端を基準に下へ移動
調べた範囲内では、図形の表示位置はセル位置との相関性はとれないのかな?
と考えてしまいましたが、初心者のためよく分かりません。
図形を、表示したセル内の指定場所に移動させる方法を教えて下さい。
きっかけとなったのは図形をドラッグして移動してたら、位置がバラバラになってしまったからです。
実際に使用するシートのデーター範囲は列方向にはスクロールする必要ない範囲なので
ShapeRange.Left = 0 に初期化してから ShapeRange.Left = 100 などを設定し、目視で確認すれば可能ですが
行数が5000〜10000行あり、行の高さも一様でないため、ShapeRange.top では設定無理と判断し、投稿させて頂きました。
宜しくお願いします。
|
|