Sub Align_Pictures()
Dim shp As Shape
Dim N As Integer
Dim cnt As Integer
Dim rowcnt As Integer
Dim C As Range
N = 5
Set C = Cells(5, 3) '이미지 삽입 위치
Debug.Print (ActiveSheet.Shapes.Range("그림 22").height) '그림 높이
Debug.Print (ActiveSheet.Shapes.Range("그림 22").Width) '그림 너비
For Each shp In ActiveSheet.Shapes
With shp
If .Name Like "*Picture*" Then
.ScaleHeight 1#, True, msoScaleFromTopLeft
.ScaleWidth 1#, True, msoScaleFromTopLeft
End If
End With
Next shp
For Each shp In ActiveSheet.Shapes
Select Case shp.Type
Case msoPicture, msoMedia, msoShapeTypeMixed, msoOLEControlObject, msoAutoShape
shp.Left = C.Left + cnt * C.Width
shp.Top = C.Top + rowcnt * (C.height + Cells(6, 3).height)
Debug.Print (rowcnt)
Debug.Print (cnt)
Case Else
End Select
cnt = cnt + 1
If cnt = N Then
rowcnt = 1
cnt = 0
End If
Next
End Sub
import pyautogui as pag
pag.moveTo(1100,550) #이미지파일 위치
a = [0, 1, 2, 3, 4, 5, 6]
for i in a:
pag.doubleClick(880+216*i,550) #이미지파일 더블클릭
pag.sleep(2.2)
pag.write(['printscreen']) #printscreen 누르기
pag.sleep(0.7)
pag.moveTo(77,352) #이미지 시작위치로 이동
pag.drag(1061,704,duration=1,button='left') #클릭한채로 드래그
pag.sleep(1.5)
pag.click(2518,19) #픽픽 최소화
pag.sleep(0.6)
pag.click(1153,188) #엑스창 클릭
pag.sleep(0.5)
i += 1
효율 개별로.
마우스 말고 키보드 사용해야될듯.
멍청한데 구경하는 재미는 있는 코드 ㅎㅎ
import pyautogui as pag
pag.moveTo(1100,550) #이미지파일 위치
a = list(range(0,7))
for i in a:
pag.doubleClick(880+216*i,550) #이미지파일 더블클릭
pag.sleep(2.2)
img_name = '하{}.png'.format(i)
pag.screenshot(img_name, region = (77, 352, 1061, 704))
pag.sleep(0.5)
pag.click(1153,188) #엑스창 클릭
pag.sleep(0.5)
i += 1
훨씬 빠르고 낫다.
이름이 하1,... 인건 그래야 뒤에 생겨서...
2) 이미지 삽입
import openpyxl
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
c = ['A50', 'C50', 'E50', 'G50', 'I50','K50','M50','O50']
ws['A49'] = '아래 사진이 삽입될거에용'
for _num in a:
image_list = ['하0.png','하1.png','하2.png','하3.png','하4.png','하5.png','하6.png']
img = Image(image_list[_num])
img.height = 200
img.width = 150
ws.add_image(img, c[_num])
_num += 1
wb.save('이미지엑셀.xlsx')
Q1.파일 새로만들기 말고 원래파일에 쓰는건?
Q2.이미지 이름 수정. 자동으로 못하나?
Q3.셀이름도 자동으로 좀..
Q4.픽셀 말고 cm는 안될까(큰상관은없음)
A1.
#새 excel파일 생성
from openpyxl import Workbook
wb = Workbook() #새 워크북 생성
ws = wb.active #현재 활성화된 sheet가져옴
~~
wb.save("test.xlsx")
#기존 excel파일 사용
from openpyxl import load_workbook
wb = load_workbook("test.xlsx") #기존 파일 불러오기
ws = wb.active
#Cell의 수식이 아닌 값을 읽고 싶다면
wb = load_workbook("test.xlsx", data_only=True)
ws = wb.active
A2.
i = 0
b = []
for i in range(0, 7):
a = '하'+ str(i)+'.png'
b.append(a)
i += 1
print(b)
print(b[1])
print('하'+b[2])
for sheet in workbook.Worksheets: for i, shape in enumerate(sheet.Shapes): if shape.Name.startswith('Picture'): shape.Copy() image = ImageGrab.grabclipboard() image.save('{}.jpg'.format(i+1), 'png')