2

誰かがこれで私を助けてくれることを願っています。以下の VB スクリプトは Excel にあり、新しい Word ドキュメントを作成します。このコードは、Excel から Word に画像をコピーします。次に、TextBox を作成して画像の上に配置します。次に、TextBox にテキストを入れます。このコードは正しく機能します。

Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add

Sheets("Sheet1").Shapes("Picture1").Copy
wrdApp.Selection.Paste


With wrdDoc.Shapes.AddTextBox(msoTextOrientationHorizontal, 200, 150, 96, 50)
    .Select
    .Name = "TextBox1"
End With


With wrdApp.Selection
    .ShapeRange.Fill.Visible = 0
    .ShapeRange.Line.Visible = 0
    .TypeText Text:="My picture text"
End With

前述のとおり、上記のコードは機能します。問題は、これをループに入れて画像を再度コピーする必要があることです (X 回)。ループに入れるコードを書くと、追加の画像が最後に選択されたため、TextBox 内に貼り付けられます。Ctrl + End キーのようなコードを何らかの方法でコーディングする必要があるため、カーソルがドキュメントの最後と TextBox の外に移動します。私はそれを働かせることができません。

そのためには、次のコードを使用する必要があります。

Selection.EndKey Unit:=wdStory

したがって、コード内に挿入する適切な場所は、以下のようにこのセクションにする必要があります。

With wrdApp.Selection
    .ShapeRange.Fill.Visible = 0
    .ShapeRange.Line.Visible = 0
    .TypeText Text:="My picture text"
    .EndKey Unit:=wdStory
End With

その行を追加すると、VB エラーが発生します。このコードを Word にコピーしてマクロから実行すると、完全に機能します。ただし、このコードは Excel にあり、Word ですべてを作成する必要があります。

カーソルを TextBox からドキュメントの最後に移動する方法を教えてください。この問題は、コードが Excel にあり、Word に移動しようとしていることが原因であることを知っています。それを機能させる方法または ASCII を使用した同様のコードが必要です。私は考えられるすべてを試し、解決策を何時間も探しました。

誰かが提供できる助けをありがとう、

クリス

4

2 に答える 2

1

あなたの質問を正しく理解していれば、これは私にとってはうまくいきます:

With wrdapp.ActiveDocument
  .Range(.Range.Characters.Count, .Range.Characters.Count).Select
End With

編集

これを試してください(ものを追加、削除し、何が機能するかを確認してください):

With wrdapp.ActiveDocument
  .Range(.Range.Characters.Count, .Range.Characters.Count).Select
  .GoTo wdgotobookmark, name:="\EndOfDoc"
  Selection.Move wdCharacter, .Characters.Count
End With
于 2013-03-03T21:05:35.407 に答える
0

これは理想的な方法ではないかもしれませんが、以下のコードはWordでの選択をクリアし、テキストボックスからフォーカスを移動します。

wrdApp.Activate
SendKeys "{ESC}"
于 2013-03-03T21:46:04.743 に答える