• ベストアンサー

エクセルのプログラムでイメージコントロールで表示した画像のサイズを変更したり移動する方法

エクセルでまずユーザーフォーム、イメージコントロール、コンボボックス(サイズ変更)、スクロールバー(表示位置)を作り、 Set イメージ.Picture = Load Picture("C\xxx.xxx") というようにイメージコンロールに画像を表示させ、イメージコントロールのサイズや位置を変えることなくその中にある画像の部分のみサイズや表示位置を変えたいのですがどのようにすればよいのでしょうか? MoveメソッドやPictureSizeModeを使うとイメージコントロール自体が変わってしまいます。 回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

画像の大きさ(サイズといっているもの)は画像ファイルデータそのものから来る大きさで、それを拡張したり、縮小したりする機能がエクセルのイメージ・コントロールには持たせてないとそういうことはできません。イメージコントロールにそういうメソッドやプロパティが備わっていないとどうしようもありません。(全てコンピュターの世界は、プログラムの支配する世界です。) ーー しかし、幸いに Imageの「プロパティ」(ウインドウ)の「ピクチャ」の中に PictureAlignment PcctureSizeMode Picturetiling がありますから(特に上2つ)、質問のニーズと合うのか、良く検討してみてください。 http://abcclub.cside.ne.jp/vbahelp_help/image.htm

miya_HN
質問者

お礼

やはりプログラム自体にそういうものがないんですね。 上記にあるようなプロパティを使って作ったのですが自分の理想と100%は合わないようです。 しかし大変参考になりました。 ありがとうございました。

その他の回答 (1)

回答No.2

イメージコントロール"Image1" の中に "Image2" を作成して輪郭を 消しておき、 With UserForm1  .Show vbModeless  .Image2.Height = 90  .Image2.Width = 120  .Image2.Top = .Image1.Top + 10  .Image2.Left = .Image1.Left + 10  .Image2.Picture = LoadPicture("C:\xxxx\xxx.jpg") End With のように記述するとか・・・・・ (^^;ゞ 画像ごとに位置やサイズを変更する場合は、隠したシートにファイル 名をキーにしたVLOOKUP関数などで数値部分を指定――なんていう方法 は強引でしょうか。

miya_HN
質問者

お礼

イメージコントロール"Image1" の中に "Image2" を作成する方法はちょっとうまくいきませんでした。 ありがとうございました。

関連するQ&A

  • ウインドウへのイメージ画像の表示について

    メインウインドウにイメージを貼り付けたいと思うのですが ウインドウのクライアントエリア全体にでは無く 添付画像の様に任意の場所に任意の大きさで表示したいと思っています。 当初は「イメージボックス」(ピクチャボックス)を使うことを 考えたのですが、画像が自動的にコントロールの大きさに合わせて 拡大縮小されたり、スクロールバーが付けられなかったりして うまく扱えませんでした。 イメージの周りに「クライアントエッジ」が付けられればと思います。 「クライアントエリアのみの子ウインドウ」のようなものが あって、それをメインウインドウに貼り付ける、みたいな ことが出来ればいいなと思っているのですが、良い方法が ありましたら教えて下さい。 ActiveBasicを使っていますが、教えて頂く際には CやVBでも構いません。

  • エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法

    エクセルで画像をオブジェクトで作り、ユーザーフォームに作ったイメージコントロールに表示する方法はないでしょうか? 条件によってイメージの画像が切り替わるようにしたいのですが。 別の画像ファイルから読み出すことはあまりしたくありません。あくまでエクセルの中にある画像からフォームのイメージに表示したいのですが。何かいい方法があれば教えてください。 回答よろしくお願いします。

  • VB6のイメージコントロールでURLの画像を表示

    VB6のイメージコントロール、またはピクチャーコントロールで URLの画像を表示したいです。 ローカルに一度保存してLoadPicture関数を使うことでできそう ですが、ローカルに保存せずに表示することは可能でしょうか?

  • [ASP.NET]Imageコントロールで画像を縮小したくないっ!

    こんにちわ。 VS.NET2003でASP.NET+C#で開発を行っています。 タイトル通りなんですが、ImageコントロールにImageUrlを指定して画像を表示させようとすると、Imageコントロールの大きさに画像が縮小されてしまします。画像が全部表示されなくてもいいので、画像の実寸サイズで表示したいのですが…プロパディもなさそうなので… ちなみに、画像の実寸サイズにImageコントロール自体を拡大させるという方法はなしでお願いします。 どなたかお知恵をお貸しください。

  • コントロールの挿入と同時に画像を表示する方法

    アクティブエックスコントロールのイメージコントロールの設置と同時に、 画像をそのコントロールに表示するvbaを作ってるのですが、 実行時エラー438が発生します。 Sub test() Dim objOLE As OLEObject Set objOLE = ActiveSheet.OLEObjects.Add("Forms.Image.1") With objOLE .Name = "Image" .Picture = LoadPicture("C:\1.gif") End With End Sub C:\1.gifのパスをブラウザで表示させることはできるので、ファイルは存在しているし、 パスは間違っていません。 .Picture = LoadPicture("C:\1.gif") をコメントアウトすれば正常にコントロールが挿入されます。 コントロールの挿入と同時に画像を表示する方法を教えてください。 ご回答よろしくお願いします。

  • Imageコントロールにグラフを表示させるには

    Excel VBAでフォームにイメージコントロールを配置して、そこにエクセルで作成したグラフ(グラフシート)を表示するようなプログラムは作成可能でしょうか? 例えば、 まずワークシートのデータを元にグラフ(グラフシート)を作成し、作成したグラフをフォーム上のイメージコントロールに表示させる一連の作業をVBAでプログラミングできるかどうかということです。 Userform1.MultiPage1.Image1.Picture = .........といった感じです。 もしくは、作成したグラフをgif形式の画像として特定のディレクトリなりフォルダに保存して、その画像ファイルを読み込むことで対応はできるでしょうか? よろしくお願いします。

  • 画像を選択しシートに置いたimageコントロールで画像を表示しています

    画像を選択しシートに置いたimageコントロールで画像を表示しています。 その画像を別ブックにコピーしようとしているのですが、上手くいきません。 また、できれば画像を選択時に解像度の変更や圧縮を行い、サイズを小さくしたいと思っています。 ・EXCEL 2007 VBA ・画像枚数10枚 jpeg,bmp

  • 連続で印刷すると画像が更新されない(Excelのイメージコントロール)

    いつもお世話になります。 エクセルのイメージコントロールを使用しているのですが、 なかなかうまく行かないので、アドバイスをお願いします。 シートにイメージコントロールをいくつか(8個)配置しました。 マクロで LoadPicture を使用し画像を読み込ませました。 Rangeで範囲を指定して印刷しました。 一旦、Sheet1.Image1.Picture = Nothing と開放しました。 そのイメージコントロールに別画像を LoadPicture させました。 同様に印刷させましたが、画像は最初に読み込ませたもののままです。 マクロが終了して見ると、最新の画像に更新されているのですが、 印刷したものでは(プリビューでも)更新されません。 Redraw させたり Refresh させるコマンドはないかと思いましたが見つかりません。 同じマクロで画像のコメントをセルに表示させているのですが、 こちにはどんどん更新しています。 画像だけが、最初に読み込んだ画像のままで印刷されてしまいます。 印刷範囲は常に同じです。 原因なり対処法なりをお教え下さいますようお願いします。

  • ExcelVBA 画像をImageサイズに合わせる

    Excel VBAでユーザーフォームにImageを置き、画像を表示します。 Imageのサイズに合わせて画像を表示したいのですが、サイズに合わせると画像の一部分しか表示しません。画像のが小さい場合はImageないの中央に表示されます。 拡大はともかく、Imageサイズに縮小して表示したいのですがどのようにするのでしょうか。 よろしくお願いいたします。

  • イメージコントロールに画像をセット

    イメージコントロールに画像をセットしたいのですが、下記ではうまく動きません。 どうしたらよいでしょうか。 Private Sub Workbook_Open() ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=137.25, Top:=20.25, Width:=270, Height:= _ 154.5).Select Worksheets("Sheet1").Image1.Picture = LoadPicture("D:\My doc\My Pictures\11.jpg") End Sub

専門家に質問してみよう