データベースから情報を引き出し、そのデータを Excel ファイル (C:\file.csv) にエクスポートする vbs ファイルがあります。これが完了したら、一連のマクロ (vba) を実行してこのデータをフォーマットします。これらのマクロは常に同じで、通常はテキスト ファイルからスプレッドシートにコピー/貼り付けして、手動で実行します。
データがスプレッドシートにエクスポートされた後にマクロが実行されるように、マクロ vba を vbs ファイルに含める方法はありますか?類似のソリューション方法を示す電話Excel ファイル内の定義済みマクロで、マクロの内容を VBS ファイルに保存したり、VBS ファイルから実行したりしたいと考えています。VBS ではまったく新しいファイルが作成され、その後書式設定マクロが実行されることになるので、これは役に立ちます。
私の考えでは、Set objWorkbook = objExcel.Workbooks.Open("C:\file.csv")
答え1
正しい方向に進んでいます。まず必要なのは、遅延バインディングを使用して Excel.Application の新しい変数を設定することです。これは、通常の Excel VBA の機能がすべて隠れているオブジェクトの下にあります。以下は、新しいワークブックを開き、新しいシートを追加して「TEST」という名前を付け、その新しいA1
シートのセルにコンテンツを追加するサンプルの VBS スクリプトです。完了すると、VBS は「Finished」をエコーします。
Sub createWB()
'Set the excel application variable
set xlApp = CreateObject("Excel.Application")
'Make it visible, or hide it in the background
xlApp.Application.Visible = true
'Open a new workbook, for instance
set xlWB = xlApp.Workbooks.Add()
xlWB.Activate
'Add a sheet, name it test, bring it front and center
set xlSheet = xlWB.Worksheets.Add()
xlSheet.Name = "TEST"
xlSheet.Activate
'Put something in cell A1
xlSheet.Cells(1,1).value = "TEST CELL CONTENT"
End Sub
'Call the subroutine above
call createWB
WScript.Echo "Finished."
WScript.Quit
VBS を満足させるために既存の VBA コードを少しいじる必要があるかもしれませんが、マクロを VBS で記述することは、VBA で記述するのと同じくらい機能的であることがわかります。
答え2
答え3
私はマクロを Excel テンプレートに配置します。次に、テンプレートに autonew マクロを作成し、csv ファイルをインポートして書式設定マクロを実行します。
次に、vbs を使用して csv ファイルを作成して保存し、テンプレートに基づいて Excel ファイルを開きます。