Makro (VBA), das die Bereichsauswahl in Excel in Python-Listeninitialisierungscode konvertiert

Überblick

** VBA-Code, der den Inhalt der Auswahl in Excel in ** Python-Listeninitialisierungscode konvertiert und in die Zwischenablage kopiert. Generieren Sie ein Python-Programm mit der ersten Zeile der Auswahl als ** Variablenname ** und den nachfolgenden Zeilen als ** Elementen ** der Liste, wie in der folgenden Abbildung gezeigt.

無題.png

Das Kopieren von Text in die Zwischenablage wird unter "Kopieren einer nicht fehlerhaften VBA-Zeichenfolge in die Zwischenablage" beschrieben. Ich habe den Code so verwendet, wie er ist.

Code

Auswahl(Range)Zu einer Python-Liste (Initialisierungscode)


Sub Range2PythonList()

  If TypeName(Selection) <> "Range" Then
    Exit Sub
  End If
      
  sCol = Selection(1).Column               'Bereichsstartspalte
  eCol = Selection(Selection.Count).Column 'Bereichsende
  sRow = Selection(1).Row                  'Bereichsstartlinie
  eRow = Selection(Selection.Count).Row    'Bereichsendlinie
      
  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

'Kopieren Sie den Text in den Clip
' 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

Ausführungsmethode

Starten Sie Excel, starten Sie den VBA-Code-Editor mit "** Alt + F11 **" und wählen Sie die Zielarbeitsmappe durch Doppelklick aus.

f1.png

Ein Fenster zum Schreiben von VBA-Code wird geöffnet. Kopieren Sie den obigen Code und fügen Sie ihn dort ein.

Gehen Sie zurück zu Excel, ** wählen Sie einen Bereich aus, ** starten Sie das Makro mit "** Alt + F8 **" und wählen Sie "ThisWorkbook.Range2PythonList", um es auszuführen.

f2.png

Der Inhalt der Auswahl wird in Python-Listeninitialisierungscode konvertiert und in die Zwischenablage kopiert. Fügen Sie es danach in einen geeigneten Editor ein und verwenden Sie es (fügen Sie ggf. "import datetime" hinzu).

f3.png

Referenzmaterial

Recommended Posts

Makro (VBA), das die Bereichsauswahl in Excel in Python-Listeninitialisierungscode konvertiert
Ruft die EDINET-Codeliste in Python ab
Rufen Sie den im Pulldown-Menü Selenium Python VBA ausgewählten Wert ab
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Die Geschichte, dass das Ersetzen der zweidimensionalen Liste in Python nicht funktioniert hat
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Kopieren Sie die Liste in Python
Lesen Sie den Excel-Namen / Zellbereich mit Python VBA
Python-Code, der zusammenhängende Leerzeichen in einem entfernt
Zu dem Problem, dass der Inhalt von Python print in Docker-Protokollen nicht sichtbar ist
Ein Hinweis, der einen Job in Python implementiert, der eine GCS-Datei in BigQuery lädt
So finden Sie das erste Element, das den Kriterien in der Python-Liste entspricht