
ワークシート"計算表"内の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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【スプレッドシート】日報を統合して各業務の所要時間をピボットで表示したい 1 2023/07/06 16:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2022/03/24 16:07
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Visual Basic(VBA) 以前シートを集めて1シートへ繋げる下記コードをご教授いただき作成しました。 今回すでに集めてある「ま 1 2022/08/29 20:38
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法
Excel(エクセル)
-
Excel ユーザーフォームで表示させた画像をユーザーフォーム上で保存したい
Visual Basic(VBA)
-
【エクセルのマクロ】クリップボードのbitmapをフォームに表示させたい
Visual Basic(VBA)
-
-
4
エクセル ユーザーフォームにオートシェープ(図形)を貼り付けるこは可能なのでしょうか?
Excel(エクセル)
-
5
EXCEL VBA 複数のImageコントロールにクリップボードに保存されている画像を表示したい
Visual Basic(VBA)
-
6
Excel VBAでセル内の画像を選択したい
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
VBA ユーザーフォーム Image1 貼り付け画像の保存?
Visual Basic(VBA)
-
10
手作業で埋め込んだ、UserForm1.Image1の画像を、VBAコードで書き換えたい
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
13
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
16
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
17
エクセルのVBAでクリップボードにコピーした画像をpng(or jpg or bmp)保存したい
Visual Basic(VBA)
-
18
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
19
Excel VBA ワークシートに貼られたボタン名(Caption)をセルの値から取得するには
その他(プログラミング・Web制作)
-
20
VBA(エクセル)のユーザーフォームの固定
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
イラレのプリントエラー
-
Illustratorでオブジェクトの色...
-
イラストレーターの白を透明に...
-
【エクセル】シート内の表をUse...
-
イラレでグレースケール化できない
-
イラストレーターで画像の分割
-
イラレで簡単でキレイな水玉パ...
-
Illustratorの画面からPDFにす...
-
C4Dでobjに写真を貼り付ける方...
-
Acrobatで作成した四角の前面・...
-
adobe PDFに変換すると.logファ...
-
パソコンに行書体がありません...
-
AIのCS3でテキストの一部分のみ...
-
pdfで、図形を回転する
-
シート追加をした時のフォント...
-
イラストレーターの回転ツール...
-
フォントについて
-
「U」のような図形を作成する方法
-
indesignでのフォント一括変換
-
フォトショップで青い線が出て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】シート内の表をUse...
-
Illustratorでオブジェクトの色...
-
イラレのプリントエラー
-
イラストレーターの白を透明に...
-
C4Dでobjに写真を貼り付ける方...
-
イラレでクリッピングマスクし...
-
illustrator CS、Macで円柱にラ...
-
Wordに貼り付けた画像が文字の...
-
フォトショップの機能で教えて...
-
イラストレーターで網掛け処理...
-
Aviutlである場所から画像がひ...
-
イラストレーターccで背景を透...
-
Illustrator 画像配置したら重...
-
イラレで簡単でキレイな水玉パ...
-
イラストレーター・部分的に色...
-
Fireworksで画像を角丸に切り取...
-
イラストレーターの使い方につ...
-
イラストレーターに配置した画...
-
Illustrator CS5 で、まるまっ...
-
イラストレーターで画像の分割
おすすめ情報