- ベストアンサー
エクセルマクロ写真貼り付けの修正方法
- エクセルマクロを使用して写真を貼り付ける際に、PCを入れ替えた後にうまく動作しなくなった場合の修正方法を教えてください。
- 以前は各ページごとに指定の大きさで写真を貼り付けていたが、入れ替えたPCでは1ページ目のセルに写真が重ねて貼り付けられてしまう現象が発生しています。
- マクロに関しては素人のため、具体的な修正方法をご教示いただけると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>Cells.Select >Selection.RowHeight = 22.5 >写真が下に向かって、ずれて張り付けされました。 >A4ぺーじに1枚ずつ貼り付けをしたかったのですが、 >myRow + 34 こんな感じでずれる量を調整してみました。 毎回、行高を設定する必要があるのかな? 毎回、pictureシートが新規で作成されるとか >Application.ScreenUpdating = False > myDataCnt = Worksheets("data").Range("A1").End(xlDown).Row > myRow = 2 > Worksheets("picture").Select Cells.RowHeight = 22.5 '←1行追加してください。 > myZoom = ActiveWindow.Zoom > ActiveWindow.Zoom = 100 > For myNo = 1 To myDataCnt
その他の回答 (3)
- watabe007
- ベストアンサー率62% (476/760)
>Application.ScreenUpdating = True ・・・・・・・・・ ・・・・・・・・・ >Application.ScreenUpdating = False 間違えました、下記のように訂正してください。 Application.ScreenUpdating = False ・・・・・・・・・ ・・・・・・・・・ Application.ScreenUpdating = True
お礼
こんにちは。 早速のご教示ありがとうございます。 手直しまで入れていただき、大変お手数おかけしました。 本日仕事が休みのため、自宅のPCで動作確認してみました。 写真が下に向かって、ずれて張り付けされました。 A4ぺーじに1枚ずつ貼り付けをしたかったのですが、 myRow + 34 こんな感じでずれる量を調整してみました。 あとは仕事場で、調整しながらやってみます。 ありがとうございました。
- watabe007
- ベストアンサー率62% (476/760)
>写真が下に向かって、ずれて張り付けされました。 お試しください Sub MakeThumbnail() Dim myDataCnt As Long Dim myNo As Long Dim myRow As Long Dim myName As String Dim myZoom As Single Application.ScreenUpdating = True myDataCnt = Worksheets("data").Range("A1").End(xlDown).Row myRow = 2 Worksheets("picture").Select myZoom = ActiveWindow.Zoom ActiveWindow.Zoom = 100 For myNo = 1 To myDataCnt myName = Worksheets("data").Cells(myNo, 1).Value With ActiveSheet.Pictures.Insert(myName) .ShapeRange.LockAspectRatio = msoTrue .ShapeRange.Width = 200# .Left = Cells(myRow, 2).Left .Top = Cells(myRow, 2).Top End With myRow = myRow + 12 Next ActiveWindow.Zoom = myZoom Application.ScreenUpdating = False End Sub
- myRange
- ベストアンサー率71% (339/472)
ちょと無駄なところもあるようですが、それは置いといて、 下記■の間の2行を追加すると動作すると思いますが。 ------------------------ ActiveSheet.Pictures.Insert(myName).Select Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Width = 200# '■ Selection.ShapeRange.Top = Cells(myRow, 2).Top Selection.ShapeRange.Left = Cells(myRow, 2).Left '■ myRow = myRow + 12 myNo = myNo + 1 Loop -------------------------------- 以上です。
お礼
こんにちは。 早速のご教示ありがとうございます。 本日仕事が休みのため、自宅のPCで動作確認してみました。 写真が下に向かって、ずれて張り付けされました。 後は何行ずらすか、試行錯誤しながらやってみます。 ありがとうございました。
お礼
こんにちは。 さらに修正いただきありがとうございます。 行高の設定は最初からこうなっていたので、そのまま使っておりました。 いろいろ試してみましたが、やっぱりVBAは難しいです。 今後の勉強課題といたします。 ありがとうございました。