2016-11-14 5 views
0

私はこのためのコードを書くのは本当に苦労しています。 したがって、可変の値を持つ4つのセルは、ボタンをクリックしたときに最高値のセルに応じて画像が表示されます。最高の値に応じてExcelで特定の画像を表示

例:セルA1の値が他のセルよりも高い場合は、ボタンをクリックするとピクチャAが表示され、セルB1の値が大きい場合はそのセルに割り当てられているピクチャBが表示されます。

我々は最善を試みたが、解決策を見つけることができませんでした、任意のヘルプは

+3

あなたのアプローチからコードを投稿できますか? – Limak

+2

あなたは解決策を見いだすのが非常に難しくなかったと私は思う:http://stackoverflow.com/questions/9198097/excel-vba-if-cell-value-equals-then-show-hide-images –

答えて

1

をいただければ幸いですまあ、これは些細なものですが、ここで私はそれを行うだろうかです:セルで

Public Sub ShowPic() 
    Me.s1.Visible = b_is_visible(Me.s1.Name) 
    Me.s2.Visible = b_is_visible(Me.s2.Name) 
End sub 

Public Function b_is_visible(str_name As String) As Boolean 

    If str_name = cells(1,1) Then 
     b_is_visible = True 
    end if 

End Function 

A1あなたはイメージの名前を入れてください。したがって、それに基づいて、画像は可視か非可視かのいずれかになります。画像はフォームにする必要があります。上のコードはフォームにあります。

1

解決策はたくさんあります。そのうちの1つは、表示したい写真が入ったフォルダがあり、最大値の行として名前を付けることです。例えば。最大値が行3にある場合、picture3.jpgファイルが表示されます。

Sub test123() 
Dim Rng As Range 
Dim maxRow As Integer, maxVal As Integer 

Set Rng = Range("A1:A4") 
maxVal = Application.WorksheetFunction.Max(Rng) 
picNum = Application.Match(maxVal, Rng, 0) 

ActiveSheet.Pictures.Delete 
ActiveSheet.Pictures.Insert("K:\user files\user 1\pictures\picture" & picNum & ".jpg").Select 

End Sub 

EDIT:

あなたがイメージを再配置したい場合、あなたはそれの名前を変更し、いくつかの賞賛を使用することによってそれを行うことができます。

Selection.ShapeRange.Name = "Pic1" 
ActiveSheet.Shapes("Pic1").Left = ActiveSheet.Cells(2, 2).Left 
ActiveSheet.Shapes("Pic1").Top = ActiveSheet.Cells(2, 2).Top 
ActiveSheet.Shapes("Pic1").Height = ActiveSheet.Range("G1:G7").Height 
ActiveSheet.Shapes("Pic1").Width = ActiveSheet.Range("B1:G1").Width 
関連する問題