VBA'da, Environ işlevi ana işletim sistemindeki bir ortam değişkeninin değerini almak için kullanılır. Bir ortam değişkeni, çalışan işlemlerin bir bilgisayarda davranış biçimini etkileyebilen dinamik adlandırılmış bir değerdir. Environ işlevi, değerini almak istediğiniz ortam değişkeninin adı olan tek bir argüman alır. Aşağıdaki örneği ele alalım:

Environ fonksiyonu, genellikle oturum açmış kullanıcının kullanıcı adını içeren “username” ortam değişkeninin değerini almak için kullanılır.
Burada, VBA Environ kullanıcı profilini bulmak için bir alt rutin oluşturulur. Kullanıcı Adının ortam değişkeni bulunur ve aşağıda gösterildiği gibi bir mesaj kutusunda görüntülenir.

- VBA'daki Environ fonksiyonu, ana işletim sistemindeki bir ortam değişkeninin değerini almak için kullanılır.
- İşletim sistemi sürümü veya şu anda oturum açmış kullanıcının kullanıcı adı gibi sistem hakkında bilgi almak için kullanılır.
- İşlev belirtilen ortam değişkeninin değerini içeren bir dize döndürür. Ortam değişkeni yoksa boş bir dize döndürülür.
- VBA kodunun çalıştığı ortam hakkında bilgiye ulaşmak için faydalıdır.
- Ortam değişkenlerinin kullanılabilirliği ve davranışı farklı işletim sistemleri arasında farklılık gösterebilir.
Sözdizimi
VBA Ortam Değişkenleri listesini bulmanın sözdizimi gösterildiği gibidir.
Environ(environment-variable)
Nerede,
- ortam değişkeni: Burada ortam değişkeni, değerini almak istediğiniz ortam değişkeninin adını temsil eden bir dize ifadesidir. İşlev, belirtilen ortam değişkeninin değerini içeren bir dize döndürür. Ortam değişkeni yoksa, boş bir dize döndürülür.
Çevre Değişkenleri Nasıl Görüntülenir?
Bu ortam değişkenlerini Windows Arama seçeneğinde arayarak sisteminizde görüntüleyebilirsiniz.


“Ortam Değişkenleri”ni seçin.

VBA Environ fonksiyonunu kullanarak değerini gösterilen “Sistem Değişkenleri” ile bulabilirsiniz. Değerini döndürmek için VBA Environ fonksiyonundaki “Değişken” bölümüne dizeyi yazmanız yeterlidir. Bununla, VBA Değişkenleri listesi için değeri bulabilirsiniz.
VBA'da Environ Fonksiyonu Nasıl Kullanılır?
VBA Environ değişkenleri listesinin nasıl edinileceğini öğrenmek için aşağıdaki adımları izleyin. Burada, VBA Environ işlevi sisteminizde bulunan farklı ortam değişkenlerini edinmek için kullanılır.
Adım 1: Excel araç çubuğunda “Geliştirici” bölümünü seçin . Excel Çalışma Kitabını açtığınızda bunu görebilirsiniz.

Ardından, Geliştirici sekmesinde “Visual Basic”i seçin. Bu, VBA (Uygulamalar için Visual Basic) Düzenleyicisini açacaktır.

VBA Editöründe, VBA Araç Çubuğunda “Ekle”yi seçin. Ardından, açılır menüde “Modül”ü seçin.

Bu, kodlamaya başlayabileceğiniz yeni bir modül veya boş bir düzenleyici açar.
Adım 2: VBA Environ değişkenleri listesini bulmak için bir alt prosedür bildirin.

Adım 3: İlk ortam değişkeni değerini döndürmek için VBA Environ fonksiyonunu kullanın.

Environ işlevi bağlamında, bir dizin kullanmak (örneğin, Environ(1)) sayısal konumuna göre belirli bir ortam değişkeninin değerini alır. Ancak, Environ(1)'in özel anlamı tüm sistemlerde standartlaştırılmamıştır.
Adım 4: Benzer şekilde ikinci indekstekinin ortam değişkeni değerini bulun.

Adım 5: VBA Environ temp değişkenini bulun. Bu, tüm sistemlerde kullanılabilen bir ortam değişkenidir.

Adım 6: Sistemde bulunan bazı değişkenlerle VBA Environ fonksiyonunu çağırın.

Adım 7: Environ fonksiyonunu kullanarak program dosyalarının değerini bulun.

Kullanılabilir değişkenleri Windows sisteminizdeki ortam değişkenlerine bakarak bulabilirsiniz.

Adım 8: Benzer şekilde, sistemler arasında ortak olan diğer çevresel değişkenleri çağırın. Bunlardan biri "Yol" değişkenidir.

Adım 9: Farklı sistemlerde farklı değerlere sahip bir değişken çağırın. Bu, işlemci sayısını bulmak içindir.

Kod:
Sub ShowExamples()
Debug.Print Environ(1) ‘ProgramData
Debug.Print Environ(2) ‘AppData Roaming
Debug.Print Environ(“Temp”)
Debug.Print Environ(“ALLUSERSPROFILE”)
Debug.Print Environ(“CommonProgramFiles”)
Debug.Print Environ(“Path”)
Debug.Print Environ(“NUMBER_OF_PROCESSORS”)
End Sub
Adım 10: “F5” tuşuna basarak veya Excel VBA araç çubuğundaki yeşil ok tuşuna tıklayarak alt prosedürü çalıştırın. Çıktı, gösterildiği gibi Hemen sekmesinde yazdırılacaktır.

Aşağıdaki örneklere bakarak VBA Environ fonksiyonunun nasıl kullanılacağına dair bazı ilginç örnekler görebilirsiniz.
Örnekler
Bu bölümde, aşağıdaki VBA Environ fonksiyonunu kullanmanın bazı yaratıcı yollarını inceleyebilirsiniz.
Örnek 1
Diyelim ki bölümdeki Ortam Değişkenleri kısmında arama yapmak yerine, tüm ortam değişkenlerinizi basit bir indeks numarasıyla görüntülemenin bir yolunu oluşturmak istiyorsunuz.

Sütun başlığı verildiğinde, değerleri doldurmanız gerekir. Aşağıdaki adımları izleyerek VBA Environ işlevini kullanarak bunu yapabilirsiniz. Daha sonra, endeks numarası verildiğinde, hangi endeksin hangi değeri çağırdığı tahminini ortadan kaldırarak o endeksin değerini bulabilirsiniz. Not: Tüm bu değerler sisteminize bağlı olarak farklılık gösterebilir.
Adım 1: Sisteminizdeki tüm Ortam değişkeni değerlerini yazdırmak için bir alt rutin oluşturun. Daha sonra, VBA'daki giriş kutusu işlevini kullanarak bunu arayabilirsiniz .

Adım 2: Tekrarlayan bir değişken tanımlayın ve bunu FOR döngüsünde 50 kereden fazla çalıştırın (kaç tane ortam değişkeniniz olduğuna bağlı olarak).

Adım 3: FOR döngüsünde, ilk sütundaki indeks değerini verin. İkinci satırdan başlamak istediğiniz için, Cells fonksiyonunda tüm 'i' değerlerini 1 ile artırın.

Adım 4: VBA Environ fonksiyonunu çağırarak bu endekslerin değerlerini yazdırın ve Cells fonksiyonunu kullanarak ikinci sütuna yazdırın .

Adım 5: Döngüyü sürdürün.

Adım 6: Kullanıcıdan 1'den 48'e kadar sayılar arasında bir girdi değişkeni alın (bunun test edildiği sistemde yalnızca 48 değişken vardı).

Adım 7: Güncel tarihi alın ve bir değişkende saklayın.

Adım 8: Sonucu VBA Cells fonksiyonunu kullanarak bir değişkene atayın .

Burada, başlıkları işlemek için tüm satırlara 1 eklendiğinden girdi bir artırılır.
Adım 9: Sonucu bir MsgBox fonksiyonunda yazdırın .

vbInformation, MsgBox fonksiyonunda mavi “i” ikonunu yazdırmak için kullanılan değişken bir sabittir.
Kod:
Sub GetAllEnvVar()
Dim i As Long
For i = 1 To 50
Cells(i + 1, 1).Value = i
Cells(i + 1, 2).Value = Environ(i)
Next i
Dim inp As Integer
inp = InputBox(“Enter the number (from 1 to 48) to view the Environment variable”)
res = Cells(inp, 2).Value
MsgBox “The environment value of ” & inp & ” is: ” & res
End Sub
Adım 10: “F5” tuşuna basarak veya Excel Çalışma Kitabına gidip “Geliştirici” bölümünün altında “Makrolar”ı seçerek alt rutini çalıştırın.

Daha sonra çalıştırmak istediğiniz Makroyu seçip “Çalıştır”a tıklayın.

Bu, çalışma sayfasındaki değerleri yazdırır.

Ve gösterildiği gibi bir Giriş Kutusu açın. Değerini görmek istediğiniz sayıyı girin, ardından "Tamam"a tıklayın. Bu, 8. dizindeki ortam değişkeninin değerini yazdırır.


Örnek 2
Burada, bir düğmeye tıkladığımızda kullanıcı adı, sistem türü vb. gibi sisteminiz hakkında bilgi verecek bir Kullanıcı Formu oluşturmalıyız. Bu, ortam değişkenlerinin değerlerini bulan VBA Environ kullanılarak yapılabilir. Aşağıda açıklanan bunun nasıl yapılacağına dair adımları takip edebilirsiniz.
Adım 1: VBA Editöründe “Ekle”yi ve ardından “Kullanıcı Formu”nu seçin.

Bu, aşağıda gösterildiği gibi boş bir kullanıcı formu oluşturacaktır.

Bu UserForm'u tercihlerinize göre özelleştirebilirsiniz. Kullanıcı formunun Başlığını değiştirin.

Adım 2: UserForm’a bir “Etiket” ekleyin ve özelliklerini özelleştirin.


Adım 3: Şimdi bir komut düğmesi ekleyin ve özelliklerini özelleştirin.


Özellikler'deki Yazı Tipi seçeneğinin yanındaki “…” öğesine tıklayarak yazı tiplerini ve görünümlerini değiştirin .

Şimdi UserForm'un şu şekilde görünmesi gerekiyor.

Adım 4: “Buraya Tıkla” düğmesine tıkladığınızda ne olacağını kodlamak için VBA Editörünü açmak üzere komut düğmesine çift tıklayın. Komut düğmesinin adıyla özel bir alt rutin oluşturur.

Adım 5: “OS” değişkenini kullanarak işletim sisteminin Ortam değerini bulun.

Adım 6: “username” değişkeniyle sistemin şu anda etkin olan kullanıcısını bulun. Environ işlevindeki değişkenlerin büyük/küçük harfe duyarlı olmadığını unutmayın.

Adım 7: “NUMBER_OF_PROCESSORS” değişkenini kullanarak sisteminizdeki işlemci sayısını bulun.

Adım 8: Tüm değerleri bir dize değişkeninde saklayın.

VBA'daki vbCrLf sabiti, yeni satır karakter dizisini temsil etmek için kullanılır. Genellikle , çok satırlı metin oluşturmak veya çıktıyı satır sonlarını içerecek şekilde biçimlendirmek istediğinizde dizelere satır sonu veya satır başı eklemek için kullanılır .
Burada,
- “vb” Visual Basic’i ifade eder.
- “CrLf”, metin dosyalarında ve iletişim protokollerinde satır sonunu belirtmek ve imleci bir sonraki satırın başına taşımak için kullanılan kontrol karakterleri olan Satır Başı ve Satır Beslemesi anlamına gelir.
Adım 9: Bu mesaj dizesini bir MsgBox fonksiyonunda yazdırın. Burada, Mesaj Kutusu'ndaki "i" simgesi için vbInformation sabitini kullanın. Ayrıca, görüntülenmesini istediğiniz mesaj kutusunun başlığını yazın.

Adım 10: Unload fonksiyonunu çağırarak UserForm’u kapatın .

Kod:
Private Sub CommandButton1_Click()
Dim os As String
os = Environ(“OS”)
Dim username As String
username = Environ(“USERNAME”)
Dim no_of_processors As String
no_of_processors = Environ(“NUMBER_OF_PROCESSORS”)
Dim message As String
message = “Operating System: ” & os & vbCrLf & _
“Logged-in User: ” & username & vbCrLf & _
“Number of processors in the system: ” & no_of_processors
MsgBox message, vbInformation, “System Information”
Unload UserForm1
End Sub
Adım 11: VBA Editörünün araç çubuğundaki yeşil oka tıklayarak UserForm'u çalıştırın. Sisteminizin bilgilerini görüntülemek için düğmeye tıklayın.


“Buraya Tıklayın” butonuna tıkladıktan sonra, sistem bilgilerinizi gösteren bir Mesaj Kutusu açılır penceresi göreceksiniz.

Böylelikle sistem ayarlarınızı görüntülemek için bir UserForm başarıyla oluşturmuş oldunuz.
Dikkat Edilmesi Gereken Önemli Noktalar
- Ortam değişkeninin varlığını doğrulamak için döndürülen dizenin uzunluğunu kontrol edin. Boş bir dize, değişkenin var olmadığını gösterir.
- Ortam değişkeninin doğru ve büyük/küçük harfe duyarlı olmayan adını kullanın. Ortam değişkeni adları büyük/küçük harfe duyarlı değildir.
- Ortam değişkenlerinin kullanılabilirliğinin ve davranışının farklı işletim sistemleri arasında değişebileceğini unutmayın. Kodunuzu hedef sistemlerde test edin.
- Doğrulama yapmadan ortam değişkeni adlarını sabit kodlamaya çalışmayın. Değişken adları sistemler arasında farklılık gösterebilir ve sabit kodlama hatalara yol açabilir.
- Environ fonksiyonuyla çalışırken VBA'da hata yönetimini göz ardı etmeyin .
