|
こんにちは。かみちゃん です。
>以前教えて頂いたコードを編集して以下のようにしてみました。
>すると、半分は上手く保存できたのですが、
>項目で「画像の名前」が飛ばされている箇所は保存できませんでした。
>
>なので、画像名が空白セルであれば10行上にある項目を参照といったふうにしたいのですが、
>
>If 画像名 = "" Then
> 画像名 = AcSh.Range(図形右上セル).Offset(-13, -4).Value
>
>を加えて実行してみたのですが上手くいきませんでした。。。
どううまくいかないのでしょうか?
そのコードでは、10行上ではなく、13行上になっていますが、いかがでしょうか?
'左上
LT = Obj.TopLeftCell.Address
'右下
BR = Obj.BottomRightCell.Address
図形右上セル = AcSh.Range(LT, BR).Rows(1).Cells(AcSh.Range(LT, BR).Rows(1).Cells.Count).Address
If AcSh.Range(図形右上セル).Row <> 1 Then
画像名 = AcSh.Range(図形右上セル).Offset(-3, -4).Value
遠近 = AcSh.Range(図形右上セル).Offset(-2, -7).Value
Else
画像名 = AcSh.Range(図形右上セル).Offset(, 1).Value
End If
の部分は、以下のようにまとめることができますが、わかりづらいでしょうか?
With Obj.TopLeftCell.Offset(, Obj.BottomRightCell.Column - Obj.TopLeftCell.Column)
If .Row <> 1 Then
画像名 = .Offset(-3, -4).Value
遠近 = .Offset(-2, -7).Value
Else
画像名 = .Offset(, 1).Value
End If
If 画像名 = "" Then
画像名 = .Offset(-10, -4).Value
End If
End With
|
|