- 締切済み
ExcelVBA 画像をImageサイズに合わせる
Excel VBAでユーザーフォームにImageを置き、画像を表示します。 Imageのサイズに合わせて画像を表示したいのですが、サイズに合わせると画像の一部分しか表示しません。画像のが小さい場合はImageないの中央に表示されます。 拡大はともかく、Imageサイズに縮小して表示したいのですがどのようにするのでしょうか。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- myRange
- ベストアンサー率71% (339/472)
う~ん、なかなか返答がないということは あまり必要性を感じてない、 もしくは画質の件は諦めた、 と判断してアドバイスはこれで終わりということで。。。 ま、画質云々はPictureSizeModeプロパティの仕様でしょうから これ以上のアドバイスはできませんが。 そしてまた、今回の質問、回答に他の方がコメントを寄せないのは imageコントロールの画質については他にアイデアがないのでしょう。 何れにしろ、お役に立てず申し訳ないことです。(^^;;;
- myRange
- ベストアンサー率71% (339/472)
ゆがみが出るということは画質も変る、との認識ですが。。 ま、それは置いといて、 真四角のimageコントロールで実際に試してみました、gif,jpg,bmp。 結果は以下の通り。 プロパティ定数、1は、少しぼやけてゆがむがそんなに悪くない。 プロパティ定数、3は、image枠の上下に余白が出来るが、くっきり。 質問者のいう目に見えるほどのぶつぶつは確認できませんでした。 もちろん、同じ画像を使ってないし、画像種類、サイズ、imageコントロールのサイズも条件が違うでしょうから違う結果は当然といえば当然ですが。 何れにしろ、画像そのもの、画像のサイズ、種類、Imageコントロールのサイズが分かると同じ条件でテストできるのですが。 その画像はネットなどで取り込むことはできませんか? 試しに、Imageコントロールと同サイズのLabelコントロールにその画像を読み込んでみるとどうなるでしょうか。 (注意事項) VBAについては質問者と同じくらいには知識があるつもりですが 実を言うと画像に関しては扱う機会がないのでちょと苦手なのです。 その点、お含みおき願います。(^^;;;
- myRange
- ベストアンサー率71% (339/472)
再度の登場です。 ヘルプを見ましたか? 以下のようなってます。 ●PictureSizeMode プロパティ● -------------------------------------------------------- 0:fmPictureSizeModeClip フォームまたはページに表示しきれない部分は切り捨てます (既定値) 1:FmPictureSizeModeStretch フォームまたはページのサイズに合わせて、ピクチャを引き伸ばします この場合、ピクチャは水平方向または垂直方向にゆがむことがあります 3:FmPictureSizeModeZoom 必要に応じてピクチャを引き伸ばしますが 水平方向または垂直方向にピクチャがゆがまないように引き伸ばします ------------------------------------------------------- 1を指定するとimageコントロールに合わせてくれるが、ゆがむことがあると書いてありますよね。 それが仕様ということになります。 で、それが拙ければ、3を指定してどうなるか試してください。 ■最重要■ 先の回答でも言いましたが、必ずヘルプを参照すること。
補足
ありがとうございます。 ただ、ヘルプにあるのは「ゆがみ」の指摘です。 これはImageの縦横比率と画像の縦横比率との関連でゆがみが生じることを言っているはずです。つまり縦は8%、横は10%などと同一でない縮小率のときを「ゆがみ」といっていると思います。 私が困っているのはクオリティの点です。画質が悪いことです。 ケース1:シートに図を貼り付けて縮小したとき ケース2:Imageで100%のとき ケース3:Imageで縮小したとき ケース1,2の画質の違いはわかりません。(同じようです) ケース3はブツブツがものすごく解るほど画質が劣化しています。 そこでクオリティを落とさないで出来ないかをお教えいただけないでしょうか。
- myRange
- ベストアンサー率71% (339/472)
PictureSizeModeプロパティを使ってみてください。 Image1.PictureSizeMode = 1 または、 Image2.PictureSizeMode = fmPictureSizeModeStretch どちらも同じことです。 詳しくは、Imageコントロールのヘルプを参照のこと。
補足
ありがとうございます。 出来ました。 ただ、クオリティが極めて悪いのです。 シートで挿入 → 図 で画像を貼り付け縮小するとクオリティは100%のときと変わらないのですが、Imageのほうは100%に比べてぶつぶつになっているのがはっきりわかるほどクオリティが悪くなります。 この点解消できないでしょうか。 よろしくお願いいたします。
補足
回答いただきながらご連絡遅れすみません。 調査した結果、判明したこと未判明のことをまとめます。 1.クオリティなので対象となる画像を共通にしないと解らないとのご指摘でWEB上のを試しました。結果はクオリティは100%と変わらないようでした。 2.ここから何による違いなのかわからず、いろいろ試しました。 3.判明したこと JPEGの場合クオリティは悪くならない。 BMPの場合クオリティは悪くならない。 GIFの場合クオリティが明らかに悪くなる。 GIFの場合なぜそうなるのかは解りません。