Shapeオブジェクトのサイズ変更


ExcelのShapeオブジェクトのサイズを一括変更するVBS
ハードコピーのサイズを揃えたいときに便利かも

'--------------------------------------------------------------------------------------
'
'	Shapes サイズ一括変更
'			(指定したExcelファイルのShapeオブジェクトのサイズを一括変更する)
'	
'	注意点	スクリプト実行前にすべてのExcelアプリケーションを終了してください。
'			スクリプト実行中はマウス、キーボードを使用しないでください。
'			このスクリプトが異常終了した場合はExcelのプロセスを手動で終了してください。
'--------------------------------------------------------------------------------------

if WScript.Arguments.Count <> 0 Then
	'対象のファイルを引数で受け取り(ドラッグ&ドロップでOK)
	targetPath = WScript.Arguments.Item(0)
else
	targetPath = InputBox("サイズ変更のExcelをフルパスで入力","ファイルの指定","")
end if

if targetPath = "" then
	
	msgbox "処理を中止しました。"

else

	Set Excel  = CreateObject("Excel.Application")

	Set wkBook = Excel.WorkBooks.Open(targetPath)
	
	'シートの数ループする
	For i = 1 to wkBook.WorkSheets.Count
		
		Set xlsSheet = wkBook.WorkSheets(i)

		'Shapesオブジェクトのループ
		For j = 1 to wkBook.WorkSheets(i).Shapes.Count

			Set wkShape = xlsSheet.Shapes(j)

			'★変更後のサイズを指定してください
			wkShape.Height = 296.25
			wkShape.Width = 387.75

		Next

	Next

	'Excelを終了する。
	wkBook.Close
	Excel.Quit

	msgbox "サイズ変更を完了しました。"

end if


動作確認環境:Windows Xp ,Excel 2003