Always preserve VML files for worksheets
Currently VML files are only preserved when keep_vba=True
is set for the workbook but this introduces are hard dependency on the original zip archive in this case which is probably not necessary and definitely complex being touched by the worksheet writer, the package writer and the comment writer. While the VML code is opaque to openpyxl itself, it's not opaque in the same way as VBA code or other form artefacts are and there is a 1:1 relationship between VML files and worksheets.
So, we should be able to replace the reference to the VML file in an archive by the VML source on the worksheet. Wrap it in a private attribute it and have ws.legacy_drawing
simply check for its existence. The comment writing code will still want to manipulate it if comments are written but client code should never need to care.