[[20180729183127]] 『シートに BMPファイル(.BMP)形式として画像を貼り』(KLY) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートに BMPファイル(.BMP)形式として画像を貼り付ける』(KLY)

ネット検索しても見当たらなかったので投稿します。

挿入⇒画像から貼り付けると図として貼り付けられるので
本来のBMPファイル(.BMP)としてなくなる。
完全なBMPファイル(.BMP)として貼り付けるにはどうしたらいいでしょうか。

続けて検索してみます。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


いったん投稿を取り下げます。

(γ) 2018/07/29(日) 22:21


回答ではありません。
 
>完全なBMPファイル(.BMP)として貼り付ける
とはどういうことでしょうか。
Excelをペイントのかわりにして、BMPを直接読ませたいということでしょうか?
無理な希望だと思いますが。
また、仮にできたとして、それをどう使うのでしょうか。
(γ) 2018/07/29(日) 23:15

確かに、BMP画像を図形挿入すると、内部的にはPNG形式に変換されてしまいますね。 Imageコントロールとして貼ってもEMFファイル形式になってしまうし、BMPファイル形式のまま抱え込むActiveXコントロールを自作でもしないと、BMP形式のまま貼るのは無理ではないでしょうか。

または、BMP形式って多色対応や4で割り切れない画素数等を考えなければ、フォーマットは難しくないので、1画素毎または1ライン毎にバイナリを文字列化してシートにセットするようなマクロを作成。 表示はこれを元にImageコントロールで表現し、ファイル出力ならば逆変換してバイナリ化するとかなら、オリジナルのBMPを保持できるでしょう。(画素数が少ないなら、1セルで1ドットを表現したExcel方眼紙にするとか?)

まぁ、普通はそんな面倒な事はせず、特定フォルダに画像ファイルをコピーしておく程度かと思いますが、どこまで頑張るかは用途次第ですね。
(???) 2018/07/30(月) 09:21


(γ)さん(???)さん返信ありがとうございます。

>仮にできたとして、それをどう使うのでしょうか。
(γ) 2018/07/29(日) 23:15

ユーザーフォームに貼り付けてアイコンの代わりにとして使用します。例として
フロッピーディスク画像は保存、プリンター画像は印刷としてそれぞれのコマンドボタンに貼り付けます。

>特定フォルダに画像ファイルをコピーしておく程度かと思いますが、どこまで頑張るかは用途次第ですね。
(???) 2018/07/30(月) 09:21

エクセルファイルと同じフォルダーに画像を保存して
オブジェクト.Picture = LoadPicture(画像が保存されているPath)で読み込んでいました。
エクセルファイルが移動されたため画像が読み込まれなくなったので
これを避けるためにシートに画像を貼りつけてユーザーフォームから呼び出したいのです。

現在も模索中です。
(KLY) 2018/07/30(月) 13:43


単に、画像の切り替えをしたいのですね? BMPファイル形式にこだわっている訳では無いですね?

それならば、シートにもActiveXのImageコントロールを貼っておき、任意の画像をPictureプロパティに指定しておきます。 これならば、画像はブック内に保存されます。 シート上で画像を見せたくない場合は、「検索と選択」画面から非表示にしておけば良いでしょう。

そして、UserForm内で以下のようにすれば、画像を切り替えることができるでしょう。

    Image1.Picture = Sheets(1).OLEObjects("Image1").Object.Picture
(貼り付け先は、Image1 を CommandButton1 にすれば、ボタン画像になります)
(???) 2018/07/30(月) 15:21

(???)さん回答ありがとうございます。
試したところ上手く動作しました。
有難うございました。
(KLY) 2018/07/30(月) 16:21

模索しているなかで回答がきていました。
検索名を色々変えてやっと次の処にたどりつきました。
(???)さんが記述されたことが記載されていました。

https://blogs.yahoo.co.jp/gogowaten/12475950.html
※ワークシート上にある画像をユーザーフォームで使うには

(KLY) 2018/07/30(月) 17:00


目的に適って良かったです。

ちなみに、画像の数によるかと思いますが、ブック内には画像データを入れない方が、ブックが軽くて良いかもしれません。 別の画像と入れ替えたり、追加するのが面倒に思えますし。

ブックのあるフォルダに「Image」とかフォルダを用意し、ここに切り替える画像を全部置いておいて、LoadPicture で切り替えるという、ほぼ元の案のままでも良いように思いました。 フルパスで指定するのではなく、画像数が少ないなら、上記の案で良いと思います。(ブックのあるフォルダは、ThisWorkbook.Path で判るので)
(???) 2018/07/30(月) 17:18


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.