PowerShellでExcelのマクロをエクスポートしてみる

| 2012年12月24日月曜日

 ExcelマクロのエクスポートをPowerShellでやってみる。
 マクロのエクスポートをマクロからできたんだからできて当然なんだけど、思ったほど情報がなかったので、ちょっと時間がかかった。
 (前から感じていたけど、もしかして、PowerShellって流行ってないのか…。)

 使い方は、対象のエクセルファイル(hoge.xls)があるフォルダに移動して

 > Export-ExcelMacro.ps1 .\hoge.xls

 すれば、同じフォルダにモジュールがエクスポートされる。
 Join-Pathして絶対パスにしているのは、エクセルのWorkbooks.OpenやExportに渡す時には絶対パスじゃないと動いてくれないため。

Export-ExcelMacro.ps1
  1. param([string]$fileName)  
  2.   
  3. $filePath = Join-Path $pwd $fileName  
  4.   
  5. $excel = New-Object -ComObject Excel.Application  
  6.   
  7. $excel.Workbooks.Open($filePath) | % {  
  8.   $_.VBProject.VBComponents | % {  
  9.     $exportFileName = Join-Path $pwd ($_.Name + ".bas")  
  10.     $_.Export($exportFileName)  
  11.   }  
  12. }  
  13.   
  14. $excel.Quit()  

0 コメント: