Что нового

Отслеживание в цикле изменения свойств фигуры эксель

OlegSmirnov

Новичок
Сообщения
52
Репутация
0
Здравствуйте, форумчане.

Подскажите с решением.
Есть файл эксель 64573.xls и в нем - на листе нарисована фигура "Ромб 7".
Имеется скрипт - отслеживания координат и ее размеров, работающий из редактора - по F5
Код:
#include <Excel.au3>

$oExcel = _Excel_Open()
$oBook = _Excel_BookOpen($oExcel, @ScriptDir & "\64573.xls")

$oBook.Sheets('Лист3').Select
$oShape = $oBook.ActiveSheet.Shapes("Ромб 7")

ConsoleWrite("X = " & $oShape.Left & @CRLF)
ConsoleWrite("Y = " & $oShape.Top & @CRLF)
ConsoleWrite("W = " & $oShape.Width & @CRLF)
ConsoleWrite("H = " & $oShape.Height & @CRLF)

_Excel_Close($oExcel)

Как в цикле отследить изменение свойств и если - фигура переместилась или изменилась в размере или переместилась и изменила размер одновременно - то выдать сообщение "Изменение".
 

Вложения

gunter123

Продвинутый
Сообщения
149
Репутация
62
Попробуйте вот так:
Код:
#include <Excel.au3>

$oExcel = _Excel_Open()
$oBook = _Excel_BookOpen($oExcel, @ScriptDir & "\64573.xls")

$oBook.Sheets('Лист3').Select
$oShape = $oBook.ActiveSheet.Shapes("Ромб 7")

ConsoleWrite("X = " & $oShape.Left & @CRLF)
ConsoleWrite("Y = " & $oShape.Top & @CRLF)
ConsoleWrite("W = " & $oShape.Width & @CRLF)
ConsoleWrite("H = " & $oShape.Height & @CRLF)

Local $x = $oShape.Left
Local $y = $oShape.Top
Local $w = $oShape.Width
Local $h = $oShape.Height

While 1
   _Check($x, $oShape.Left)
   _Check($y, $oShape.Top)
   _Check($w, $oShape.Width)
   _Check($h, $oShape.Height)
   Sleep(10)
WEnd

Func _Check(ByRef $variable, $property)
   if $variable <> $property Then
	  ConsoleWrite("Фигура изменилась!" & @CRLF)
	  $variable = $property
   EndIf
EndFunc

_Excel_Close($oExcel)
 
Автор
O

OlegSmirnov

Новичок
Сообщения
52
Репутация
0
Код - работает. Спасибо вам большое.
 
Верх