1

私はVBAが初めてで、まだ苦労しています。

相対 ".\logos\" ディレクトリの内容のファイル名が取り込まれた useform にリスト オブジェクトがあります。という名前のブックマークに画像を挿入したいのですbmLogoが、私が書いたコード (以下を参照) ではうまくいきません。

If ListLogo <> Null Then
    ActiveDocument.Bookmarks("bmLogo").Range _
        .InlineShapes.AddPicture FileName:=ThisDocument.Path & "\logos\" & ListLogo
End If

任意のヒント?また、高さを設定して、アスペクト比を変更せずに画像をスケーリングできれば、非常に便利です!

ありがとう、
ルイ

編集 1: そう、bmLogo はブックマークの正しい名前なので、それは問題ではありません。msgbox を使用して '"path: " & ThisDocument.Path & "\logos\" & ListLogo' を表示したところ、正しいパスのように見えます。ThisDocument.Path を使用しているのは、ドキュメントの移植性を高めるために相対的なものにしたいからです。当分の間、絶対パスを試してみて、それが機能するかどうかを確認すると思います。他に何もなければ、バグがない場所を示唆する必要があります。

編集 2: IF ステートメントの外側の絶対パスで動作し、絶対パスと相対パスの両方を出力する msgbox を取得すると、それらは同一です。IF ステートメントをコメントアウトした後、相対メソッドが機能します。私はそれが今働いていることをうれしく思いますが、誰でもIFの問題が何であるかを教えてもらえますか?

編集 3: リスト ボックスで何かが選択されているかどうかを確認する方法がまったく機能しないことがわかりました。代わりに、リスト内の各項目を繰り返し処理し、その項目が選択されているかどうかを確認します。これはかなり大雑把な方法ですが、より良い方法が見つかるまで続けます。

4

1 に答える 1