プロが教えるわが家の防犯対策術!

エクセルに貼り付けた画像を、左クリックで拡大、縮小(元に戻す)する方法をどなたか教えて頂けないでしょうか? サムネイルのような使い方をエクセルでしたいのです。

検索した結果、類似した質問→回答はありましたが参考になりませんでした。
よろしくお願いします。

A 回答 (2件)

昔投稿したコードですが、xl2010でも動きましたので再度アップします。


シートにサムネイル画像を生成し、元画像へのハイパーリンクを張ります。画像をクリックするとブラウザで元画像を開きます。
シートの行幅、列幅を適当に広げてから実行しないと、重なってしまいます。寸法を決めるところは手抜きです。
自動記録に毛の生えた様なコードで、時間がかかります。画像1ファイルの処理に100msec(Celeron2.4GHz)、1枚あたりのファイルサイズは元画像の1/100程度でした。(1500×1000程度の画像)
Sub test()
Dim FSO As Object
Dim fileList As Object
Dim myfile As Object
Dim i As Long, j As Long

Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.GetFolder("C:\hoge")
Set fileList = .Files
End With
i = 1: j = 1
Application.ScreenUpdating = False
For Each myfile In fileList
If UCase(FSO.GetExtensionName(myfile.Path)) = "JPG" Then
Sheets(1).Activate
ActiveSheet.Pictures.Insert(myfile.Path).Select
Selection.ShapeRange.LockAspectRatio = msoTrue
'このへんのサイズ、縮小率はお好みで
If Selection.ShapeRange.Height > Selection.ShapeRange.Width Then
Selection.ShapeRange.Height = 40
Selection.ShapeRange.Width = 30
Else
Selection.ShapeRange.Height = 30
Selection.ShapeRange.Width = 40
End If
Selection.Copy
Sheets(2).Activate
Cells(i, j).Select
ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:= False
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=myfile.Path
Sheets(1).Activate
Selection.Delete
i = i + 1
If i > 20 Then
i = 1
j = j + 1
End If
End If
Next myfile
Application.ScreenUpdating = True
Set FSO = Nothing
End Sub
    • good
    • 0
この回答へのお礼

できました! ありがとうございました!

お礼日時:2011/05/18 17:24

>類似した質問→回答はありましたが参考になりませんでした


ウッソオー。たくさんある。参考になりませんでした、もおかしい。
ーー
それより、初心者なら、エクセルのシートの操作をして、マクロの記録を採ることをはじめるべきだ。
挿入ー図ーファイルからー画像ファイル名を指定ー張り付いた画像を拡大縮小してみる。
記録をストップしてーマクロの記録のコードを「編集」を指定してじっくり見てみて類推を働かすこと。
それ以上にはセルの大きさに自動であわせたいという要求が出るかもと、思うが、それは仕組みを上記で勉強して、それは次の課題だ。
ーー
エクセルの関数などでは絶対できることではない。VBAを使わないと出来ないことだから、迷わないこと。
むしろVBAを利用するより、サムネイル機能のある(ほとんどあるだろう)フリーソフト、市販ソフトを探して使うのが、今後の道だ。自作のようなことは、ますます難しく複雑になるので。
    • good
    • 0
この回答へのお礼

早速回答ありがとうございます。
検索ワードが駄目なのでしょうか・・・。

VBAを使うことは想定しておりましたが、その具体的な事例、あるいは参考となる情報が見つかりませんでした。

やはり、勉強しないで情報を得ようという考えが甘いですかね・・・?

お礼日時:2011/05/16 23:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!