@math_dongdong 선언 하나가 제가 미스로 빠뜨렸네요. 2편에 다른 모듈에 선언을 해두었는데, 1편에는 선언이 2편 코딩이 빠지면서 에러가 발생했습니다. 수정 파일 다시 블로그에 올려 두었습니다. 감사합니다. ^^ Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer ' ESC 감지용
선언 하나가 제가 미스로 빠뜨렸네요. 2편에 다른 모듈에 선언을 해두었는데, 1편에는 선언이 2편 코딩이 빠지면서 에러가 발생했습니다. 수정 파일 다시 블로그에 올려 두었습니다. 감사합니다. ^^ Declare PtrSafe Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer ' ESC 감지용
찾을 범위 1:18 Array 1. 집합체[모음/무리] 2. 컴. (메모리) 배열 3. (수·기호 등의) 배열 Range 2. (변화·차이의) 범위[폭], -대(臺), -대(帶) 1. 다양성 7. 산맥, 산줄기 찾을 대상 Lookup value 검색, 색인 Text Criteria : 1. 엑셀에서 조건문. 2. 영) criterion의 복수형. criterion 크라이티어리언. (판단이나 결정을 위한) 기준 2. Sumifs 1:15 =Sumifs(sum_range, criteria_range1, criteria1, _) >> Sumifs(합계 범위, 조건문 범위1, 조건문) >> 1:48 criteria_range1, criteria1 : 즉, 여기서는 한국에 있는 공장들의 수량 합계를 구하라. 여러 나라에 공장들이 있고, 그 중에서 한국에 있는 공장만 뽑는 상황이다. 방1) =sumifs(D2:D6,C2:C6,C2) 방2) =sumifs(D2:D6,C2:C6,"Korea") 2:16 3. Sumproduct 2:20 product 수학) 곱 Sumproduct 곱의 합계 함수 설명 2:36 2:45 4. Subtotal 3:02 =Subtotal(function_num, reft, _) 3:05 .
조금 복잡합니다만, 아래와 같이 하시면 될 것 같습니다. Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As LongPtr Sub RunExecutable() Dim exePath As String Dim result As LongPtr ' exe 파일의 경로 exePath = "C:\Program Files\epson\Epson Scan 2\Core\es2launcher.exe" ' 관리자 권한으로 실행 result = ShellExecute(0, "runas", exePath, vbNullString, vbNullString, 1) ' 결과 확인 If result <= 32 Then MsgBox "실행불가. 에러코드: " & result, vbCritical Else MsgBox "실행완료", vbInformation End If End Sub
Sub DownloadAndShowA1Value() Dim FileURL As String Dim DestFile As String Dim objXMLHTTP As Object Dim objADOStream As Object Dim objFSO As Object Dim excelApp As Object Dim workbook As Object Dim cellValue As String ' 파일 URL과 저장할 경로 설정 FileURL = "download.blog.naver.com/open/7fea63d3c29b9b476a8fecdce0027e01a2f60eec92/wC4tLS7OjSVqQTBx1DCFZ7aJBZYIJ7WWOT03DliQZ7DSPutVBHbGqCUXXxapMwZueWPm3fCS79Jf2zhE0j2Sgw/%EC%83%89%EC%83%81%EB%B3%84%20%EA%B0%AF%EC%88%98%EC%99%80%20%ED%95%A9%EA%B3%84%20%EA%B5%AC%ED%95%98%EA%B8%B02.xlsm" DestFile = Environ("TEMP") & "\temp_file.xlsm" ' TEMP 폴더에 파일 저장 ' 파일 다운로드 Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") objXMLHTTP.Open "GET", FileURL, False objXMLHTTP.Send If objXMLHTTP.Status = 200 Then Set objADOStream = CreateObject("ADODB.Stream") objADOStream.Open objADOStream.Type = 1 ' Binary mode objADOStream.Write objXMLHTTP.responseBody objADOStream.Position = 0 ' Set the stream position to the start ' 파일 시스템 객체를 사용하여 파일 저장 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(DestFile) Then objFSO.DeleteFile DestFile objADOStream.SaveToFile DestFile, 2 ' adSaveCreateOverWrite objADOStream.Close Else MsgBox "파일 다운로드 실패" Exit Sub End If ' 엑셀 파일 열기 및 A1 셀 값 읽기 Set excelApp = CreateObject("Excel.Application") excelApp.Visible = False Set workbook = excelApp.Workbooks.Open(DestFile) cellValue = workbook.Sheets(1).Range("A7").Value ' 파일 닫기 및 Excel 응용 프로그램 종료 workbook.Close False excelApp.Quit ' 임시 파일 삭제 objFSO.DeleteFile DestFile ' A1 셀 값 메시지 박스로 표시 MsgBox "A1 셀의 값은: " & cellValue End Sub 모듈에 상기 코딩 넣어 주세요. 그리고, 실행하시면 메시지 박스에 A7에 있는 값이 불러와 집니다. 메일주소 주시면 파일 보내드리겠습니다. 그리고, 인터넷상에 있는 파일 예제는 제 블로그에 있는 예제입니다. 아래 참조하시면 될 것 같습니다. blog.naver.com/csyy7199/223487590527 감사합니다. ^^
강사님 오랜만에 문의 드립니다. 다름 아니오라 강사님이 유듀브 강의하신 재고관리 프로그램에서... 어떤 픔명을 불러와 수량이 10개 였고 오늘 2개 출고로 8개 되겠지요. 출고나 입고 이력관리 별도 히스토리 씨트가 아닌 재고 목록 데이터 수량칸이 옆으로 매일 오늘의 날자 칸이 만들어 지고 제목칸에는 날자, 픔명의 수량에는 (어제 수량에서 오늘 출고 마이너스 량) 기록되게 하는 코딩 방법 좀 알려 줄 수 있나요.? 얘): 수량이 10개에서 출고 2개면 나머지가 현재고
@@한대줄께들어기고 안녕하세요 사번으로 불러 올때는 중복되는 경우가 없기 때문에 텍스트 박스만 있으면 됩니다. 그러나, 이름으로 검색시 동명이인이 있을 수 있기 때문에 리스트박스를 사용해야 합니다. 관련 사용 방법은 아래에 있습니다. 참고 하시면 간단히 코딩 가능하십니다. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-b27xmjrrkY0.htmlsi=1DoNkgXW_a5iPW6n&t=2845 감사합니다. ^^
아래와 같이 변경하시면 됩니다. 블로그에 파일 올려 드렸습니다. ^^ blog.naver.com/csyy7199/222992366212 Sub 원하는만큼행추가() Dim 행수 As Long '원하는 행수 Dim i As Integer 'for문 사용용 Application.ScreenUpdating = False '화면 업데이트 중지 행수 = Cells(1, 1).CurrentRegion.Rows.Count '데이터의 전체 행 숫자 For i = 행수 To 2 Step -1 '첫번째 행은 항목으로 제외(가장 아랫쪽행부터 작업 진행 함) If Cells(i, 2).Value <= 1 Then If Cells(i, 2).Value <= 0 Then Cells(i, 2).EntireRow.Delete Else End If Else ' Cells(i, 2).Select ' Cells(i, 2).Resize(Cells(i, 2).Value - 1).Select ' Cells(i, 2).Resize(Cells(i, 2).Value - 1).EntireRow.Select ' Cells(i, 2).Resize(Cells(i, 2).Value - 1).Offset(1).EntireRow.Select Cells(i, 2).Resize(Cells(i, 2).Value - 1).Offset(1).EntireRow.Insert ' Cells(i, 2).Resize(Cells(i, 2).Value - 1).Offset(1).Select Cells(i, 2).Resize(Cells(i, 2).Value).FillDown End If Next i End Sub
궁굼한 게 있어서 질문 남깁니다!! 예를 들어서 열 중에 A1~A10까지 숫자가 1,2,3,4,5,6,7,8,9,10 차례대로 나열 돼있다고 가정을 했을 때, 숫자 앞에 알파벳 B를 삽입하고 싶으면 어떤 방법을 써야할까요? 셀서식->사용자 지정->"B"#,##0 하는 방법 말고는 없을까요?
@@dna7 그 제가 아는 방법이 셀서식으로 알파벳 붙이는 거 말곤 몰라서요.. 질문을 더 자세히 하자면 1 2 3 4 5 6 7 8 9 10 이렇게 되어있을 때, B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 이런식으로 숫자 앞에 알파벳을 간단하고 편리하게 등록 할 수 있는 키라던지 함수가 있나 해서 질문 했던거에요!! 1부터 10이라는 숫자가 짧은 숫자지만 나중에 1번에서 100번 1000번이 넘어가면 숫자 앞에 B를 일일이 하나하니 기입하기에는 너무 힘들 거 같아서용!
안녕하세요 ^^ 중간고사 기간이 다가와 영상은 시험 끝나고 찍어서 설명과 함께 올려 드리겠습니다. 우선 코드만 올려 드립니다. 행복한 하루 되세요 ^^ Sub 드라이브정보() '유튜브 대직장인DNA 제공 Dim fso As New FileSystemObject, fso2 Dim d As Drive Dim 드라이브명 As String For Each d In fso.Drives Set fso2 = CreateObject("Scripting.FileSystemObject").GetDrive(d) If fso2.DriveType = 1 Then MsgBox d & " USB 시리얼번호= " & fso2.SerialNumber End If Next d End Sub
혹시나 다른 분들이 참고하실 수도 있을 것 같아 추가 답글드립니다. filesystemobject를 사용하기 위해서 Visual Basic Editor ( ALT+ F11)을 열고 도구> 참조를 클릭합니다. 사용 가능한 참조 목록 상자에서 ' Microsoft Scripting Runtime' 찾은 다음 추가해 주세요. 감사합니다. ^^