|
myShapeBehindText2が異常終了したようで・・・
御手数をお掛けさせてしまったようです。
下記の通り修正しました。
誠に申し訳ないです。
「Dim myCmmdBar As CommandBars」を「Dim myCmmdBar As CommandBar」に、
「Set myCtrl = myCmmBar.FindContro(ID:=1404)」 は脱字、
「Set myCtrl = myCmmdBar.FindControl(ID:=1404)」に、
「myCtrl.Controls(4).DescriptionText」は「MsgBox myCtrl.Controls(4).DescripitionText」に一本化。
(これは処理内容確認のためで、異常がないなら、後でコメント行にして下さい。)
「For i = 0 To ActiveDocument.InlineShapes.Count - 1」は
「For i = ActiveDocument.InlineShapes.Count To 1 Step -1」に修正。
この部分は、私の不覚!
行内に配置された画像データは0からではなく1から始まるのでした。
(配列と勘違いしました。)
それと、画像を背面に移動する処理を、挿入した逆順に処理するようにしました。
行内に配置された画像データを背面に移動させるということは、
行内に配置された画像が削除されたのと同じ状態になるわけです。
・・・と言うことは、
画像データは、挿入処理後に(おそらく挿入が済んだ後で)、
時間的に挿入された順番に「InlineShape(1)・・・」のように自動で付番されるのですが、
1から順に処理すると、画像データ(1)が消滅して、
次の画像データ(2)が再び(1)から付番されることになり、
処理が変になるのでした!
「Selection.Collapse」を追加。これは画像データの選択の解除。
修正したマクロは以下の通り。(陳謝!)
Sub myShapeBehindText2()
Dim myCmmdBar As CommandBar
Dim myCtrl As CommandBarControl
Dim i As Integer
'
Set myCmmdBar = ActiveDocument.CommandBars("Picture") ' [図]ツールバー
Set myCtrl = myCmmdBar.FindControl(ID:=1404) ' [テキストの折り返し]ボタン
'
For i = ActiveDocument.InlineShapes.Count To 1 Step -1
ActiveDocument.InlineShapes.Item(i).Select ' 図の選択
myCtrl.Controls(4).Execute ' [テキストの折り返し]上から4番目[背面]
MsgBox myCtrl.Controls(4).DescriptionText ' 処理の説明
Next i
'
Selection.Collapse
End Sub
|
|