- ベストアンサー
ユーザーフォームに画像を表示
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 私の後に、誰も書いてなかったようで、簡単なものを公開しておきます。Image オブジェクトにわずかに、枠が入ってしまいます。 条件としては、Picture はひとつであることです。複雑なシートの構造の時は、コードを考えて直してください。 Private Sub CommandButton1_Click() Dim pic As Object Dim chrt As Chart Dim wd As Double Dim ht As Double With Me.Image1 ht = .Height wd = .Width .PictureAlignment = fmPictureAlignmentTopLeft .PictureSizeMode = fmPictureSizeModeZoom End With With ActiveSheet Set chrt = .ChartObjects.Add(1000, 1000, wd, ht).Chart .Pictures(1).Copy chrt.Paste .ChartObjects(1).Chart.Export "tmp1.jpg", "jpg" Me.Image1.Picture = LoadPicture("tmp1.jpg") .ChartObjects(1).Delete Kill "tmp1.jpg" End With End Sub
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
#3 の回答者です。 >そのコントロールにシート内にある画像を表示させることは可能なのでしょうか。 >(フォルダなどにある画像を表示させることは出来ます) あっ、#3の回答、読み間違えました。すみません。 簡単なコードというところに目がいってしまいました。 一旦、画像をクリップボードに入れて、それを、ChartObject に入れて出力するか、HTMLにして取り出すか、どちらかだったような気がします。Win32APIの場合は、クリップボードから取り出すのかな? しばらくやったことがないのと、需要がないので忘れました。誰の回答をお待ちになってください。 いずれにしても、簡単なコードではなかったと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 初歩的なコードですが、コマンドボタンで選べるように作りました。Image オブジェクトのプロパティの調整などをして、上手に入るようにしてください。 Private Sub CommandButton1_Click() Dim fn As Variant Dim mPath As String '現在のユーザーのマイピクチャを探す mPath = CreateObject("Shell.Application").Namespace(&H27).Self.Path ChDir mPath fn = Application.GetOpenFilename("画像 (*.jpg; *.gif; *.bmp), *.jpg; *.gif; *.bmp", , "画像の選択") If VarType(fn) = vbBoolean Or fn = "" Then Exit Sub '画像呼び出し Me.Image1.Picture = LoadPicture(fn) End Sub
- imogasi
- ベストアンサー率27% (4737/17068)
>フォルダなどにある画像を表示させることは このことは、ファイルになった画像を言っていると思うが、ファイルから画像データを読んで表示するのが基本(前提)のつくり。 >シート内にある画像を表示させることは可能なのでしょうか この意味があいまい。 (1)シート内にある画像でも、挿入したファイル名が判っていれば質問にも値しない。 (2)それ(ファイル名)が判らない (3)(1)(2)以外であれば、質問で言う画像とはどういうものを指すのか。 見えているシート画面の一部とか。その意味をはっきりさせないと答えられないのでは。 ファイルでないものはファイル化(ペイントなどのソフト・特別ソフトを使って)しないとだめと思う。 >簡単なコードなどを教えていただけたらと思います 簡単なはずが無い。APIとかを駆使したりしないとVBAの範囲では無理でしょう。
お礼
自分なりに詳しい説明を記載したつもりだったのですが まだまだ説明不足だったみたいで反省しております。 APIというキーワードをもとにもう少し調べなおしてみます。 貴重なご意見ありがとうございました。
- lark_0925
- ベストアンサー率63% (37/58)
クリップボードの画像をStdpictureに変換するコード例が 以下のURLに掲載されてますから、これを参考にしてみてください。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=46923;id=excel
お礼
コード自体はよくわからなかったのですが そのまま貼り付けて、分かる範囲で加工したら 目当てのものが出来ました。 自分でも、色々検索してみたのですが そういう情報は見つけられませんでしたので まだまだ検索方法が甘いと再認識させられました。 今回は本当にありがとうございました。
関連するQ&A
- ユーザーフォームを表示されないようにしたい
Vista excel2007 でマクロ作成中の超初心者です。 A、B、Cのブックがあります。Bブックのみマクロをワークシートに貼り付けています。 1)Aブック(マクロ記録用)の中にある、Aコマンドボタンを押すと BブックのBシートにジャンプします。ジャンプと同時に、Bユーザーフォームを 表示しています。 2)そしてBシートには、フォームコントロールを貼り付けており、ここをクリックするとCブックCシートに飛びます。 3)ところが、CシートにはBユーザーフォームが残ったままです。このフォームを 表示されないようにしたいのです。 4)Bシートのフォームコントロールには、次のコード記述をしてあります。 Sub Cブック Cシートへ() Dim wb As Workbook Dim ws As Worksheet Dim sh As Worksheet Dim i As Long ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error Resume Next '開いて作業中の場合。 Set wb = Workbooks("CCC.xls") On Error GoTo 0 If wb Is Nothing Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\CCC.xls") End If Worksheets(1).Select End Sub どうかよろしくお願いします。
- ベストアンサー
- Visual Basic
- ユーザーフォームの表示について
Aというブックを選ぶと車というシートが一番最初にあるのですが、 これをvbaでshowと記述しても一旦他のシートを選んでからでないと 表示されません。 ブックを開いた瞬間にユーザーフォームを表示したいのですが、何か方法はあるでしょうか? どうしてもうまくいきません。。 やりたいことは、ブックを開いたら、フォーム(自分で作ったユーザーフォーム)を開いたときから表示させたいのです。知ってる方がいたら教えてくれると助かるのですが。
- 締切済み
- オフィス系ソフト
- ExcelVBA ユーザーフォームのコードがない
いつもお世話になっています。 Excel vbaで質問させてください。 あるExcelブック(test.xlsとします)を開くと、ユーザーフォーム(と思う)が表示されます。 (この時、Excelアプリケーションは「表示」されていてモーダルの状態です) ユーザーフォームで日付を選び、「これでOK」ボタンをクリックすると 新規ブックとして「text_0614.xls」が出来て、これが表示ブックとなります。 (元のtest.xlsは閉じられています) vbaコードの修正がしたくて、VBEから作業しようとしたところ ユーザーフォームモジュールも、標準モジュールも何も見当たりません。 Thisworkbookのイベントも何も書いてありません。 プロジェクトにパスワードがかかっているのかと思いましたが、もしそうだとしても プロジェクトウィンドウに、「フォーム」というフォルダは表示されると思いますし、 また、ダブルクリックしてもパスワードを求められることがありませんので パスワードがかかっているようには見えません。 これはExcelVBAのユーザーフォームじゃないのでしょうか?(VB?) または、もし、この「フォーム」フォルダごと、ユーザーに見せないやり方があるのでしょうか? どなたかご存知の方いらっしゃいましたらご教示ください! WinXP SP3 Excel2003 SP3 使用です。 どうぞよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法
エクセルで画像をオブジェクトで作り、ユーザーフォームに作ったイメージコントロールに表示する方法はないでしょうか? 条件によってイメージの画像が切り替わるようにしたいのですが。 別の画像ファイルから読み出すことはあまりしたくありません。あくまでエクセルの中にある画像からフォームのイメージに表示したいのですが。何かいい方法があれば教えてください。 回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelVBAでユーザーフォーム表示について
ユーザーフォームを表示にセルに文字を書き込んだり する事はできないのでしょうか? また、ユーザーフォーム自体を、常に画面手前に表示する方法はありますか? コードの記述方法もできましたらお願いします。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- ユーザーフォームの表示
マクロでユーザーフォームを作成しました それをワークシート上に表示させたいのですが方法がわかりません ネットで調べてみるとShowメソッドを使うとありますがやり方がイマイチわからないのです。 どなたかわかりやすく解説して下さい
- 締切済み
- オフィス系ソフト
- Excel VBAのユーザーフォームについて
今ユーザーフォームのリストボックスにデータ一覧を表示させ、 データを選択するとExcelのシート上にリストボックスで選んだデータを表示させるプログラムを作っています エクセルにデータを表示させる際に、一緒に画像を表示させたいのですが そのような事は可能でしょうか? また方法があれば教えてください
- ベストアンサー
- オフィス系ソフト
- ExcelVBA フォーム表示中にワークシートの更新
お世話になります。 プロパティがあったかどうかが探せなくての質問です。 ユーザフォーム表示中に、Excelブック(ワークシート)の操作ができるようにしたいのですが、そういったプロパティ?コントロールはどこでしたらいいのでしょうか? ご存知の方、教えてください。 Excel2000
- ベストアンサー
- オフィス系ソフト
- ユーザーフォームが表示前にエラーになります。
お世話になります。 Excelのシート上にコマンドボタンを配置して それをクリックするとユーザーフォームが表示されるようにしたいのですが、下記のコードだと「フォーカスがありません」と1行目でエラーで止まってしまいます。 解決方法を教えてください。 Private Sub コマンドボタン_Click() ユーザーフォーム.Show End Sub よろしくお願いします!
- ベストアンサー
- その他(プログラミング・開発)
- エクセル ユーザーフォーム ワークシート表示
現在,マクロを勉強中です。 ユーザーフォームに,3つのラベルを設定し,それぞれのラベルをクリックすると,「初期設定」または「4月」または「5月」のシートを表示し,ユーザーフォームは消すというものを試みています。 シート名は,「初期設定」「4月」「5月」です。 1つめのラベルをクリックしたときに実行されるコードは Sub Label1_Click() Sheets("初期設定").Activate Unload Me End Sub で設定したのですが,ユーザーフォームが消えるのですが,何のシートも表示されません。 実行したいことだけを考えると,ハイパーリンクでも可能なのですが,勉強もかねて質問させていただきたいと思います。 どこか修正すべきコードがありましたらご教授くださるとありがたいです。
- ベストアンサー
- Excel(エクセル)
お礼
コードまで書いていただきありがとうございます。 基本のコードすら考え付かなかったので助かりました。 あとは、これをもとに少し加工すれば 解決できそうな気がします。 本当にありがとうございました。