Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3693 / 13644 ツリー ←次へ | 前へ→

【60665】オブジェクトの位置 初心者 09/3/7(土) 1:59 質問[未読]
【60667】Re:オブジェクトの位置 マクロマン 09/3/7(土) 9:03 発言[未読]
【60670】Re:オブジェクトの位置 初心者 09/3/7(土) 10:51 発言[未読]
【60676】Re:オブジェクトの位置 マクロマン 09/3/7(土) 15:08 発言[未読]
【60677】Re:オブジェクトの位置 マクロマン 09/3/7(土) 15:13 発言[未読]
【60678】Re:オブジェクトの位置 マクロマン 09/3/7(土) 15:21 発言[未読]

【60665】オブジェクトの位置
質問  初心者  - 09/3/7(土) 1:59 -

引用なし
パスワード
   マクロを使って座席表のマクロがあります。そのマクロは、入力した番号から、顔写真を呼び込み顔写真付き座席表をつくるものです。下のVBAがその一部になります。今まで2003で問題なく利用できていましたが、2007で利用したところ、顔写真(オブジェクト)がすべて同じ位置に貼り付けられ、座席表が作製できません。
2003から2007には何か違いがあるのでしょうか。

'データの貼り付け
Sheets("印刷シート").Cells(k * 2, j * 2 - 1).Value = Zaseki(k, j)
Sheets("印刷シート").Cells(k * 2, j * 2 - 1).HorizontalAlignment = xlLeft
Sheets("印刷シート").Cells(k * 2, j * 2).Value = kData(2)
Sheets("印刷シート").Cells(k * 2 - 1, j * 2 - 1).Select
ActiveSheet.Pictures.Insert(MyPath & Zaseki(k, j) & ".jpg").Select
Selection.ShapeRange.IncrementLeft 0.75
Selection.ShapeRange.IncrementTop 1.5
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 107.25
Selection.ShapeRange.Width = 85.5

【60667】Re:オブジェクトの位置
発言  マクロマン  - 09/3/7(土) 9:03 -

引用なし
パスワード
   今2007の環境がないので未検証ですが。

貼付け後、Top、Leftを指定して移動させればいいのでは?
相対的に、ではなく、絶対的に、です。

【60670】Re:オブジェクトの位置
発言  初心者  - 09/3/7(土) 10:51 -

引用なし
パスワード
   >貼付け後、Top、Leftを指定して移動させればいいのでは?
>相対的に、ではなく、絶対的に、です。

具体的に教えて頂けないでしょうか。どのように命令を書けばいいでしょうか。

【60676】Re:オブジェクトの位置
発言  マクロマン  - 09/3/7(土) 15:08 -

引用なし
パスワード
   アクティブセルに画像を貼りつけるサンプルです。
高さだけをセルにあわせるようにしてあります。
幅もセルに合わせる場合は(1)をコメントアウトして、
(2)のコメントアウトを解除して実行してください。

Sub test()
Dim gz As Picture
 Set gz = "画像のフルパス"
 With ActiveSheet.Shapes(gz.Name)
   .LockAspectRatio = msoTrue '(1)
   .Height = ActiveCell.Offset(1).Top - ActiveCell.Top
   '.Width = ActiveCell.Offset(,1).Left - ActiveCell.Left '(2)
   .Left = ActiveCell.Left
   .Top = ActiveCell.Top
   End With
End Sub

【60677】Re:オブジェクトの位置
発言  マクロマン  - 09/3/7(土) 15:13 -

引用なし
パスワード
   >Set gz = "画像のフルパス"
↓の間違いです。失礼しました。
Set gz = ActiveSheet.Pictures.Insert("画像のフルパス")

【60678】Re:オブジェクトの位置
発言  マクロマン  - 09/3/7(土) 15:21 -

引用なし
パスワード
   >幅もセルに合わせる場合は(1)をコメントアウトして、

コメントアウトするのではなく
>.LockAspectRatio = msoTrue '(1)

.LockAspectRatio = msoFalse '(1)
としたほうがいいかもしれません。

ただ、このようにすると、画像の縦横比とセルの縦横比が一致してないと、
画像の縦横比がくずれます。

3693 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free