[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『GIF画像をアニメーション再生』(まつ)
下記[[20080910003136]] を利用させて頂き本当にありがとうございます。
質問は今回初めてですのでよろしくお願いします。
Excel2000ではうまく動くのですが、
Excel2007では「ファイルのインポート中にエラーが発生しました・・・・」となり動作しません、「Set WrkPicture(i) =・・・・」がエラーになっているようなのですが、
よろしくお願いします。
過去のログより
[[20080910003136]] 『GIF画像をアニメーション再生するには?』
Sub TEST1() Dim WrkPicture(9) As Picture Dim i As Long
For i = 0 To 9 Set WrkPicture(i) = ActiveSheet.Pictures.Insert(LCase(ThisWorkbook.Path _ & "\img\" & i & ".gif")) −−−−−−−−−以下省略
Windows Vista、Excel2007です
環境がないので試せませんが・・・ JPEGとかではマクロは動きますか? また、 gifファイルはエクセル2007で挿入→図とかでちゃんと表示できますか? もしかしたら、VistaではGIFの関連付けなどが必要だったりするのかも? ?ばっかりですみません。
(てつろう)
gifファイルはエクセル2007で挿入→図とかでちゃんと表示できます 2007からコマンドが変わったとか 次の宣言文が2007から変わったとか ' モジュール宣言部に記述ここから −−−−−−−−−−−−−−−−−−−−− Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ' モジュール宣言部に記述ここまで −−−−−−−−−−−−−−−−−−−−−
よろしくお願いします
一つも画像が表示されないということですか?
Sub TEST1() Dim WrkPicture(9) As Picture Dim i As Long For i = 2 To 9 '最初の画像を変更 Set WrkPicture(i) = ActiveSheet.Pictures.Insert(LCase(ThisWorkbook.Path _ & "\img\" & i & ".gif"))
これも止まりますか?
駄目なら試しに 別の画像挿入メソッドを使って
Sub TEST1() Dim WrkPicture(9) As shape ’ここも変更すること Dim i As Long For i = 0 To 9 Set WrkPicture(i) = ActiveSheet.Shapes.AddPicture(ThisWorkbook.Path _ & "\img\" & i & ".gif", _ msofalse,msotrue,0,0,100,100)
どうでしょうか?
ichinose
おかげさまで解決です
誠に恐縮ですが、下記2つの動作内容を解説頂けませんでしょうか
よろしくお願いします
@ Set WrkPicture(i) = ActiveSheet.Pictures.Insert(LCase(ThisWorkbook.Path _
& "\img\" & i & ".gif")) A Set WrkPicture(i) = ActiveSheet.Shapes.AddPicture(ThisWorkbook.Path _ & "\img\" & i & ".gif", _ msofalse,msotrue,0,0,100,100)
>おかげさまで解決です どのようにしたら解決したのかきちんと結論として、記述してくださいね!! 文章全体から、どうやらこれらしい みたいな記述でなく、はっきりとした結果を記述してください。
>2つの動作内容を解説
1の
Set WrkPicture(i) = ActiveSheet.Pictures.Insert(LCase(ThisWorkbook.Path _
も
2の
Set WrkPicture(i) = ActiveSheet.Shapes.AddPicture(ThisWorkbook.Path _ & "\img\" & i & ".gif", _ msofalse,msotrue,0,0,100,100)
も指定された画像ファイルを表示する という機能は大体は同じです。
但し、1が画像ファイルの本来の大きさで表示れるのに対して、2では、表示する画像の位置や大きさを 明示しています。
根本の違いは、画像を表示した後、この画像を操るオブジェクトの種類の違いです。
1では、
Dim WrkPicture(9) As Picture
と宣言したように Pictureオブジェクトを使って、画像を操作します。こっちが古いオブジェクトです。
対して
Dim WrkPicture(9) As shape ’ここも変更すること
2では、Shapeオブジェクトを使って画像を操作します。 新しさでは、こっちの方が新しいです。
一般的には、「同じようなことができる2者が合った場合、新しい方が洗練されいるのでこれを使おう」 となりますよね!! Excelの場合、新しいものが良いとは限らない と言うしかないほど バグが多いんです。
ただ、今回の事象に関しては、この新しいメソッドであるAddPictureが役に立った ということでしょうね!!
私も画像の表示は、大抵 Pictures.Insert を使っていますが、こういう現象が 出てきたことで Shapes.AddPictureの使用も頭に入れておかなければなりませんね!!
ichinose
今回は2の方でうまくできましたが、意味が理解できず、ただそっくりコピーして完成できました
という、感じでした。
厚くお礼申しあげます。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.