• 締切済み

Excelセルのサイズに合わせて画像を表示させたい

Excelのセルの中に、画像ファイル(撮影された写真)のサイズを挿入するときに、セルのサイズに合わせて画像を表示させたいと考え、インターネット上でVBの下記のマクロを探してみました。  セルをダブルクリックすると、画像ファイルの読み出しが行なわれるのですが、セルのサイズにピッタリと合わず、 「列」にわずかに隙間が空いてしまいます・・・。  セルのサイズに合わせる為にはどうすればよいでしょうか?  もう一つ質問させていただきたいのですが、一部の画像は読み出しだ際に、縦にして自動的に表示させたいです。 (これまではExcelの「図の書式設定」で-90度と手入力していました)  何卒宜しくお願い致します。    Excel2003  Visual Basic 6.5 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Dim myPic Dim myRange As Range '画像を配置するセル範囲 Dim rX As Double, rY As Double myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif") If VarType(myPic) = vbBoolean Then Exit Sub Set myRange = Target 'このセル範囲に収まるように画像を縮小する Application.ScreenUpdating = False With ActiveSheet.Pictures.Insert(myPic).ShapeRange rX = myRange.Width / .Width rY = myRange.Height / .Height If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置 .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置 End With Application.ScreenUpdating = True Cancel = True End Sub

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

この「コード」に関して何か勘違いされているようですので、そこをまず指摘。 この「コード」を理解してお使いであればすぐに気付く事なのですが、 これはあなたが望む「セル高さ・幅にぴったり合わせる」ものではありません。 「セルの高さに図の高さ」または「セルの幅に図の幅」のどちらかを合わせるように図を拡縮し、 該当セルの「中央に配置する」ものです。 このコードを使用して「セルの大きさに」合わせたいのであれば、 セルの高さ:セルの幅を図の高さ:図の幅に合わせてやらないといけません。 例えば、図の縦横比が5:8だとしたら、セルの高さ・幅も5:8にしなくてはいけないということです。 ですので、 > セルのサイズに合わせる為にはどうすればよいでしょうか? セルの縦横比を写真の縦横比に合わせてください。 というのが回答です。 > 一部の画像は読み出しだ際に、縦にして自動的に表示させたいです。 「どの写真を縦にするのか?」「この写真は縦にしていいのか?」 エクセルが自動的に判断できるとお思いでしょうか? 何を基準にするのでしょう?何か基準があるのでしょうか? ここは「人の目で判断」するべきところではないでしょうか。 やるとしたら、 ・写真のプレビューを表示して ・「縦にするか?」聞いてくるメッセージボックスを出し ・「Yes」なら、写真を縦にする ・「No」ならそのまま というコードを書き足すくらいでしょうか。 ただし、すべての写真についてこのメッセージ出さないといけませんが。

kaorihcv
質問者

お礼

 マクロについてよくわからないまま、質問してしまいました。  ありがとうございました!

関連するQ&A