ループを使用してVBAコードの最後の部分を短くしようとしています。ループを使用してExcel VBAを使用してWordに画像を挿入する
私が持っている現在のコードは次のようになります。
Sub InsertPics()
Dim WordApp as Object
Dim WordDoc as Object
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open("Testing.docx"
WordApp.Visible = True
Dim path() as Variant
Dim i as Long
Dim Pic as Variant
path = Application.Transpose(Sheets("Selection").Range("N10:N24").Value)
For i = LBound(ppath) To UBound(ppath)
path(i) = Sheets("Output").Range("Directory").Value & "\" & path(i) & ".jpg"
Next i
Set Pic1 = WordDoc.InlineShapes.AddPicture(path(1), False, True).ConvertToShape
Set Pic2 = WordDoc.InlineShapes.AddPicture(path(2), False, True).ConvertToShape
Set Pic3 = WordDoc.InlineShapes.AddPicture(path(3), False, True).ConvertToShape
End Sub
Set Pic()
部分はかなりしばらくの間ので、私は短いコードで同じサブを行う方法を探していますのために行きます。この部分をループする方法はありますか?
注:WordDoc
は、特定のワードドキュメントを指します。path()
は、すでに定義したディレクトリアドレスのリストです。
をChomel、あなたのコードを試しましたが、型の不一致エラーがありました。 地元のウィンドウを見て、Picの値が空であることを示しています。最初に私がそれを使用しているときにピクチャを挿入するのはどうですか? 私は現在、ディレクトリ値が保存されたバリアントとして定義されたpath()しか持っていません。 乾杯。 – volvader
'Pic()'は 'path()'と同じように定義する必要があります。 –
こんにちはJ.Chomel。私はポストを編集してより明確にするための完全なコードを表示しました。私は実際に 'Application.Transpose'を使って最初にpath()を定義しました - 別のstackoverflowユーザの助けを借りて。 Pic()を定義するためにどのようなコードを使用できるか知っていますか? – volvader