방법 1 – 웹사이트에서 Excel VBA MsgBox로 특정 데이터 가져오기
단계:
- 개발자로 이동 탭을 탭하세요.
- Visual Basic을 클릭합니다. 코드에서 카테고리를 클릭하여 Visual Basic Editor를 엽니다. . 또는 ALT를 누르세요. +F11 Visual Basic Editor를 열려면 .

- Visual Basic Editor에 표시됩니다. .
- 도구로 이동 메뉴를 클릭하고 참조를 클릭하세요. .

- 참조 – VBAProject 대화상자가 나타납니다.
- 조금 아래로 스크롤하여 두 개의 Microsoft를 활성화합니다. 라이브러리 . Microsoft HTML 개체 라이브러리 확인 표시 및 Microsoft 인터넷 컨트롤 .
- 확인을 클릭하세요. .

- 모듈 을 클릭하세요. 삽입 에서 드롭다운 메뉴바.

- 이렇게 하면 모듈 이 생성됩니다. 귀하의 통합 문서에 있습니다.
- VBA 를 복사하여 붙여넣습니다. 아래에 표시된 코드입니다.
VBA 코드:
Sub Import_SpecificData()
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim website As String
Dim total As Variant
website = "https://en.wikipedia.org/wiki/2022_FIFA_World_Cup"
Set request = CreateObject("MSXML2.XMLHTTP")
request.Open "GET", website, False
request.setRequestHeader "If-Modified-Since", "Mon, 14 Nov 2022 00:00:00 GMT"
request.send
response = StrConv(request.responseBody, vbUnicode)
html.body.innerHTML = response
total = html.getElementsByClassName("wikitable")(0).innerText
MsgBox total
End Sub - RubSub 를 클릭하여 코드를 실행하세요. 버튼을 누르거나 단축키 F5를 누르세요. .

- 이렇게 하면 데이터를 가져오고 웹사이트에서 해당 데이터를 가져와서 MsgBox에 표시합니다. .

VBA 코드 설명
Sub Import_SpecificData() 구독 코드에서 작업을 처리하는 데 사용되는 코드의 일부이지만 값을 반환하지 않습니다. 하위 프로시저라고도 합니다. 프로시저 이름을 Import_SpecificData()로 지정했습니다. .
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim website As String
Dim total As Variant DIM VBA의 문 '선언을 의미합니다. ”는 변수를 선언하는 데 사용해야 합니다.
website = "https://en.wikipedia.org/wiki/2022_FIFA_World_Cup"
Set request = CreateObject("MSXML2.XMLHTTP") 그러면 웹페이지를 요청하는 개체가 생성됩니다.
request.Open "GET", website, False 이 블록을 통해 우리는 어디로 가야 할지, 어떻게 가야 할지 알게 될 것입니다. 줄을 변경할 필요가 없으며 웹사이트에서 모든 종류의 데이터를 가져오는 동안 이 줄을 직접 복사할 수 있습니다.
request.setRequestHeader "If-Modified-Since", "Mon, 14 Nov 2022 00:00:00 GMT" 우리는 우리 웹사이트에서 새로운 데이터를 얻을 것입니다.
request.send 이 줄은 요청을 웹페이지로 보냅니다.
response = StrConv(request.responseBody, vbUnicode) 웹페이지 응답 데이터를 변수로 가져옵니다.
html.body.innerHTML = response 코드 줄은 데이터 참조를 더 쉽게 하기 위해 웹페이지를 HTML 개체에 넣습니다.
total = html.getElementsByClassName("wikitable")(0).innerText 이 줄을 사용하면 웹페이지의 지정된 요소 전체를 얻을 수 있습니다. 클래스 이름을 가져와야 합니다. 특정 요소의 클래스 이름을 얻으려면 간단한 지침을 따라야 합니다.
- 웹사이트로 이동하여 마우스 오른쪽 버튼을 클릭하세요. 특정 블록에 있습니다.
- 그런 다음 검사를 클릭하세요. .

- 이렇게 하면 HTML이 표시됩니다. 및 CSS 해당 웹사이트의 요소. 수강해야 하는 수업을 클릭하고 html.getElementsByClassName(“wikitable”)에 넣습니다. .

MsgBox total 그러면 Microsoft 에 총계가 표시됩니다. 창.
End Sub 절차가 종료됩니다.
방법 2 - 웹사이트에서 Excel로 데이터 스크랩
단계:
- 녹음하는 작은 아이콘을 클릭하세요. 매크로 .

- 기록 매크로 대화상자가 나타납니다.
- 매크로 이름을 지정합니다. 매크로 이름을 Get_Data로 지정합니다. .
- 확인을 클릭하세요. .

- 데이터로 이동 탭을 탭하세요.
- 웹에서를 클릭합니다. 데이터 가져오기 및 변환에서 .

- 웹에서 창이 표시됩니다.
- CTRL을 클릭하여 +V 키보드에서 URL을 붙여넣으세요. URL에서 기본을 선택한 후 영역 .
- 확인을 누르세요. 버튼을 누르세요.

- 탐색기 결과적으로 대화 상자가 나타납니다.
- 표시 옵션에서 데이터 표를 선택합니다. 귀하의 요구에 맞는 메뉴를 선택하세요.
- '다음으로 로드를 선택합니다. .”

- 데이터 가져오기 대화상자가 표시됩니다.
- 표 선택 "통합 문서에서 이 데이터를 보는 방법을 선택하세요. ”를 클릭하고 기존 워크시트를 클릭합니다. .
- 데이터를 가져오려는 셀을 선택하세요.
- 확인을 클릭하세요. .

- 이렇게 하면 웹사이트에서 데이터를 가져옵니다.

- 전체 워크시트를 선택하고 삭제 를 클릭하세요. 버튼, Microsoft 엑셀 대화상자가 나타납니다. 아니요를 클릭했는지 확인하세요. .

- 삭제됩니다. 모든 데이터.
- 데이터로 이동 리본에서 모두 새로고침을 클릭하세요. 쿼리 및 연결 아래 .
- 모든 데이터를 워크시트로 다시 가져옵니다.

- 리본을 열고 개발자를 선택합니다. 드롭다운 메뉴에서 선택하세요.
- 비주얼 베이직을 선택합니다. Visual Basic Editor를 열려면 . 또는 Visual Basic Editor ALT를 눌러도 액세스할 수 있습니다. +F11 .
- 모듈 , VBA 매크로 를 얻게 됩니다. 거기.
VBA 코드:
Option Explicit
Sub Get_Data()
'
' Get_Data Macro
'
'
Sheets("Get Data").Select
Range("N11").Select
ActiveWorkbook.Queries.Add Name:="2022 FIFA bidding (majority 12 votes)", _
Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/2022_FIFA_World_Cup""))," & Chr(13) _
& "" & Chr(10) & " Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes (Data1,{{""Bidders"", type text}, {""Votes Round 1"", type text}, {""Votes Round 2"", type text}, {""Votes Round 3"", type text}, {""Votes Round 4"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
Workbooks("Import Data from Website .xlsm").Connections.Add2 _
"Query - 2022 FIFA bidding (majority 12 votes)", _
"Connection to the '2022 FIFA bidding (majority 12 votes)' query in the workbook." _
, Array( _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""2022 FIFA bidding (majority 12 votes)"";Extended Properties=""""" _
, ""), "SELECT * FROM [2022 FIFA bidding (majority 12 votes)]", 2
Application.CommandBars("Queries and Connections").Visible = False
ActiveWorkbook.Queries.Add Name:="2022 FIFA bidding (majority 12 votes) (2)" _
, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://en.wikipedia.org/wiki/2022_FIFA_World_Cup""))," & Chr(13) & "" & Chr(10) & " Data1 = Source{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Data1,{{""Bidders"", type text}, {""Votes Round 1"", type text}, {""Votes Round 2"", type text}, {""Votes Round 3"", type text}, {""Votes Round 4"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""2022 FIFA bidding (majority 12 votes) (2)"";Extended Propertie" _
, "s="""""), Destination:=Range("$B$2")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array( _
"SELECT * FROM [2022 FIFA bidding (majority 12 votes) (2)]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "_2022_FIFA_bidding__majority_12_votes___2"
.Refresh BackgroundQuery:=False
End With
Columns("A:A").ColumnWidth = 2.86
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Columns("G:G").ColumnWidth = 12
Range("M26").Select
Application.CommandBars("Queries and Connections").Visible = False
Cells.Select
Selection.ListObject.QueryTable.Delete
Selection.ClearContents
Range("B2:F9").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("B2").Select
End Sub

- 자동 매크로 코드입니다.
Excel의 데이터 탭을 사용하여 웹 데이터를 가져오는 방법
단계:
- URL을 배치하세요. C4 셀에 데이터 가져오기 워크시트에 있습니다.
- URL 복사 CTRL을 눌러 +씨 .

- 데이터로 이동 탭을 탭하세요.
- 웹에서를 클릭합니다. 데이터 가져오기 및 변환에서 .

- 웹에서라는 창 나타날 것입니다.
- 기본 선택 그리고 URL에서 필드, URL 붙여넣기 CTRL을 눌러 +V 키보드에서.
- 확인을 클릭하세요. 버튼을 누르세요.

- 탐색기가 표시됩니다. 대화 상자.
- 표시 옵션에서 요구사항에 따라 데이터 표를 선택하세요. .
- 로드를 클릭하세요. .

- 이렇게 하면 해당 웹사이트에서 선택한 데이터를 가져와서 Excel 파일로 로드합니다.

연습 문제집 다운로드
워크북을 다운로드하여 연습할 수 있습니다.
관련 기사
- Excel VBA:Chrome을 사용한 웹 스크래핑
- 웹사이트에서 테이블을 스크랩하는 Excel VBA
- Excel VBA를 사용하여 브라우저 없이 웹 스크래핑을 수행하는 방법