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形式
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属性の要素を取得します。