PowerShell2.0 : COM 経由で Excel のグラフを作成した後、PDFとしてエクスポートする

  create_chart.ps1



Excel 2007 で PDF に出力できます

関連する記事

VBScript : Excel2007 のグラフ作成
VBScript : 既存の Excel を PDF に変換する ( Excel 2007 )


このコードで作成した PDF
Ps_excel_pdf



  
<#
	オブジェクト作成
	Excel を表示状態にする
#>
$ExcelApp = New-Object -ComObject "Excel.Application"

<#
	警告を出さないようにする
#>
$ExcelApp.DisplayAlerts = $false
#$ExcelApp.Visible = $true

<#
	ブック追加
	追加したブックを取得
	※ 何故か Add でメンパーの一覧が表示されるので Out-Null
#>
$ExcelApp.Workbooks.Add() | Out-Null
$ExcelBook = $ExcelApp.Workbooks.Item( $ExcelApp.Workbooks.Count )

<#
	シートの処理
	Worksheet を選択 ( 最初のシート )
#>
$MySheet = $ExcelBook.Sheets.Item(1)

#シートへグラフ用データをセット
$MySheet.Range("A1").Value2 = ""
$MySheet.Range("B1").Value2 = "Q1"
$MySheet.Range("C1").Value2 = "Q2"
$MySheet.Range("D1").Value2 = "Q3"
$MySheet.Range("E1").Value2 = "Q4"

$MySheet.Range("A2").Value2 = "日本"
$MySheet.Range("B2").Value2 = "1.5"
$MySheet.Range("C2").Value2 = "2"
$MySheet.Range("D2").Value2 = "1.5"
$MySheet.Range("E2").Value2 = "2.5"

$MySheet.Range("A3").Value2 = "アメリカ"
$MySheet.Range("B3").Value2 = "2"
$MySheet.Range("C3").Value2 = "1.75"
$MySheet.Range("D3").Value2 = "2"
$MySheet.Range("E3").Value2 = "2"
 
$MySheet.Range("A4").Value2 = "ヨーロッパ"
$MySheet.Range("B4").Value2 = "2.25"
$MySheet.Range("C4").Value2 = "2"
$MySheet.Range("D4").Value2 = "2.5"
$MySheet.Range("E4").Value2 = "2"

$MySheet.Range("A5").Value2 = "アジア"
$MySheet.Range("B5").Value2 = "2.5"
$MySheet.Range("C5").Value2 = "2.5"
$MySheet.Range("D5").Value2 = "2"
$MySheet.Range("E5").Value2 = "2.75"



#データの範囲
$dataRange = $MySheet.Range("A1:E5")

$chartObjects = $MySheet.ChartObjects()
# 座標は、グラフのエリア
$newChartObject = $chartObjects.Add(0, 100, 300, 300)

$MyChart = $newChartObject.Chart
$MyChart.ChartType = 54
$MyChart.SetSourceData( $dataRange )
$ExcelBook.ExportAsFixedFormat( 0, "C:\ps\excel\chart.pdf" ) 

$BookPath = "C:\ps\excel\chart.xls"
try {
	$v = ($ExcelApp.Version).substring(0,2)
	$n = [int] $v;

	if ( $n -ge 12 ) {
		"Office2007以上"
		$ExcelBook.SaveAs( $BookPath, 56 )
	}
	else {
		$ExcelBook.SaveAs( $BookPath )
	}
}
catch {
	# 一番最新のエラー内容
	$Error[0]
}

# Excel をアプリケーションとして終了
$ExcelApp.Quit()
  

※ <# 〜 #> は範囲コメントです。
※ PowerShell の文字列は System.String なので、メソッドがそのまま使えます
※ VBScript と Range オブジェクトの扱いが違いますが、動作させる為に記述を変更しています。

関連する Microsoft ドキュメント

VBScript コマンドから Windows PowerShell コマンドへの変換












  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  イラストAC  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ