
ワークシート"計算表"内のO6:U28に表を作成してあります。
その表をUserForm1上のCommandButton_ClickイベントでUserForm2のImage1に画像として表示させたのですが、
UserForm2.Image1.Picture = LoadPicture.Worksheets("計算表").Range("O6:U28")
ではエラーが出ました。
どなたか良い方法をご教授いただけませんでしょうか?
イメージ画像を貼っておきます。
よろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
リンク先のWin APIとやっていることはほぼ変わりません。
ChartObject を使う方法で行うことにしましたが、Excel2013?以降仕様が変わったそうで、ネットに出ている方法ではエラーが出ます。どこを探しても細かい部分は分からないので、1つずつプロパティを当たりながら調べました。また、Excel 2007 と2013 両方でチェックしました。
なお、ピタリとImage オブジェクトに納まりませんので、後は工夫してください。
ただし、質問にある画像に関しては、どうみても、リストオブジェクトのようにしか見えませんが……。だったら、もっと簡単なはずです。
'//ユーザーフォーム・オブジェクト
Private Sub CommandButton1_Click()
Dim filename As String
Dim ret As Long
filename = "$Temp.jpg"
filename = ThisWorkbook.Path & "\" & filename
' ChrtExport1 Range("O6:U28"), filename
ret = ChrtExport(Range("O6:U28"), filename)
If ret <> 0 Then MsgBox "失敗しました。", vbExclamation: Exit Sub
UserForm2.Image1.Picture = LoadPicture(filename)
UserForm2.Show False
'Kill filename
End Sub
Private Function ChrtExport(Rng As Range, filename As String)
Dim Chrt As Chart, Ftype As String
If InStr(1, filename, ".jpg", vbTextCompare) Then
Ftype = "jpg"
Else
ChrtExport = 1
Exit Function
End If
Application.ScreenUpdating = False
With Rng.Resize(Rng.Rows.Count+1) 'ワンセル下に広げた
'(Left, Top, Width, Height)
Set Chrt = ActiveSheet.ChartObjects.Add( _
.Left + .Width + 10, _
.Top + .Height + 10, _
.Width + 5, _
.Height + 5).Chart
.CopyPicture xlScreen, xlPicture
End With
Chrt.ChartArea.Select
Chrt.ChartArea.Parent.Paste
Chrt.Export filename, "JPG"
Chrt.Parent.Delete
If Dir(filename) = "" Then
ChrtExport = 2
End If
End Function
こんばんは。
僕の技術以上にかなり高度なことなんだと諦めていたところに
ドンピシャリなご回答をいただき、本当にありがとうございました!
僕ももっと勉強します!
No.3
- 回答日時:
訂正:
Private Sub CommandButton1_Click() の中
・
・
' ChrtExport1 Range("O6:U28"), filename '←消し忘れです。不要
・
・
'Kill filename '←「'」を外して、Kill filename にしてください。残骸が残ります
End Sub
No.1
- 回答日時:
こんにちは
シートの内容はデータなので、画像にして貼り付けたいのであれば、一旦画像化する必要がありそうですね。
コピーの『図としてコピー』などを利用すれば、クリップボードに画像として保存することは可能です。
対象Range.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
とか。
しかしながら、クリップボードから、直接イメージコントロールに画像を貼り付けるのが結構やっかいそうです。
次善の策としては、一旦ファイルに保存してから、通常の方法で読み込むという方法がありそうです。
直接貼り付ける方法に関しては、以前の質問にもあるようです。
https://oshiete.goo.ne.jp/qa/2885043.html
内容を確かめてはいませんが、だいぶ以前の回答なので、そのままで利用できるかどうかは不明ですが、方法としてはこのようなやり方で可能なものと思われます。
後に挙げた「ファイルとして保存する方法」に関しても↑の回答の中で言及されていますので、ご参考になるものと思います。
こんにちは。
ご回答くださりありがとうございます。
やはりかなり難易度が高いようですね...。
イメージ的にはシートのデータが変われば
イメージ画像も変わるようにしたかったので
今回は断念してTextBoxを数配置して表示するやり方でやってみます。
詳しくありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法
Excel(エクセル)
-
Excel ユーザーフォームで表示させた画像をユーザーフォーム上で保存したい
Visual Basic(VBA)
-
エクセル ユーザーフォームにオートシェープ(図形)を貼り付けるこは可能なのでしょうか?
Excel(エクセル)
-
-
4
【エクセルのマクロ】クリップボードのbitmapをフォームに表示させたい
Visual Basic(VBA)
-
5
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
6
ユーザーフォームにワークシートを表示させる。
その他(Microsoft Office)
-
7
EXCEL VBA 複数のImageコントロールにクリップボードに保存されている画像を表示したい
Visual Basic(VBA)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
UserForm1.Showでエラーになります。
工学
-
14
ユーザーフォームでTextBox1にカーソルを移動したい
Excel(エクセル)
-
15
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
16
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
17
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
18
ExcelVBAでセルをクリックしてユーザーフォームを表示するには
Excel(エクセル)
-
19
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
20
VBA ユーザーフォーム Image1 貼り付け画像の保存?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】シート内の表をUse...
-
イラレのプリントエラー
-
Illustratorでオブジェクトの色...
-
イラストレーターの白を透明に...
-
Sade:斜めの面に画像をマッピ...
-
イラレでクリッピングマスクし...
-
Illustratorの画面からPDFにす...
-
アスタリスクににているマーク...
-
adobe PDFに変換すると.logファ...
-
Acrobatで作成した四角の前面・...
-
Photoshopでゴージャスな文字を...
-
pdfで、図形を回転する
-
パソコンに行書体がありません...
-
シート追加をした時のフォント...
-
Illustratorの中心点の移動の仕方
-
Illustratorでグループ化が解除...
-
イラストレーターの回転ツール...
-
イラストレータで内側に線を引...
-
イラストレーターで範囲を指定...
-
フォントについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
イラレのプリントエラー
-
【エクセル】シート内の表をUse...
-
Illustratorでオブジェクトの色...
-
イラストレーターの白を透明に...
-
イラストレーターで網掛け処理...
-
Wordに貼り付けた画像が文字の...
-
イラレでクリッピングマスクし...
-
illustrator CS、Macで円柱にラ...
-
Illustratorの画面からPDFにす...
-
C4Dでobjに写真を貼り付ける方...
-
イラレでグレースケール化できない
-
AutoCADのOLEオブジェクトをカ...
-
イラストレーターで画像の分割
-
Illustratorで花を切り抜きたい
-
イラレで簡単でキレイな水玉パ...
-
イラストレーターccで背景を透...
-
llustratorにはヒストリー機能...
-
SVG画像をjpeg画像に変換する過...
-
abode bridge背景色の変更
-
3dsmaxでのテクスチャマッピン...
おすすめ情報