やり方としては少々まわりくどいですが、技術的には十分可能ということが分かったので書き記しておきます。
手順
変換したいファイルを file.doc とします。簡単な手順としては以下の通りです。
file.docをGoogle Drive にアップロードする- アップロードした
file.docを Google ドキュメントで開く - OpenDocument 形式
.odtで書き出し、ダウンロードする(file.doc.odtとします) - ダウンロードした
file.doc.odtを Google Drive にアップロードする - アップロードした
file.doc.odtを Google ドキュメントで開く - Microsoft Word 形式
.docxで書き出し、ダウンロードする(file.doc.odt.docxとします) - 必要に応じてリネームする(
file.docxとします)
以上の手順で、file.doc を file.docx に変換できるようです。なお、私は Office Suite を持っていないので、変換前後でのファイルの整合性までは確認していません。
メモ
Office 2003 以前はファイル形式に独自規格を使用しており、また当時の拡張子は 3 文字だったので .doc / .xls / .ppt ファイルとして扱っていた。
Office 2007 以後、XML ベースの Office Open XML 形式を採用するようになったが、元の .doc / .xls / .ppt ファイルとのバイナリレベルでの互換性がないこともあり、XML ベースである意を込めて .docx / .xlsx / .pptx ファイルとしている。マクロを内蔵しているものは .docm / .xlsm / .pptm 。
Office Open XML (OpenXML, OOXML) は実体を XML ファイルとして構造化しているため、再利用性が高かったり破損リスクが少なかったりといったメリットがある。また、標準化された規格(ISO/IEC 29500)でもあるため、互換ソフトの安定性も比較的高く、Office Suite 環境でなくとも読み書きが可能。例えば 標準形式に OpenDocument Format を採用している LibreOffice では LibreOffice 3.4 で OOXML に対応した。(やろうと思えば拡張子を .zip に変換した上で展開し、VSCode などで編集することも技術的には可能。やりたくはないけど)
OpenDocument も同様に XML 形式をベースとした標準化規格(ISO/IEC 26300, JIS X 4401)であるため、互換性こそないものの OpenDocument / OpenXML の変換は比較的容易そう(内部構造まで深く調査はしていないため未検証であることに注意)。そのため、中間フォーマットとして適任の可能性が高い。
OpenDocument と OpenXML は完全に対応するものではないため、変換前後で体裁が崩れるなどの不具合が発生する可能性が十分ある点は要注意。当然ながら Office Suite を使って直接変換する方が確実。
OpenXML の ISO 標準化にあたって ODF 推進側といざこざがあったらしいが、正直どうでもいいし規格としてオープンになってくれるならその方が良いじゃないのと思わなくもない。
参考
- OpenDocument - Wikipedia
- ISO/IEC 26300:OpenDocument Format(ODF) に関する Wikipedia のページ
- Office Open XML - Wikipedia
- ISO/IEC 29500:Office Open XML(OpenXML, OOXML) に関する Wikipedia のページ
- ISO/IEC 26300-1:2015 - Information technology — Open Document Format for Office Applications (OpenDocument) v1.2 — Part 1: OpenDocument Schema
- ISO/IEC 26300-1:2015 の規格文書
- JISX4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1
- JIS X 4401:2014 の規格文章
- ISO/IEC 29500-1:2016 - Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference
- ISO/IEC 29500-1:2016 の規格文章