Archive for category VBA

Tutorial Excel 2003 – Macrodefinitii si elemente de programare VBA

Macrodefintiile reprezinta functii definite de utilizator pentru a automatiza o serie de operatii cu grad ridicat de utilizare.

Utilizarea macrodefiniitiilor trebuie precedata de stabilirea nivelului de securitate in cadrul aplicatiei Excel. Astfel aplicatia permite rularea de macrodefinitii care nu sunt semnate si autentificate de catre producator. Pentru a modifica nivelul de securitate se deschide meniul Tools –> Macro –> Security si se alege nivelul Low sau Medium.

Cel mai simplu mod de a crea o macrodefinitie este de a inregistra operatia efectuata de catre utilizator. Aplicatia Excel permite acest lucru prin optiunea Tools –> Macro –> Record New Macro. Figura 1 descrie parametrii ce trebuie definiti la inregistrarea unei macrodefinitii noi.

Read the rest of this entry »

, ,

2 Comments

Word VBA: Schimbare proprietati imagini

Pentru a modifica proprietatile tuturor imaginilor dintr-un  document Word se utilizeaza colectiile Shapes (pentru obiecte ancorate) si/sau InlineShapes (pentru obiecte incadrate in paragrafe) accesibile prin intermediul obiectelor de tip Document (de exemplu prin ActiveDocument).

Obiectele asociate imaginilor (de tip Shape si InlineShape) dispun de proprietatea PictureFormat prin intermediul careia pot fi modificate propritatile acestora (contrast, luminozitate, tranparenta etc.).

De exemplu, pentru cresterea contrastului cu 40% si scaderea luminozitatii cu 20% se poate utiliza urmatoarea macrodefinitie VBA:

<div>Sub ModificaProprietatiImagini()</div>
<div>Dim imagine As InlineShape</div>
<div>On Error Resume Next</div>
<div>For Each imagine In ActiveDocument.InlineShapes</div>
<div>  If imagine.Type = wdInlineShapePicture Or imagine.Type = _
wdInlineShapeEmbeddedOLEObject Then
    imagine.PictureFormat.Brightness = imagine.PictureFormat.Brightness - _
imagine.PictureFormat.Brightness * 0.2
    imagine.PictureFormat.Contrast = imagine.PictureFormat.Contrast + _
imagine.PictureFormat.Contrast * 0.4
  End If
Next</div>
<div>End Sub</div>

Este necesara tratarea erorilor de executie, deoarece pot fi accesate si alte obiecte pentru care proprietatea PictureFormat nu este disponibila (de exemplu un obiect din colectia InlineShapes este de tip WordArt).

, ,

No Comments