|
ありがとうございました
|
ひろき
|
|
データNo:95 |
2007年02月09日(Fri) 09:45 |
|
|
|
|
|
素早い返答ありがとうございます。おっしゃるとおりヘルプではJPGは出来るとかいてあったのでがんばってみましたが、だめでした。バグだとは・・・とてもショックです。デジカメで顔写真を取って、それを検索するプログラムを作っていたので、jpgファイルが良かったのですが・・・別な方法を考えてみます。 本当にありがとうございました。また困ったときに相談します。
|
|
 |
Re:ありがとうございました
|
だるま
|
 |
データNo:96
|
2007年02月10日(Sat) 01:13
|
|
|
|
だるまです。
>デジカメで顔写真を取って、それを検索するプログラムを作っていたので ということは、もう作成中なのですか…。 あまり詳しく調べていないのでダメかもしれませんが、 Excelの[挿入]-[図]-[ファイルから...] を使用すると、ワークシートにjpegファイルを表示できるので、自動化出来ればと思いました。 (プログラムの画面をVBAのフォームで作成するのではなく、エクセルのワークシートを使用したらどうかと思いました。)
|
|
 |
Re:ありがとうございました
|
ひろき
|
|
データNo:99
|
2007年02月14日(Wed) 09:53
|
|
|
|
返信ありがとうございます。始めはそれを考えていたのですが、難しそうなのでやめたのでした。 どういうのを考えているのかというと、デジカメのファイル名の入ったセルを選ぶとそのファイル画像が表示されるというものです。セルを変更すると自動でファイル画像も変更できるようにしたかったのです。(説明が分かったかな?) そうすると、新しいファイル名を選ぶと古いファイル画像を消去して新しいファイル画像を表示しなくてはなりませんよね。また、ボタン等を押さなければ、ファイル名を選んでも画像は表示されないと思います。等などの理由からユーザーフォームのピクチャを使うと楽かなと思った次第です。 何か良いアイディアがあったら教えていただきたいと思います。
|
|
 |
Re:ありがとうございました
|
だるま
|
 |
データNo:100
|
2007年02月14日(Wed) 17:06
|
|
|
|
だるまです。
「ボタン」と言っているのは、シート上に貼付けたフォームの事なのでしょうか? ダメかもしれませんが、 「セルを変更すると自動で...」⇒ワークシートのSelectionChangeイベントでは無理でしょうか? target引数はRangeオブジェクトで、選択範囲を示します。 頑張れば、選択したセルの値(ファイル名)を取得できます。 (その前に複数範囲を選択されたときの処理を考える必要があるが…。アクティブセルだけ考慮すればいいか?) これで、ボタンなんか無くても多分出来ると思います。
|
|
 |
Re:ありがとうございました
|
ひろき
|
|
データNo:101
|
2007年02月16日(Fri) 12:09
|
|
|
|
教えていただいたSelectionChangeとTarget引数で練習をしてみました。なかなか面白いですね。本とかを見てもそこまで載ってなくて、大変勉強になります。奥が深いぜ!ExcelVBA! しかし問題があります。選択したセルの値(ファイル名)を取得して、そのファイルを[図の挿入-ファイルから]で読み込むことが出来ると思いますが、次のセルを選ぶとき前の図を消して次の図を挿入しなくてはなりませんよね。さらに図の大きさを設定し直したりと、処理がかかりそうな気がします。どんなもんでしょう?アドバイスください。
|
|
 |
Re:ありがとうございました
|
だるま
|
 |
データNo:102
|
2007年02月17日(Sat) 09:46
|
|
|
|
だるまです。
>図の大きさを設定し直したり やってみました。原寸サイズのものが表示されてから、サイズが変更された…。これはヤダなぁ。 Application.ScreenUpdating = False としてから、図の読み込み、サイズ変更して、最後に Application.ScreenUpdating = True とするといいみたい。
>次のセルを選ぶとき前の図を消して 図を読込むときに、読込んだ図(Pictureオブジェクト)をプロシージャスコープの変数に保持しておく。図を消すときはPictureオブジェクトのDeleteメソッドを呼べばいいと思います。
サンプルソース(標準モジュールに書いてください。) -------------------------- Option Explicit
Dim objPict As Picture
Sub 図の挿入()
Application.ScreenUpdating = False Set objPict = ActiveSheet.Pictures.Insert("Macintosh HD:test.jpg") objPict.Select Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 197# Selection.ShapeRange.Width = 377# Selection.ShapeRange.Rotation = 0# Application.ScreenUpdating = True End Sub
Sub 図の削除() If Not (objPict Is Nothing) Then objPict.Delete Set objPict = Nothing End If End Sub
|
|