• 締切済み

エクセル2007マクロで画像を表示

マクロは変数やfor~nextなどを今、猛勉強中です。 アクティブシートにJpeg画像を順番に表示させるマクロを組んで、それを表示させるためのボタンを置こうとしたのですが、一応ググリながらマクロを組んでみたのですが、実行させたところ、シートは真っ白です。 ちなみに自分が組んだプロシージャは下記のものです。 根本的に、画像を表示させる命令(プロパティ?)が間違っているとは思うのですが…。 Sub 自習() Dim i As Integer For i = 1 To 8 ActiveSheet.Select getfiles = "images" & i & ".jpg" Next i End Sub あと、画像ファイルはExcelブックと同じフォルダに8枚置いてあります。 どなたか、ご教授願います。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

作成例:ブックと同じ場所に「IMG_001.jpg」などがある sub macro1()  dim i as long  on error resume next  for i = 1 to 8  with activesheet.pictures.insert(thisworkbook.path & "\IMG_" & format(i, "000.jpg"))   .top = cells(i, "A").top   .left = cells(i, "A").left   .width = cells(i, "A").width   .height = cells(i, "A").height  end with  next i end sub オートシェイプの図形などをボタンに仕立て,右クリックしてマクロを登録する #ネットで見ながら書いたマクロがそれでしたら,こうして改めてマクロを回答しても同じ事かもしれませんが,とにかく頑張って勉強なさってください。 でも「実はこうだったのでもういっかい教えて」は無しでお願いします。

h_stream
質問者

お礼

実行してみましたが、何故かウチではエラーが出てしまいました。コピペしたのですが。 結果は以下のプロシージャで妥協しました。 Sub 自習() Dim i As Long Dim myfilename As String Dim myfilename2 As String Dim tmp As String myfilename = ActiveWorkbook.Path & "\image" For i = 1 To 8 If i <> 8 Then Sheets("Sheet1").Select myfilename2 = myfilename & i & ".jpg" ActiveSheet.Pictures.Insert Filename:=myfilename2 Worksheets("Sheet1").Select tmp = InputBox("次へいきます", "待つ", , 800, 500) Worksheets("Sheet3").Select ElseIf i = 8 Then ActiveSheet.Pictures.Insert Filename:=myfilename2 MsgBox ("終わりです") End If Next i End Sub ご教授いただき、ありがとうございました。

回答No.1

Sub 自習() の前に、下記の宣言を追加して下さい。 Option Explicit その後、実行するとエラーが出ると思いますので、 エラーメッセージに従ってデバッグを進めて見て下さい。

h_stream
質問者

お礼

ご教授の通りにやってみましたが、自分にはまだ勉強不足のようでさっぱり分かりませんでした。すいません。

関連するQ&A