• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ 写真貼り付け)

エクセルマクロ写真貼り付けの修正方法

このQ&Aのポイント
  • エクセルマクロを使用して写真を貼り付ける際に、PCを入れ替えた後にうまく動作しなくなった場合の修正方法を教えてください。
  • 以前は各ページごとに指定の大きさで写真を貼り付けていたが、入れ替えたPCでは1ページ目のセルに写真が重ねて貼り付けられてしまう現象が発生しています。
  • マクロに関しては素人のため、具体的な修正方法をご教示いただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.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

yotaima
質問者

お礼

こんにちは。 さらに修正いただきありがとうございます。 行高の設定は最初からこうなっていたので、そのまま使っておりました。 いろいろ試してみましたが、やっぱりVBAは難しいです。 今後の勉強課題といたします。 ありがとうございました。

その他の回答 (3)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>Application.ScreenUpdating = True ・・・・・・・・・ ・・・・・・・・・ >Application.ScreenUpdating = False 間違えました、下記のように訂正してください。 Application.ScreenUpdating = False ・・・・・・・・・ ・・・・・・・・・ Application.ScreenUpdating = True

yotaima
質問者

お礼

こんにちは。 早速のご教示ありがとうございます。 手直しまで入れていただき、大変お手数おかけしました。 本日仕事が休みのため、自宅のPCで動作確認してみました。 写真が下に向かって、ずれて張り付けされました。 A4ぺーじに1枚ずつ貼り付けをしたかったのですが、 myRow + 34  こんな感じでずれる量を調整してみました。 あとは仕事場で、調整しながらやってみます。 ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>写真が下に向かって、ずれて張り付けされました。 お試しください 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)
回答No.1

ちょと無駄なところもあるようですが、それは置いといて、 下記■の間の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 -------------------------------- 以上です。  

yotaima
質問者

お礼

こんにちは。 早速のご教示ありがとうございます。 本日仕事が休みのため、自宅のPCで動作確認してみました。 写真が下に向かって、ずれて張り付けされました。 後は何行ずらすか、試行錯誤しながらやってみます。 ありがとうございました。

関連するQ&A