Excel에서 범위 선택한 내용을 Python 목록 초기화 코드로 변환하는 매크로 (VBA)

개요



엑셀의 선택 범위 내용을 파이썬 목록 초기화 코드로 변환하여 클립 보드에 복사하는 VBA 코드입니다. 다음 그림과 같이 선택 영역의 선두행을 변수명, 이후의 행을 리스트의 요소로 하는 Python 프로그램을 생성합니다.



클립보드에 텍스트를 복사하는 방법에 대해서는 「 VBA 실패하지 않는 문자열을 클립 보드에 복사하는 방법 」로 소개되고 있는 코드를, 그대로 이용했습니다.

코드



선택 범위 (Range)를 Python 목록 (초기화 코드)로 변환
Sub Range2PythonList()

  If TypeName(Selection) <> "Range" Then
    Exit Sub
  End If

  sCol = Selection(1).Column               '範囲開始列
  eCol = Selection(Selection.Count).Column '範囲終了列
  sRow = Selection(1).Row                  '範囲開始行
  eRow = Selection(Selection.Count).Row    '範囲終了行

  If sRow = eRow Then
    Exit Sub
  End If

  pCode = ""
  For c = sCol To eCol
    pCode = pCode & Cells(sRow, c).Value & "=["
    For r = sRow + 1 To eRow
      v = Cells(r, c).Value
      Select Case TypeName(v)
        Case "String"
          pCode = pCode & "'" & v & "'"
        Case "Empty", "Null", "Nothing"
          pCode = pCode & "None"
        Case "Date"
          pCode = pCode & "datetime.datetime(" _
                & Year(v) & "," _
                & Month(v) & "," _
                & Day(v) & "," _
                & Hour(v) & "," _
                & Minute(v) & "," _
                & Second(v) & ")"
        Case Else
          pCode = pCode & v
      End Select
      pCode = pCode & ","
    Next r
    pCode = Left(pCode, Len(pCode) - 1) & "]" & vbCrLf
  Next c

  Debug.Print pCode
  SetClip (pCode)

End Sub

'クリップボードにテキストをコピー
' https://info-biz.club/windows/vba/vba-set-clipboard.html
Sub SetClip(S As String)
  With CreateObject("Forms.TextBox.1")
    .MultiLine = True
    .Text = S
    .SelStart = 0
    .SelLength = .TextLength
    .Copy
  End With
End Sub

실행 방법



Excel을 시작하고 Alt+F11에서 VBA 코드 편집기를 시작하고 대상 통합 문서를 두 번 클릭하여 선택합니다.



VBA 코드를 작성하는 창이 열리므로 거기에 위의 코드를 복사합니다.

Excel로 돌아가서 범위를 선택한 다음 Alt+F8에서 매크로를 시작한 다음 ThisWorkbook.Range2PythonList를 선택하여 실행합니다.



선택 영역의 내용이 파이썬 목록의 초기화 코드로 변환되어 클립보드에 복사됩니다. 그런 다음 적절한 편집기에 붙여서 사용하십시오 (필요한 경우 import datetime를 추가하십시오).



참고 자료



  • VBA 실패하지 않는 문자열을 클립 보드에 복사하는 방법 @ 정보 비즈니스 지원 클럽
  • 좋은 웹페이지 즐겨찾기