
No.2ベストアンサー
- 回答日時:
添付画像から判断して、VBというよりExcelVBAでの手法という事で良いですね?
【画像の元ファイルがある場合】
PCのローカルに画像の元ファイルがあり、それをシート上に配置している場合は
元画像のフルパスが解るでしょうから、比較的簡単です。
仮にActiveSheetのE2セルに "C:\temp\test.jpg" など、ファイル名がフルパスではいっている場合はそれを参照します。
Private Sub CommandButton1_Click()
Dim fn As String
fn = ActiveSheet.Range("E2").Value
If Len(Dir(fn)) = 0& Then
MsgBox "no file"
Else
Dir Application.Path
With Me.Image1
.PictureSizeMode = fmPictureSizeModeZoom
.Picture = LoadPicture(fn)
End With
End If
End Sub
【画像の元ファイルがない場合】
ちょっと厄介です。
簡易的にChartのExport機能を使う方法もありますが、画像の質は落ちます。
Private Sub CommandButton2_Click()
Const f As String = "c:\temp\test."
Const e As String = "jpg"
Dim r As Picture
On Error GoTo errHndr
Set r = ActiveSheet.Pictures(1)
r.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
With Workbooks.Add(xlWBATWorksheet)
With .Sheets(1).ChartObjects.Add(0, 0, r.Width, r.Height).Chart
.Paste
.ChartArea.Border.LineStyle = 0 '※
.Shapes(1).Left = -3.4 '※
.Shapes(1).Top = -3.4 '※
.Export Filename:=f & e, Filtername:=e
End With
.Close savechanges:=False
End With
With Me.Image1
.PictureSizeMode = fmPictureSizeModeZoom
.Picture = LoadPicture(f & e)
End With
errHndr:
Set r = Nothing
If Err().Number <> 0 Then MsgBox Err().Number & ":" & Err().Description
End Sub
'※は2007ではあまり効果ないみたい
きっちりやろうとするならWindowsAPI関数を使う事になります。
『CopyPictureOf』をキーワードにgoogle検索してください。
No.1
- 回答日時:
詳しく説明するのはご容赦いただきますが、A列の値変化に伴い、E列の画像パスが変化する様に、VLOOKUPなどで構築してあるとして当該行のD列にある画像を削除し、新たな画像を読み込むシートのイベントマクロのコードです。
当方XL2000なので、上位バージョンで動かなかったら悪しからず。Private Sub Worksheet_change(ByVal Target As Range)
Dim filename As String
Dim myPic As Picture
Dim myCell As Range
If Target.Column <> 1 Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
Set myCell = Target.Offset(0, 3)
filename = myCell.Offset(0, 1).Value
For Each myPic In ActiveSheet.Pictures
If Not Intersect(myPic.TopLeftCell, myCell) Is Nothing Then
myPic.Delete
End If
Next myPic
myCell.Activate
Set myPic = ActiveSheet.Pictures.Insert(filename)
With myPic
.Top = myCell.Top
.Left = myCell.Left
.Width = myCell.Width
.Height = myCell.Height
End With
Set myPic = Nothing
Application.ScreenUpdating = True
End Sub
参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- アプリ MacBookでCLIP STUDIO PAINTから「写真」アプリを開いて、画像を読み込みたい 1 2023/08/05 12:34
- 画像編集・動画編集・音楽編集 編集ソフト ダビンチリゾルブに関して 動画編集してる際にエフェクトや、テキストの読み込みが遅くなって 2 2022/09/02 23:24
- Word(ワード) 写真3枚をA4に貼り付けたい 5 2023/07/03 14:36
- 写真・ビデオ スマホアプリ 写真データへのアクセスについて 情報漏洩 2 2023/06/22 23:00
- Excel(エクセル) セル内の一部に別セルを差し込む 3 2022/09/18 04:39
- 写真・ビデオ 明日が期限!職務経歴書(EXCEL)に写真添付可能なアプリ。 証明写真でアプリを探しても紙に貼るタイ 2 2022/06/29 17:57
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセルの表でその数字に当てはまる数字をいれたい 1 2022/04/20 16:45
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像のビット数を変更する方法
-
vb.net 画像の透過について
-
イメージマップでマウスオーバ...
-
背景画像の繰り返しについて
-
uwcs のマクロで画像認識をして...
-
bmp形式の画像を色の深さを24ビ...
-
画像のピクセルデータの取得
-
Excel ユーザーフォームで表示...
-
【WPF】画像の切り替え
-
万華鏡
-
UWSC 画像判定と条件分岐について
-
【EXCEL VBA】ダブルクリックで...
-
画像の一部だけが点滅する画像...
-
「using Windows」でエラーが出る
-
PowerPoint VBA で画像の鮮明度...
-
マウスオンで画像を切り替える...
-
UWSCについて
-
JPEG画像のじわじわ表示は可能?
-
VB6での画像のサイズ変更に関して
-
UWSCでループ処理がうまくいき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画像のビット数を変更する方法
-
「using Windows」でエラーが出る
-
EXCEL VBA 複数のImageコントロ...
-
背景画像の繰り返しについて
-
Excel ユーザーフォームで表示...
-
【EXCEL VBA】ダブルクリックで...
-
jqueryスライダーを2段でスライ...
-
画像処理したBitmapをピクチャ...
-
uwscの画像認識に失敗します。
-
uwcs のマクロで画像認識をして...
-
VBAのユーザーフォームのイメー...
-
gif 画像上の ボタンに リン...
-
UWSCでループ処理がうまくいき...
-
UWSCの画像認識と条件分岐につ...
-
画像のピクセルデータの取得
-
画像比較
-
OpenCVでマスク処理で「ぼかし...
-
PowerPoint VBA で画像の鮮明度...
-
UWSCの色判定
-
UWSC 画像判定と条件分岐について
おすすめ情報