質問者
PictureBoxの画像をWordのImageコントロールに

質問
すべての返信
-
-
木田さん、こんにちは。
木田 さんからの引用 参考まで↓ この方法ではできないと思います。
-
じゃんぬねっとさん、木田さん、お返事ありがとうございます
そして、あけましておめでとうございます
じゃんぬねっと さんからの引用 tutumi さん、こんにちは。
tutumi さんからの引用 件名の通りPictureBoxの画像をWordのImageコントロールにいれたいのですが、やり方がわかりません。
そもそもこれは可能なんでしょうか?究極的には、外部ファイルとして画像を出力して、そこから読み込ませれば良いわけですから可能でしょう。
これは
- pictureboxの画像を吐き出す
- 吐き出した画像をimageコントロールに読み込む
ということですよね
imageコントロールに画像を表示する場合パスを指定しなければいけませんが、このやり方だとパスを指定できないと思うのですが。
出来るなら詳しく教えてください。
というかすいません、やりたいことを具体的に書いていませんでした。
- vbのpicureboxをクリック
- 画像を選択する
- wordのimageコントロールにpicureboxの画像を反映
といった処理をしたいんです。
picureboxの画像をwordのシートに入れるのはできたんですが、imageコントロールにいれるやり方が分かりません。
これは可能でしょうか?
-
tutumi さん、こんにちは。
tutumi さんからの引用 imageコントロールに画像を表示する場合パスを指定しなければいけませんが、このやり方だとパスを指定できないと思うのですが。 保存したパスを渡すだけで良いのではないでしょうか?
そういう意味では、Word 側の処理は、VBA マクロでやった方が良いですね。パスは引数として渡すことができます。
picureboxの画像をwordのシートに入れるのはできたんですが、imageコントロールにいれるやり方が分かりません。
これは可能でしょうか?Image コントロールとは何ですか?
Word には Shape という考えしかなかったと思いますが...ついでにいうと、Word のシートというのも良くわかりません。
Excel にはシートという概念がありますが、Word にはそういった概念はありません。
普通に考えて、「Word ドキュメント自体」 という意味でしょうか。 -
素早いお返事ありがとうございます。
じゃんぬねっと さんからの引用 tutumi さんからの引用 imageコントロールに画像を表示する場合パスを指定しなければいけませんが、このやり方だとパスを指定できないと思うのですが。 保存したパスを渡すだけで良いのではないでしょうか?
そういう意味では、Word 側の処理は、VBA マクロでやった方が良いですね。パスは引数として渡すことができます。
パスを引数として渡すことが出来たんですね。
ありがとうございます、調べてみます。
Image コントロールとは何ですか?
Word には Shape という考えしかなかったと思いますが...コントロールツールボックスのimageというのがあったので、imageコントロールと呼んでいました。
ついでにいうと、Word のシートというのも良くわかりません。
Excel にはシートという概念がありますが、Word にはそういった概念はありません。
普通に考えて、「Word ドキュメント自体」 という意味でしょうか。wordのシートは「Word ドキュメント自体」というので合ってます。
分かりづらくてすいません。
-
tutumi さん、こんにちは。
tutumi さんからの引用 シェイプだと位置を指定できないので、ツールボックスの方を使おうと思っています。 シェイプでも位置は指定できますし、メンバとして所有していますよ?
InlineShape だとダメですが、配置方法を変えれば自由に動かせます。GDNJ 掲示板 - Re: 承認/確認の 印鑑 (microsoft.com)
ご参考になれば幸いです。
じゃんぬねっと さんからの引用 | |
|
シェイプでも位置指定できるんですね。
調べが足りませんでした。
シェイプじゃなくimageコントロールでやりたいもう一つの理由は
- vbのpicureboxをクリック
- 画像を選択する
- wordのimageコントロールにpicureboxの画像を反映
という処理をするので、元からある画像から画像が変わる場合があるので、その場合シェイプだと一回消して追加しなおさなければいけないと思うのですが、
imageコントロールだとpictureプロパティを変更すればいいだけなので処理が簡単という理由があります。
ただ、imageコントロールに画像を入れる方法が未だに分かっていないのでシェイプでやろうかなって考えが出てきました。
|
wordへの引数の投げ方について自分なりに調べてみたんですが、
- vbから画像のパスをwordのラベルやらテキストボックスやらに引数を書き込む
- word側から読み込む
という方法しか分からなかったのですが、これしか方法はないのでしょうか?
tutumi さん、こんにちは。
tutumi さんからの引用 | |
|
まず、処理コストはさほど変わりません。
ただ、"実装が簡単" という意味であれば、実は誤りです。(詳しくは後述)
|
Image コントロールを扱う場合は、VBA の MSForms.Image クラス モジュールになります。
このインスタンスを取得するには、VBA からであれば一発で取得できます。
ただ、Picture プロパティが StdPicture 型だったように思えます。
このあたりは、OLE オートメーションをある程度知っていないとハマります。
|
いいえ、VBA 側の関数に直接渡すことができるメソッドがあります。
詳しくは、こちらの私の発言を参考にしてください。
検索結果を EXCEL でグラフ表示したい (atmarkit.co.jp)
Excel.Application インターフェイスの Run メソッドで VBA 側の関数を呼び出すことができます。
この Run メソッドで、引数をいくつか渡すことができますので、この仕組みを利用します。
また、わからないところがありましたら、どうぞ。