Provo con un esempio
codice:
function arearettangolo(B as double, H as double) as double
arearettangolo=B*H
end function
Una volta che ho creato questa funzione e la rendo disponibile al mio excel tramite un componente aggiuntivo, in tutti i fogli di calcolo in cui avro'
bisogno di calcolare l'area del rettangolo, bastera' scrivere in una cella arearettangolo(indirizzocella1,indirizzocella2),
e indirizzocella1 e indirizzocella2 variano su ogni foglio, una volta saranno A1 e A2, una volta saranno q45 r45, ecc, pero' non e' un problema,
tanto basta che scrivo la formula e seleziono le opportune celle (quando dicevo col mouse...).
se non fosse per la necessita' di estrarre dalla funzione i valori di alcune variabili intermedie, il problema di uso delle sub non mi si porrebbe.
Invece avrei la necessita' di estrarre questi ulteriori valori e scriverli in altrettante celle, non prefissate.
ad esempio, mettiamo che la funzione arearettangolo sia invece cosi'
codice:
function arearettangolo(B as double, H as double) as double
dim p as double
p=2*(B+H)
arearettangolo=B*H
end function
e che io, oltre al valore di arearettangolo sia interessato anche al valore di p (ovviamente e' solo un esempio fine a se stesso, altrimenti farei molto piu' semplicemente la funzione perimetro...)
Mi è stato detto di passare un parametro per riferimento alla funzione, in modo che la funzione ne cambi il suo valore, quindi dovrebbe diventare
codice:
function arearettangolo(B as double, H as double, byref p as double) as double
p=2*(B+H)
arearettangolo=B*H
end function
Usata cosi' pero' la funzione non scrive un bel niente nella cella che gli passo come p, proprio perche' e' una funzione, quindi dovrei bypassare la cosa usando una sub, che credo debba diventare
codice:
sub subarearettangolo(B as double, H as double, byref p as double)
call arearettangolo(B,H,p)
end sub
quello che vorrei, e' che questa sub possa essere usata in qualsiasi nuovo foglio di lavoro, e che gli si possa dire
guarda che nel foglio pippo del file topolino, B e' nella cella A1, H nella cella A2 e p nella cella A3, mentre nel foglio Qui del file Qua, B e' nella cella D1, H nella cella D23 e p nella cella Q56.
Non ho la piu' pallida idea di dove vada a finire il valore dell'area, e se quindi si debba passare un quarto parametro alla sub.
E' possibile fare una cosa del genere?
Spero di essermi chiarito