• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:削除した写真より下の写真を上に詰める)

削除した写真より下の写真を上に詰める

このQ&Aのポイント
  • 連続した工事写真があります。不特定位置の写真を1枚削除したときに、その写真より下にある写真を上に詰める方法を教えてください。
  • 削除した写真より下の写真を上に詰める方法について教えてください。具体的には、連続した工事写真の中で不特定位置の写真を1枚削除したときに、その写真より下にある写真を上に詰める方法を知りたいです。
  • 工事の連続写真の中で、不特定の位置にある写真を1枚削除したときに、その写真より下にある写真を上に詰める方法を教えてください。具体的な手順やコードがあれば教えていただけると助かります。

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

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

参考に   If UCase$(TypeName(Selection)) <> "RANGE" Then Exit Sub   myRow = Selection(1).Row   For Each Pic In ActiveSheet.Pictures     Set r = Range(Pic.TopLeftCell, Pic.BottomRightCell)     If Selection.Address = Union(Selection, r).Address Then       Pic.Delete     ElseIf Pic.TopLeftCell.Row > myRow Then       Pic.Top = Pic.TopLeftCell.Offset(-5).Top     End If     Set r = Nothing   Next End Sub

1211M
質問者

お礼

早速のご回答ありがとうございました。 私の思い通りにできました。

その他の回答 (2)

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

アップされたコードでは範囲を選択して範囲内の写真を削除していますね >不特定位置の写真を1枚削除したときに この場合、写真を選択して削除した方が良いのでは ※コマンドボタンのTakeFocusOnClickプロパティをFALSE に設定してください。 Private Sub CommandButton1_Click()   Dim Pic As Variant   Dim myRow As Long   If TypeName(Selection) <> "Picture" Then Exit Sub   myRow = Selection.TopLeftCell.Row   Selection.Delete   For Each Pic In ActiveSheet.Pictures     If Pic.TopLeftCell.Row > myRow Then       Pic.Top = Pic.TopLeftCell.Offset(-5).Top     End If   Next End Sub

1211M
質問者

お礼

早速のご回答ありがとうございました。 写真を選ぶ方法もあったのですね。 参考にさせていただきます。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

おはようございます。 VBAは分かりませんが、Pic.Deleteは実行できましたか? これに伴い、 9行目から13行目迄も不要ではないですか これらの行も削除して不都合はありますか Rows("9:13").Select Selection.Delete Shift:=xlUp

1211M
質問者

お礼

早速のご回答ありがとうございました。 削除すると、その列の文言まで消えてしまいますので 不都合です。

関連するQ&A