Что нового

как из Autoit передать VBA в word

Tiberium6

Новичок
Сообщения
51
Репутация
0
Код:
#include <Word.au3>
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <Excel.au3>


$sDocument = "C:\Users\Worldshade\Desktop\Autoit\Pechatb\WOR.doc"
$oWord = _Word_Create(True)
$oDocument = $oWord.Documents.Open($sDocument)

With $oWord
	       .Selection.WholeStory
		   .Selection.Font.Size = 4.5
EndWith

открывается файл определенный и выделает весь текст, и делает шрифт 4,5

Код:
#include <Word.au3>
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <Excel.au3>


$sDocument = "C:\Users\Worldshade\Desktop\Autoit\Pechatb\WOR.doc"
$oWord = _Word_Create(True)
$oDocument = $oWord.Documents.Open($sDocument)








 With $oWord.PageSetup
		.ActiveDocument
        .LineNumbering.Active = False
        .Orientation = wdOrientLandscape
 EndWith

делаю вот так, хочу поменять на альбомную ориентацию, autoit не знает что это за функция
Код:
wdOrientLandscape
как передать этот параметр?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
Func wdOrientLandscape()
return 1
EndFunc



Добавлено:
Сообщение автоматически объединено:

Код:
.Orientation = wdOrientLandscape()
 
Автор
T

Tiberium6

Новичок
Сообщения
51
Репутация
0
inververs сказал(а):
Код:
Func wdOrientLandscape()
return 1
EndFunc



Добавлено:
Сообщение автоматически объединено:

Код:
.Orientation = wdOrientLandscape()





извиняюсь за безграмотность.

но как вот это передать
Код:
.TopMargin = CentimetersToPoints(0.5)
.TopMargin = CentimetersToPoints(1.5)
.BottomMargin = CentimetersToPoints(3)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
и еще, возможно передать вот такое?
Код:
Dim prg, par As Paragraph
dl = False
For Each prg In ActiveDocument.Paragraphs
    If InStr(1, Trim(prg.Range.Text), "Глава Б.") Then
        dl = True
    End If
    
    If InStr(1, Trim(prg.Range.Text), "Глава В.") Then
        Set par = prg.Previous
        par.Range.Delete
        dl = False
    End If
    If InStr(1, Trim(prg.Range.Text), "Глава Г.") Then
        dl = True
    End If
    
    If dl = True Then
        prg.Range.Delete
    End If
Next
        
    Set par = ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Previous
    par.Range.Select
    Selection.TypeBackspace
 
Автор
T

Tiberium6

Новичок
Сообщения
51
Репутация
0
inververs сказал(а):
Код:
func CentimetersToPoints($x)
Return $x*1; Узнайте формулу перерасчета
EndFunc

Tiberium6 [?]
и еще, возможно передать вот такое?
Можно


Код:
Dim prg, par As Paragraph
dl = False
For Each prg In ActiveDocument.Paragraphs
    If InStr(1, Trim(prg.Range.Text), "Глава Б.") Then
        dl = True
    End If
    
    If InStr(1, Trim(prg.Range.Text), "Глава В.") Then
        Set par = prg.Previous
        par.Range.Delete
        dl = False
    End If
    If InStr(1, Trim(prg.Range.Text), "Глава Г.") Then
        dl = True
    End If
    
    If dl = True Then
        prg.Range.Delete
    End If
Next
        
    Set par = ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Previous
    par.Range.Select
    Selection.TypeBackspace
не поможете с написанием вот этого кода?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Может быть так?
Код:
Local $par, $dl = False
Local $ActiveDocument = $oWord.ActiveDocument ;Тут я хз как получить, пробуй сам

For $prg In $ActiveDocument.Paragraphs
   If StringInStr($prg.Range.Text, 'Глава Б.') Then
	  $dl = True
   EndIf

   If StringInStr($prg.Range.Text, 'Глава В.') Then
	  $par = $prg.Previous
	  $par.Range.Delete
	  $dl = False
   EndIf

   If StringInStr($prg.Range.Text, 'Глава Г.') Then
	  $dl = True
   EndIf

   If $dl = True Then
	  $prg.Range.Delete
   EndIf
Next

$par = $ActiveDocument.Paragraphs($ActiveDocument.Paragraphs.Count).Previous
$par.Range.Select
$oWord.Selection.TypeBackspace
 
Верх