어떻게 엑셀 VBA를 사용하여 삽입 사진에
안녕! 의미있는 사진으로 대시 보드를 흔들려고합니다. 또는 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 |
그리고 이것이 제가 얻은 것입니다. 정확히 내가 원했던 것.
그래. 이 코드를 사용하여 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 함수를 사용하는 방법]