web-dev-qa-db-ja.com

Excelでhtmlドキュメントを開き、バッチファイルでxlsとして保存します

Excelでhtmlファイルを開き、開いたhtmlファイルをxlsまたはxlsxドキュメントとして保存するバッチファイルを実行したいと思います。理想的には、バッチは毎晩実行されるようにスケジュールされます。以下のような単純なコードを使用すると、Excelでhtmlドキュメントが開きます

start Excel test.html

私が立ち往生しているのは、次にコードを実行する場所です。誰かが何か洞察を持っていますか?

1
Dre

この質問を閉じるだけです:

この問題の解決策は、2つのスクリプトを作成することで解決します。1つはExcelで作成され、xlsmドキュメントに保存されるvbaスクリプトです。 2つ目は、前述のxlsmドキュメントを実行してvbaスクリプトをトリガーする.batファイルで、最終的にhtmlドキュメントをxlsxに変換します。

1つ目:Excelでは、htmlドキュメントをxlsxドキュメントとして保存するVBAコードを作成する方法が2つあります(これをAと呼びましょう)。 2番目のステップは、前述のコードを自動的に実行するVBAコードを作成することです[htlmをExcelファイルとして保存してから閉じるように指定されています](これをBと呼びましょう)。

Aのコードは

Sub Open_HTML_Save_XLSX()
    Workbooks.Open Filename:="**NameOfHTMLfileHere.HTML"
    ActiveWorkbook.SaveAs Filename:= _
        "**NewName.XLSX", FileFormat:= _
        xlOpenXMLWorkbook
    ActiveWorkbook.Close
End Sub

コードが非常に単純であることに気付くでしょう。コードを要約すると、htmlドキュメントを開き、xlsxドキュメントとして保存し、ワークブックを閉じます。 Aのコードは、モジュールのセクションに入ります。

パートBの場合、xlsmドキュメントのMicrosoftExcelオブジェクトフォルダーの[ThisWorkbook]セクションに別のVBAスクリプトを保存する必要があります。

Private Sub Workbook_Open()
   Call Open_HTML_Save_XLSX
   Application.Quit
End Sub  

繰り返しますが、それほど複雑ではありません。スクリプトは、このワークブックを開いたときに、ファイル変換を実行してExcelを終了するVBAスクリプトを実行することを示しています。

したがって、XLSMドキュメントを設定したら、あとはバッチスクリプトを記述して、すべての作業を行うXLSMドキュメントを開くだけです。

バッチは非常に簡単です:

echo on
start Excel "vbatest.xlsm"

バッチを実行すると、xlsmドキュメントが開きます。 Xlsmドキュメントを開くと、VBAコードが実行されます。次に、VBAコードは目的のhtmlドキュメントを開き、xlsxとして保存します。その後、Excelが閉じ、バッチファイルがコースを実行し、目的が達成されました。

それはすべての人々です、すべての魚に感謝します。

0
Dre