안녕! 의미있는 사진으로 대시 보드를 흔들려고합니다. 또는 Excel VBA 셀에 그림을 삽입하려고합니다. 음, Excel 셀에 그림을 삽입 할 수는 없지만 Excel 셀에 맞게 크기를 조정할 수 있습니다.

수동으로 수행하는 것은 많은 시간이 걸리며 성가시다. 그렇다면 해결책은 무엇입니까? VBA 매크로라고 생각하셨습니다. 이제 코딩하겠습니다.

다음은 폴더의 그림을 셀 또는 지정된 범위에 삽입하는 Excel vba 코드입니다. Alt + F11을 누르고 모듈을 삽입 한 다음이 코드를 복사합니다.

걱정하지 마세요. 필요에 따라 수정할 수 있도록 아래에 설명했습니다.

셀 또는 주어진 범위에 VBA를 사용하여 Excel 셀에 그림 삽입 [width = “100 %”, cols = “100 %”,]

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)

‘ inserts a picture and resizes it to fit the TargetCells range

Dim p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

설명 :

파트 1 :

Sub TestInsertPictureInRange()InsertPictureInRange

“C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”)

End Sub

위의 서브 루틴은 단지 두 개의 인수 만 취하는 메인 서브 루틴 InsertPictureInRange를 호출합니다. 먼저 이름이있는 이미지 파일의 주소와 Excel에서 그림을 삽입 할 두 번째 범위.

파트 2 :

Sub InsertPictureInRange(PictureFileName As String, TargetCells As

Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim

p As Object, t As Double, l As Double, w As Double, h As Double

If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub

If Dir(PictureFileName) = “” Then Exit Sub

‘ import picture

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

‘ determine positions

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left – .Left

h = .Offset(.Rows.Count, 0).Top – .Top

End With

‘ position picture

With p

Height = h

End With

Set p = Nothing

End Sub

이것은 주어진 범위에 맞게 그림을 삽입하고 크기를 조정하는 메인 서브 루틴입니다. 자세히 살펴 보겠습니다.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

이 줄은 우리에게 필요한 변수 선언입니다. 참고 p 개체 변수로. 이 변수는 우리의 그림을 담고 있습니다.

If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

Activesheet가 워크 시트인지 여부를 확인합니다. 그렇지 않으면 코드가 즉시 종료되고 아무 일도 일어나지 않습니다.

If Dir(PictureFileName) = "" Then Exit Sub

Excel 셀에 사진을 삽입 할 이미지의 주소를 제공했는지 확인하십시오. 제공하지 않은 경우 즉시 종료되고 아무 일도 일어나지 않습니다.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

자, 이것이 가장 중요한 선입니다. 이 줄에서는 Activesheet의 삽입 기능을 사용하고 있습니다. Pictures 객체를 만들고 이전에 선언 한 객체 p에 넣습니다. 이제 p를 사용하여 이미지의 너비와 길이를 쉽게 조정할 수 있습니다.

With TargetCells

t = .Top

l = .Left

w = .Offset(0, .Columns.Count).Left - .Left

h = .Offset(.Rows.Count, 0).Top - .Top

End With

이 세그먼트는 주어진 범위에서 길이, 너비, 상단 및 왼쪽을 가져옵니다.

With p

.Top = t

.Left = l

.Width = w

Height = h

End With

이 부분은 이미지를 주어진 범위로 조정합니다. 그리고 끝났습니다. 마지막으로 아무것도 설정하지 않음으로써 자유롭게 설정합니다.

Set p = Nothing

이 줄은 메모리를 해제합니다.

이 코드는 Excel 2016, Excel 2013, Excel 2010 및 Excel 2007에서 작동합니다.

여기에 A1 : C10 범위에 이미지를 삽입하고 싶었습니다. 이를 위해 [width = “100 %”, cols = “100 %”,]

아래 코드를 수정했습니다.

Sub TestInsertPictureInRange()InsertPictureInRange “*C:\Users\Manish

Singh\Downloads\biker.jpg”, _Range(“A1:C10*”)

End Sub

그리고 이것이 제가 얻은 것입니다. 정확히 내가 원했던 것.

pasted image 0 (1)

그래. 이 코드를 사용하여 Excel 셀 또는 범위에 그림을 삽입하십시오. 코드를 둘러보세요. 다른 형식, 이상한 범위를 삽입하고 어떤 일이 발생하는지 확인하십시오. 질문이 있거나 문제가있는 경우 아래 댓글 섹션을 사용하여 저에게 물어보십시오.

파일 다운로드

`link : /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Microsoft Excel 2016에서 VBA를 사용하여 그림 삽입]

인기 기사 :

link : / formulas-and-functions-introduction-of-vlookup-function [Excel에서 VLOOKUP 함수를 사용하는 방법]

link : / tips-countif-in-microsoft-excel [Excel에서 COUNTIF 함수를 사용하는 방법]

link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수를 사용하는 방법]