PowerShell 【活用編】



目次


Excel操作

Excelに文字列を入力する処理について解説します。

プログラムソース

$objXLS = New-Object -ComObject Excel.Application

$objBook = $objXLS.Workbooks.Add()

$strFileName = "C:\Users\home\Desktop\Excel操作.xlsx"
$objBook.SaveAs($strFileName)

$objBook = $objXLS.Workbooks.Open($strFileName)

$objBook.Worksheets.Item(1).Cells.Item(1,1).Value()="PowerShell"

$objBook.Save()
$objBook.Close()
$objXLS.Quit()

$objBook = $null
$objXLS = $null

解説

Excel.Application

Excel操作に使用するオブジェクト

オブジェクト.WorkBooks.Add()

Excelブックを新規作成します。

オブジェクト.SaveAs(ファイル名)

Excelブックに名前を付けて保存します。

オブジェクト.WorkBooks.Open(ファイル名)

ファイル名を指定してExcelブックを開きます。

オブジェクト.Worksheets(インデックス).Cells(行,列)

から1番目のシートのA1セルを指定します。

オブジェクト.Save()

Excelブックを上書き保存します。

オブジェクト.Close()

Excelブックを閉じます。

オブジェクト.Quit()

Excelを終了します。


Excel PDF変換

ExcelをPDF形式で出力する処理について解説します。

プログラムソース

$objXLS = New-Object -ComObject Excel.Application

$strFileName = "C:\Users\home\Desktop\Excel操作.xlsx"
$objBook = $objXLS.Workbooks.Open($strFileName)

$strPDFName = "C:\Users\home\Desktop\Excel操作.pdf"
$objBook.ExportAsFixedFormat(0, $strPDFName)

$objBook.Close()
$objXLS.Quit()

$objBook = $null
$objXLS = $null

解説

オブジェクト.ExportAsFixedFormat(出力形式,ファイル名)
出力形式
 0 : PDF形式
 1 : XPS形式

ExcelブックをPDF形式/XPS形式で出力します。


メール送信

メールを送信する処理について解説します。

プログラムソース

$objMsg = New-Object -ComObject CDO.Message

$objMsg.From = "差出人アドレス"
$objMsg.To = "宛先アドレス"
$objMsg.Subject = "タイトル"
$objMsg.TextBody = "メッセージ"

$strConf="http://schemas.microsoft.com/cdo/configuration/"

$objFields=$objMsg.Configuration.Fields
$objFields.Item($strConf+"sendusing")=2
$objFields.Item($strConf+"smtpserver")="smtp.live.com"
$objFields.Item($strConf+"smtpserverport")=25
$objFields.Item($strConf+"smtpauthenticate")=1
$objFields.Item($strConf+"smtpusessl")="true"
$objFields.Item($strConf+"sendusername")="アカウント"
$objFields.Item($strConf+"sendpassword")="パスワード"
$objFields.Update()
$objMsg.Send()
$objMsg = $null

解説

CDO.Message

メール送信に使用するオブジェクト

オブジェクト.Send()

メールを送信します。


Webデータ収集

InternetExplorerを利用して、Webサイトのデータを収集する処理について解説します。

プログラムソース

$objIE = New-Object -ComObject InternetExplorer.Application
$objIE.Visible = $false

$objIE.Navigate("https://www.google.co.jp")
Start-Sleep -milliseconds 500

@($objIE.Document.getElementsByName("q"))[0].Value="PowerShell"
@($objIE.Document.getElementsByName("btnK"))[0].click()
Start-Sleep -milliseconds 500

$colResult = $objIE.Document.Body.getElementsByTagName("h3")

foreach ($col in $colResult) {
   Write-Host $col.innerText
}

$objIE.Quit()

$objIE = $null

解説

InternetExplorer.Application

IE操作に使用するオブジェクト

オブジェクト.Visible

IEを非表示にします。

オブジェクト.Navigate(URL)

指定したURLをIEに表示します。

オブジェクト.Document.getElementsByName(name属性値)

指定したname属性の要素を取得します。