[リストへもどる]
一括表示

投稿時間:2003/02/28(Fri) 17:59
投稿者名:ななまる
Eメール:
URL :
タイトル:
画像挿入
はじめまして。
VBからExcelシートに画像を挿入したいのですが、画像が大きすぎるので
指定したセル範囲に自動的に縮小するようにしたいのです。
以下のコードで画像は挿入できます。

xlSheet.Pictures.Insert(strPath).Select

良い方法をご存じでしたらご教授下さい。
よろしくお願いします。

投稿時間:2003/03/01(Sat) 19:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 画像挿入
試して見ましたが結構面倒です。

>良い方法をご存じでしたらご教授下さい。

良い方法は思い浮びませんでした。

1.セルサイズを取得
    xlSheet.Range("B2:B2").Width
2.セルサイズをピクセル単位に変換
    Me.ScaleX(Wid, vbPoints, vbPixels)
3.セルに画像を貼付
    
4.同じ画像を Picture1に非表示で読込み(VB上で)

5.その画像のサイズをピクセル単位で求める(VB上で)
    Picture1.ScaleWidth
6.縮小率を計算する
    
7.画像を縮小
    xlApp.Selection.ShapeRange.ScaleWidth Writu, True, msoScaleFromTopLeft

投稿時間:2003/03/06(Thu) 09:07
投稿者名:ななまる
Eメール:
URL :
タイトル:
オブジェクトとして使えない?
お礼が遅くなり、申し訳ございません。
返信ありがとうございました。

やってみましたが、最初のセルサイズを取得するところから
「プロパティの使い方が不正です」エラーになってしまいます。

 xlSheet.Range("B41:AW72").
 ↑
 オブジェクトとして認識されないのでしょうか。

 自動でセル範囲に合わせて縮小したかったのですが、コード内で
 セル範囲に合うように縮小率を指定すれば、一応縮小はできました。

 縦横ともに33パーセントに縮小しています。
 ↓
  xlSheet.Shapes(1).ScaleHeight 0.33, False, msoScaleFromTopLeft
  xlSheet.Shapes(1).ScaleWidth 0.33, False, msoScaleFromTopLeft

投稿時間:2003/03/06(Thu) 15:15
投稿者名:ななまる
Eメール:
URL :
タイトル:
imageコントロール
別の方法を考えたので参考までに載せておきます。

イメージコントロールをExcelシートにあらかじめ貼っておき、
画像をコントロールの大きさに合わせてサイズを変更するようにすれば良いかもしれません。

が、私の挿入したい画像はTiffファイルでしたので、この方法は使えませんでした・・・。