Excel VBA ile Dosya Kopyalama Nasıl Yapılır?

Excel VBA ile Dosya Kopyalama Nasıl Yapılır?
Excel VBA ile Dosya Kopyalama Nasıl Yapılır?

Herkese selamlar. İşimde yaşadığım değişikliklerden dolayı, bir süredir blogda yeni içerik çıkamadım. Yine işimden kaynaklı gelişmelerden dolayı, Excel hayatımın göbeğine yerleşti. Ben de hem kendim daha sonra aradığımda bulmak, hem de Excel ve Visual Basic öğrenmek isteyenler için not olması amacıyla "Excel'le Nasıl Yapılır?" formatında içeriklere başlamaya karar verdim. Bu da bizim ilk dersimiz olsun. Visual Basic'le daha önce hiç çalışmadıysanız, ya da hiç programlama bilginiz yoksa; ilk etapta uzaylı gibi görünebilir. Ama suya girince insan alışıyor.

Hadi ilk içeriğe geçelim.

Excel VBA ile Dosya Kopyalama

Sub Kopyala()
    Dim FSO As New FileSystemObject
    Dim KaynakKlasor As String
    Dim KopyalanacakKlasor As String
    Dim KaynakKlasordekiDosya As Object

    KaynakKlasor = "C:\Users\user1\Desktop\hisseseneditarama\tablolar\"
    KopyalanacakKlasor = "C:\Users\user1\Desktop\hisseseneditarama\table\"
   
    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each KaynakKlasordekiDosya In FSO.GetFolder(KaynakKlasor).Files
         KaynakKlasordekiDosya.Copy KopyalanacakKlasor
    Next KaynakKlasordekiDosya

End Sub
Kodun anlaşılır olduğunu düşünüyorum ama kısaca ne yaptığımızı da anlatayım. 
  • Kopyala adında bir sub tanımladık. 
  • FSO adında bir dosya sistemi objesi tanımladık. 
  • KaynakKlasor adında bir string (metin) değişkeni tanımladık. 
  • KopyalanacakKlasor adında bir başka metin değişkeni tanımladık. 
  • KaynakKlasordekiDosya adında bir obje tanımladık. 
  • Sonra bu değişkenlere atamalar yaptık. 
  • Kaynak klasörün yolunu, kopyalanacak klasörün yolunu atadık. 
  • FSO objemizi set ettik. 
  • Sonra da For Each döngüsünü kurduk ve kaynak klasör içindeki her dosyayı kopyalanacak klasörün içine .Copy metoduyla kopyaladık. 
  • En sonda da End Sub diyerek sub'un bittiğini Excel'e bildirdik.

Excel ile Neden Dosya Kopyalamaya İhtiyaç Duyarsınız?

Aslında ben klasördeki bütün dosyaların adını değiştirmek üzere bir şeyler yazmaya çalışıyordum ama kopyalarken değiştirmenin daha kolay olacağını düşünerek bu metodu denedim. Eğer çok fazla sayıda dosya varsa -ve Excel'le işlemeniz gerekiyorsa- VBA'da kopyalama metodunu kullanabilirsiniz. Yeniden adlandırma gerekiyorsa, dosyaların ilk sürümlerine dokunmadan yapmak için kopyalama metodunu kullanabilirsiniz. Ya da size ne için lazımsa onun için Excelle bir klasör içindeki dosyaların tümünü birden kopyalamayı tercih edebilirsiniz.

Bitirmeden not: Eğer Microsoft Office ürünü olan Excel'i değil de Libre Calc ya da Open Office gibi uygulamaları kullanıyorsanız; bu metodları ilgili ürüne göre özelleştirmeniz gerekir. O yüzden "Librede denedim ama çalışmadı." demeden önce FSO kullanımını ilgili programa göre uyarlamalısınız. 😊
Daha yeni Daha eski

İletişim Formu