• VBA'ya giriş, makrolar, Excel'de programlama. VBA programlama dilinde Excel'de makro nasıl yazılır

    İşlev Referansı Excel sayfası Windows Yardımı .chm biçiminde bir Excel çalışma sayfası işlev referansıdır. Dosya, Rusça ve İngilizce olarak Excel sayfası işlevlerinin tam bir listesini içerir ve işlevlerin kullanımı ve uygulamasına ilişkin örneklerle sağlanır. Kılavuz hem yeni başlayanlar hem de daha deneyimli kullanıcılar için faydalı olabilir.

    Dosya formatı:.chm

    Excel Sayfası İşlev Referansı(532,2 KiB, 15.462 indirme)

    MSOffice'de VBA Programlama, yeni başlayanlar için VBA'da programlamaya çok iyi bir eğitimdir. Kitap sertifikalı bir öğretmen tarafından yazılmıştır. Microsoft Office Yetkin kod listeleriyle donatılmış, anlaşılması kolay bir dil. Ders kitabı yalnızca programlamayı öğrenmenize yardımcı olmayacak Microsoft Excel, ama aynı zamanda Microsoft Word ve Microsoft Projesi.

    Dosya formatı:.pdf

    MS Office'te VBA Programlama(4,1 MiB, 26.659 indirme)
    Bu dosyayı indirme izniniz yok. Belki siteye kayıtlı değilsiniz. Kaydolun ve tekrar indirmeyi deneyin.

    Walkenbach J. Profesyonel programlama VBA Excel'i 2003 - belki de yeni başlayanlar için en popüler başlangıç ​​kitabı. Birçoğu onunla başladı. Doğru, bu eğitimin basılı versiyonunda her zaman hafife alınması gerekmeyen kodların listeleri kullanılıyor - çoğu zaman yazım hataları var ve İngilizce karakterler yerine Rusça karakterler var. Bu nedenle kişisel olarak kodları doğrudan kitaptan kopyalamamanızı, VBA düzenleyicisinde manuel olarak yeniden yazmanızı tavsiye ederim. Böylece daha iyi hatırlanacak ve kendinizi hata aramaktan kurtaracaksınız.

    Dosya formatı:.pdf

    Office 2007. Eğitim - Microsoft Office uygulamalarının arayüzüne ve ana özelliklerine daha yakından bakmaya karar verirseniz bu kitabı okumanızı tavsiye ederim. Excel, Word, Outlook, Power Point, Access gibi uygulamalarda başarılı çalışma için gereken her şeyi açıklar. Okuduktan sonra güzel sunumlar ve bilgilendirici grafikler oluşturabilecek, Outlook'ta görevler oluşturabilecek ve Access'te veritabanları oluşturabileceksiniz.

    Dosya formatı:.pdf

    Rus yardımı Visual Basic for Application(VBA) - Bu, içinde yer alan resmi Visual Basic for Application(VBA) referansıdır. Microsoft paketi Ofis 97. Sonra yardım hala Ruslaştırıldı. Artık ofisin tüm sürümlerinde VBA yardımının yerelleştirmeden bağımsız olarak yalnızca İngilizce olarak mevcut olduğu bir sır değil. Ve herkes burjuva dilini okuyamaz (pratikte görüldüğü gibi katlanılabilir bir düzeyde bile).
    Seni hemen uyarmak istiyorum çünkü. yardım güzel içindir eski versiyon, tüm yöntemler ve özellikler burada açıklanmamıştır. Ancak bunların çoğu hala açıklanmaktadır ve umarım bu referans, VBA'nın ilk çalışmasında size yardımcı olacaktır.

    Dosya formatı:.help dosyası

    ENG_VBA.zip(1,1 MiB, 9.164 indirme)
    Bu dosyayı indirme izniniz yok. Belki siteye kayıtlı değilsiniz. Kaydolun ve tekrar indirmeyi deneyin.

    Nesneler Shell_RegExp ve benzeri - aşağıdaki gibi nesnelerle çalışma örneklerinden oluşan bir koleksiyon: Shell, RegExp, FileSystemObject, WshShell, Dictionary, WshNetwork, WScript, WScript sabitleri ve işlevleri. Tüm örnekler bölümler halinde yapılandırılmıştır ve her bir nesnenin özellikleri ve yöntemleri için referans olarak yapılmıştır. Bu nesneleri işinizde çok sık kullanmazsanız ve bir şeyleri unutursanız çok kullanışlıdır.

    Talimat

    Microsoft Office Excel'i başlatın. Gerekirse oluşturun yeni belge. Bunu yapmak için Ctrl + N tuşlarına basın veya "Dosya" menüsünü genişletin ve "Yeni ..." seçeneğini seçin. Daha sonra "Kitap Oluştur" panelindeki "Boş Kitap" linkine tıklayın.

    Visual Basic Düzenleyici penceresini açın. Bunu yapmak için Alt+F11 tuşlarına basın veya Araçlar menüsünün Makro bölümünden Visual Basic Düzenleyicisi'ni seçin. Orada bunun için bir nesne ağacını görüntüleyen bir proje paneli göreceksiniz. excel kitapları, içerdiği formlar, modüller ve sınıf modüllerinin yanı sıra.

    Gerekirse formlar oluşturun. Ana menüden Ekle'ye ve ardından UserForm'a tıklayın. Proje panelinin Formlar bölümünde şunu ekleyin: yeni eleman. Form oluşturulduğunda otomatik olarak açılacaktır. Kontrolleri Araç Kutusundan form penceresine sürüklemek için fareyi kullanın. Boyutlarını ve konumlarını değiştirin. Fareyle seçtikten sonra Özellikler panelinde özelliklerini değiştirin. Ctrl+S tuşlarına basarak formları kaydedin.

    İhtiyaç duyduğunuz kadar modül veya sınıf modülü oluşturun. Bunu yapmak için ana menünün Ekle bölümünde Modül veya Sınıf Modülü öğelerini seçin. Proje penceresinde ilgili öğelere çift tıklayarak gerekli modüllerin veya formların kod düzenleme pencerelerini açın.

    Sınıf modüllerine sınıf bildirimleri ekleyin. Bunları Class anahtar sözcüğüyle tanımlayın:
    Sınıf CSampleClass
    son sınıf

    Sınıf tanımlarına yöntemler, modüllere saplama işlevleri ve prosedürler ekleyin. Fonksiyonlar, Function anahtar sözcüğü kullanılarak ve ardından parantez içine alınmış, virgüllerle ayrılmış bir ad ve bir dizi parametre kullanılarak bildirilir. Örneğin:
    Fonksiyon ÖrnekFonksiyon(a, b, c)
    bitiş fonksiyonu
    Prosedürler benzer şekilde bildirilir (yalnızca Sub anahtar sözcüğü kullanılarak):
    Alt Örnek Prosedür(a,b)
    son alt

    Sınıf üyelerinin yanı sıra genel ve yerel (işlevlerde ve yöntemlerde) değişkenleri bildirin. Bunu yapmak için Dim...As yan tümcesini kullanın (değişkenin türü As anahtar sözcüğünden sonra belirtilir). Örneğin, bir kitap nesnesine referansı içeren bir oWB değişken bildirimi şu şekilde görünebilir:
    oWB'yi Excel.Workbook Olarak Dim
    Boyutu parantez içinde belirterek bir dizi bildirebilirsiniz:
    aWBooks(10)'u Excel.Workbook Olarak Karart

    Fonksiyonların, prosedürlerin, sınıf yöntemlerinin kodlarında değişiklik yaparak programın algoritmasını uygulayın. Yürütme akışını kontrol etmek için Visual Basic kontrol yapılarını kullanın. Kendi veri yapılarınızla, oluşturulan form nesnelerinizle ve yerleşik Excel nesnelerinizle çalışın.

    Kaynaklar:

    • excel'de belge nasıl oluşturulur

    Visual Basic, Microsoft tarafından geliştirilen ve bir programlama dili içeren bir yazılım geliştirme ortamıdır. Önceki BASIC dilinin tarzını ve kısmen sözdizimini miras aldı. Visual Basic geliştirme ortamı, kullanıcı arayüzü tasarımıyla çalışmaya yönelik araçlar içerir.

    İhtiyacın olacak

    Talimat

    Visual Studio programını çalıştırın, oluşturun proje Bir Visual Basic programı oluşturmak için. Bunu yapmak için "Dosya" menüsünü seçin ve içinde "Oluştur" komutunu seçin. proje". İletişim kutusunda " seçeneğini seçin Windows uygulaması”ve“ Tamam ”düğmesine tıklayın. Arayüzde bir form açılacaktır. Varsayılan proje WindowsApplication1 olarak adlandırılacaktır. Visual Basic projesi, programın bölümlerinin saklandığı ve düzenlendiği yerdir. Oluşturulduğunda açılan form proje a, program başlatıldığında görüntülenecek pencereyi temsil eder. Buna göre, programda birkaç pencere varsa, o zaman proje Birden fazla form içerebilir.

    Araç Kutusundan forma kontroller ekleyin. Pencerenin sol tarafında bulunur ve "Tüm Formlar", "Bileşenler", "Veriler" dahil olmak üzere birkaç sekme içerir. Her sekmede, uygulama oluşturulduğunda eklenebilecek kontrolleri veya bileşenleri temsil eden belirli bir işlem kümesi bulunur. proje ve Visual Studio'da.

    Araç kutusunu seçin, Tüm Formlar sekmesine tıklayın, Panel kontrolünü formunuzun sol üst köşesine sürükleyin. Benzer şekilde, şuraya taşıyın: proje Visual Basic programında "Metin Alanı" öğesi. Konumunu değiştirmek için farenin sol tuşuyla formda istediğiniz yere sürüklemeniz yeterlidir.

    Benzer şekilde metin bloğunun sağına düğmeler ekleyin. Ardından türle eşleşen öğeyi seçin proje ancak örneğin "Web tarayıcısı" ve panelin altına yerleştirin. Eklenen her kontrol, görünümünü ve bu öğe tarafından gerçekleştirilen görevleri belirleyen özel bir kod içerir. Örneğin bir düğmenin görünümünü değiştirmek, gerçekleştirilecek belirli bir görevi eklemek için kendi kodunuzu oluşturabilirsiniz, ancak bu zahmetli bir süreçtir. Düzenlemeyle bunu başarmak çok daha kolay proje ve Visual Basic'te.

    Daha sonra kurulumu yapın dış görünüş programlara davranışlarını tanımlayan kod ekleyin. Gerektiğinde özel kontroller ekleyin. Daha sonra bir deneme çalıştırması gerçekleştirin ve programınızı test edin, gerekirse yapıcıya geri dönün proje ve Visual Basic'i kullanarak kusurları düzeltin.

    İlgili videolar

    Ana amaç Microsoft uygulamaları Ofis - elektronik tablolardaki verilerle çalışın. Kural olarak bu sayısal verilerdir, ancak bazen hücreler metin sabitleri içerir. Ayrıca tabloların tasarımında da metin kullanıldığı için aktarımın buna göre düzenlenmesi gerekmektedir. kelimelerÇalışırken ve elektronik tablo düzenleyicide zaman zaman ortaya çıkar.

    Talimat

    Excel'i başlatın, yükleyin istenen belge ve metin kaydırma seçeneğini ayarlamak istediğiniz hücrelere gidin kelimeler.

    Excel için VBA makroları yazmayı nasıl öğreneceğime dair ipuçlarına ek olarak, size hikayemi anlatacağım - VBA'da programlamayı nasıl öğrendiğim.

    Her şey geçen yüzyılda başladı 1993 okulda olduğum yıl. Bilgisayar bilimleri derslerinde sınıfımızda Corvette adında canavar bilgisayarlar vardı ve onların üzerine BASIC dilinde basit programlar yazdık. Bu bilgisayarlar "normal" (IBM uyumlu) olanlardan oldukça belirgin bir şekilde farklıydı - monokrom bir ekrana sahiplerdi, tamamen yoktu Sabit disk ve disket sürücüleri ve üzerinde başlatılan tek şey (yüklemeden sonra otomatik olarak) Temel dil yorumlayıcısıydı.

    Aslında programlamaya daha önce ilgi göstermiştim - 9 yaşındayken, 1988 tarihli "Modeler-constructor" dergisinde (ki bunu baştan sona düzenli olarak okudum) "Uzman" bilgisayarı için bazı makine kodlarını gördüğümde. O zamanlar bilgisayara bazı harfleri ve sayıları girerek istediğimi yapmasını sağlama fırsatı beni çok ilgilendiriyordu. Ne yazık ki, ailemin o zamanki mali durumu arzulanan çok şey bıraktı ve herhangi bir bilgisayar benzerinin satın alınması söz konusu bile olamazdı. Bir gün bir bilgisayarım olur ve onu kontrol edebilirim umuduyla bu kodları bir günlükten not defterine kopyalarken çok eğlendim :)

    Çünkü o zamanlar ev bilgisayarı bir lükstü (sadece birkaçının evinde Spectrum vardı ve birisi pahalı bir IBM PC 286 alacak kadar şanslıydı), Basic'te yalnızca okulda ustalaştım, bazen okuldan sonra oyalandım. Okul müfredatı"Bilişim" konusunda sadece 2 yıllık eğitim verildi (10 ve 11. sınıflar), ancak çocukluğumdan beri her türlü elektronikle ilgileniyordum, bu yüzden 8. sınıftan itibaren derslere katılmaya başladım ve orada bilgisayarla ilgili tek talimat kitabını okudum. Corvette (işte programlama yolculuğumun başladığı bu kitap, o da PDF formatında) ve basit programlar oluşturmaya çalışıyorum. Kısa süre sonra öğretmen beni ana bilgisayarın önüne almaya başladı (yalnızca onun programları 5,25 inçlik bir diskete kaydetme yeteneği vardı - ve o zaman bile bunun için çok çalışmam gerekiyordu) - ve programlarım çok daha karmaşık hale geldi. Bir zamanlar "Poker" oyununu bile uygulamayı başardım GUI(yaklaşık 2000 satır kod ortaya çıktı) - bu, Temel yorumlayıcının ekranda yalnızca sembollerin ve grafik temellerinin görüntülenmesine izin vermesine rağmen.
    Sonuç olarak, okulun sonunda ( 1996 yıl) Döngüleri ustaca kullandım ve algoritma derleme konusunda biraz deneyimim vardı.

    Algoritmalara gelince, bu terim bende hâlâ alerjiye neden oluyor. Okuldayken, bilgisayar bilimleri derslerinde (oldukça iyi çalıştım ve her türlü Olimpiyatın kazananları olarak biz, yüksek matematik ve bilgisayar bilimleri alanında ek eğitim için Ural Devlet Üniversitesi'ndeki yarı zamanlı bir okula gönderildik) ), bir tür sözde kodla ( Rusça ile Turbo Pascal'ın karışımları) algoritmalar yazmak zorunda kaldık. Programlamada akranlarımın gözle görülür şekilde gerisinde kaldığım için (aynı Pascal'ın ve çok daha fazlasının olduğu IBM uyumlu bilgisayarlarda çalıştılar ve ben BASIC dışında hiçbir şey bilmiyordum ve görmedim), ustalaşmak çok zordu algoritmik dilin sözdizimi. Ayrıca, bir algoritma derlemek için neden bir saat harcamanız gerektiğini anlamadım (ve hala anlamıyorum) en basit program, eğer düzenleyiciyi açabilir ve birkaç satır kod yazabilirseniz (benim için kim bilir) ingilizce dili, sözdizimi TEMEL dil bu şifreli algoritmik sözde koddan çok daha açıktır). Akış şemalarından hiç söz edilmiyor - 10 satırlık en basit programlar için akış şemaları (birkaç A4 formatında) çizmek zorunda kaldığımız enstitüyü hatırladığım kadarıyla, programlamayı öğrenme arzusunun nasıl olamayacağını artık anlamıyorum. bütün bunlardan sonra ortadan kaybol..

    Okuldan mezun olduktan sonra enstitüde biraz Turbo Pascal çalıştım, programlama eğitimim on yıl boyunca durduruldu (evde ve işte bilgisayar yoktu) ve bilgisayar bilimleri derslerinde okuduğum neredeyse her şeyi unuttum.
    Ancak, 2004 Ertesi yıl, işimde yetkililer nihayet daktiloyu (zaten tuşlara çok ustaca bastığım) basit bir bilgisayarla (64 megabayt RAM ve Windows 98'e sahip bir Pentium-1'di) değiştirmeye karar verdiler. Windows'u ilk kez gördüğüm için bilgisayarda nasıl çalışılacağını sıfırdan öğrenmek zorunda kaldım.

    Bilgisayara hızlı bir şekilde hakim oldum çünkü. zaten ikinci günde, işlemciyi hız aşırtmaya yönelik başarısız bir girişimin ardından Windows çöktü ve işletim sisteminin ve programların yeniden kurulumunda acilen ustalaşmak zorunda kaldım. Bilgisayarla tanıştığım ilk gün kurulum konusunda bana yardımcı olan kişi işletim sistemi ve ana programlar bana sürekli yardımcı olamadı. Bana Windows ve Office dağıtımlarını, çeşitli yardımcı programlara ait birkaç diski bıraktı, ardından Word'e nasıl metin gireceğimi ve biçimlendireceğimi, program menüsü aracılığıyla dosyaları nasıl açıp kaydedeceğimi anlattı ve bana iyi şanslar dileyerek ayrıldı. . Sisteme "rastgele" hakim olmaktan başka seçeneğim yoktu.

    Basılı belgeleri kaydetme ve düzenleme yeteneği (daktilodan sonra) ne büyük mutluluktu ... ve Word'ün başlamasının yaklaşık 20-30 saniye sürmesinden (ve CorelDRAW'ın birkaç dakika yüklenmesinden) hiç utanmadım. Bilgisayar benim ana hobim haline geldi - birkaç ay içinde ana programlarda uzmanlaştım, altı ay sonra kayıt defterini tüm gücümle karıştırdım, bozuk Windows'u geri yükledim (Win98'i hatırlayanlar beni anlayacaktır), bu arada bilgisayar mimarisine hakim oldum (sürekli bellek modüllerini takmak, ek bağlantı kurmak zorunda kaldım sabit diskler, ve benzeri.)

    Görevim çeşitli belgeler (kanunlar, emirler vb.) hazırlamaktı ve bunu nasıl basitleştirebileceğimi düşünmeye başladım (her gün aynı şeyi yapmaktan hoşlanmıyorum). Hemen Microsoft Word menüsündeki "Visual Basic Editor" maddesine dikkat çektim ve nasıl bir canavar olduğunu gördüm. Etrafı araştırdım, yerleşik yardıma baktım ama çok az şey anladım. Bu Temel, okulda okuduğuma hiç benzemiyordu. Düğmeler ve metin alanları içeren formlar çizebileceğinizi anladım ancak bunun nasıl çalıştırılacağını hala anlamadım. İnternet erişimi olmadığı için kullanım örneklerine bakamadım.

    Yani bu işi bırakırdım ama sonra, güzel bir gün, Kelime dosyaları yavaş yavaş açılmaya başladı ve açıldıklarında bir tür hata ortaya çıkmaya başladı. Anlamaya başladım ve hatanın, gizemli bir şekilde tüm belgelerimde yer alan 20 satırlık bir makroyu çalıştırırken ortaya çıktığını fark ettim. Koda baktıktan sonra karşımda açılan tüm Word dosyalarına bulaşan ve bazı verileri ağ üzerinden göndermeyi başaramayan bir makro virüsünden başka bir şey olmadığını fark ettim. (bu arada, bu bir makro virüsü ilk ve son görüşümdü - o zamandan beri binlerce Excel dosyaları ve Word ve bunların içinde hiç makro virüs görmedim). Bu ilgimi çekti - eğer bir makro bilgisayardan veri toplayabiliyorsa, kendisini diğer dosyalara kopyalayabiliyorsa ve hatta başka bir IP adresine bir şeyler gönderebiliyorsa, o zaman makroların yardımıyla neredeyse her şeyi yapabilirsiniz!

    Ve makrolarda ustalaşmaya başladım - yerleşik VBA yardımını okudum, bu yardımdaki kod örneklerini denedim, basit döngüler yazdım (okuldan hatırladığım), basit şekiller çizdim vb. Might ve main ile Word'deki makroların kaydını kullandım ve ortaya çıkan kodu optimize ettim. (O zamanlar Excel ile çalışmadım - ne işe yarayacağını gerçekten anlamadım). Bu çok az fayda sağladı - ama benim için ilginçti çünkü. Liseden beri programlamayla ilgileniyorum. Yavaş yavaş işim basitleşmeye başladı, ancak otomatikleştirmek tüm eylemleri manuel olarak gerçekleştirmekten daha fazla zaman aldı.

    Bir gün, 2006 yıl gerçekten VBA programlama becerilerine ihtiyacım vardı. İş için, aynı türde birçok tahliye planı oluşturmak (CorelDRAW'da çizmek) gerekliydi (bunlar oklar ve belirli simgeler içeren odaların çizimleridir). Bunları manuel olarak çizmek mümkündü, ancak sonucun GOST'a uygun olması için elemanlar arasındaki farklı oranların ve mesafelerin gözlemlenmesi gerekiyordu. Simgeleri sayfanın etrafında hareket ettirmek, çizgilerden ve komşu simgelerden mesafeyi "gözle" ayarlamak, hızla yoruldu. Ayrıca her şeyi hizalamam, hızlı ve güzel bir şekilde noktalı çizgileri birleştirmem, her seferinde ön baskı yapmam vb. gerekiyordu. vb. Sonuç olarak, bu süreci otomatikleştirmek için 2 veya 3 ay harcayarak çizim yapma süresini birkaç kat azaltmayı başardım. Ek olarak, gözlerinin önünde mucizeler gerçekleştiğinde meslektaşlarımın yüzlerine bakmak güzeldi - ekranda çizgiler kendi kendine çizildi ve hareket etti, oklar hizalandı ve büküldü, her şey titredi ve ben bir dakika içinde çoktan dışarı çıkıyordum bilgisayardan matbaaya gönderilmeye hazır bir disket (dosyanın iki kopyası basılmaya hazır olarak)

    Dışarıda yaz mevsimiydi 2008 Yılın. Yapacak hiçbir şeyim yoktu ve forumlarda tavsiye arayan insanlara Excel'deki sorunları çözme konusunda yardım etmeye karar verdim. Hızla bu işe dahil oldum - minnettarlığımı hissettiğim insanlardan şükran duymak güzeldi " sihirli düğme» Saatlerce tekrarlanan işlerden tasarruf sağladık. Ek olarak, yardım çok az çaba gerektiriyordu - bazen 2-3 satır kod yazmak yeterliydi. Daha sonra VBA ve Excel'i hala çok ama çok az bildiğimi anlamaya başladım ve daha deneyimli meslektaşlarımın sunduğu çözümleri anlayarak öğrenmeye başladım.

    Forumlardaki herkesin Excel'e güvenmeye başlamasına yardımcı olduğum 2 veya 3 yıl sürdü. İlk başta çok basit makrolar yazdım, sonra daha karmaşık makrolar yazdım. Bir yıl sonra emirlerle benimle iletişime geçmeye başladılar - sonra bir kuruş karşılığında çalışmaya hazırdım (çünkü amaç para kazanmak değil, insanlara yardım etmekti). Ücret aldığım az çok ciddi ilk sipariş, seçim komitesi çalışanları için bir programdı - Excel'de bir veritabanı uygulamak zorunda kaldım. 3 hafta süren işkence ve değişiklikler için (kendisi tam olarak neye ihtiyacı olduğunu bilmeyen bir öğrenci programı sipariş etti), program yazıldı - ve bundan yaklaşık 3.500 ruble kazandım. O zamandan beri öğrencilerle çalışmadım - yeterli para yok, görev tanımı yok, çok fazla değişiklik talebi var (çünkü öğretmen bir şeyden hoşlanmadı) ve genel olarak programın farkına varmak hoş değil. yalnızca 1 kez başlatılacak ve sonrasında kimse kullanmayacak.

    İÇİNDE 2009 yıl bir web sitesi web sitesi yaptım. Buna site demek biraz abartılı oldu; tek sayfadan oluşuyordu (o zamanlar böyle görünüyordu). Anladığınız gibi böyle bir sitenin hiçbir faydası olamaz - siteyi ziyaret edenler zaten ne yaptığımı biliyordu. Ancak sitenin hem bana hem de ziyaretçilerine fayda sağlaması için daha fazlasını istedim. Bu nedenle acilen site inşası üzerinde çalışmak zorunda kaldım ve bir arkadaşımın yardımıyla birkaç ay sonra site şu şekilde bir motor satın aldı: CMS Drupal(Bunu kendim yapamazdım). Sitede ne yayınlayacağımı henüz çözemedim, bu yüzden kullanmaya başladım. not defteri- yararlı evrensel makroları ve işlevleri burada yayınlayın, böylece bunları her seferinde aramanıza gerek kalmaz farklı dosyalar Bunu ne zaman ve kime yaptığımı hatırlıyorum.

    Altı aydan kısa bir süre içinde sitenin trafiği artmaya başladı. Yüklediğim makroların birçok kişinin ilgisini çektiği ortaya çıktı ve bu bana kaynağı daha da geliştirmek için bir teşvik verdi - yüklemeye başladım anahtar teslimi çözümler Excel dosyaları ve eklentiler halinde sitenin işlevselliğine ve yapısına daha fazla dikkat edin. Aynı zamanda siparişlerin sayısı da artmaya başladı - site ziyaretçileri makroların olanaklarının sonsuz olduğunu gördüler ve işlerini otomatikleştirme talebiyle bana döndüler. Ancak yine de, programlamayı ciddi bir şekilde bir gelir kaynağı olarak düşünmek için çok az sipariş vardı - ayda 2-3 küçük sipariş vardı. Nispeten karmaşık bir program sipariş etseler bile, bu neşe getirmedi - deneyimsizliğimden dolayı hemen miktarı müzakere ettim ve sonra ruhumun nezaketinden dolayı kabul ettim. çeşitli iyileştirmeler programın orijinal görevinde bulunmayanlar. Bunun sonucunda haftalarca bir program üzerinde çalıştım ve çok az kazandım; çünkü başlangıçta yapılacak çok az şeyin olduğu düşünülüyordu.

    Ancak bu sefer (neredeyse bir yıl) boşa gitmedi - para kazanmadım ama geliştirme konusunda paha biçilmez deneyim kazandım Kullanıcı arayüzleri(Yüzlerce alan içeren giriş formları çizmek zorunda kaldım), Excel görevleri(web sitesi işleme, dosyalarla, resimlerle çalışma vb.), aynı zamanda müşterileri ve görevlerini yarım kelimeden anlamayı öğrenir (ah, bazı insanların karmaşık programlar için görevleri 10 kelimelik bir cümleyle nasıl formüle ettiğini görmeliydiniz) kelimeler...). Henüz telepat olamadım ama müşterinin gerçekte ne istediğini tahmin etmeye başladım ve insanlara tam olarak ihtiyaç duydukları şeyi teklif ettim (çoğu yardım istediğinde ne istediğini bilmiyor). Ve emir eksikliği olmasaydı her şey yoluna girecekti (o zamana kadar forumdaki insanlara yardım etmek sinir bozucu hale geldi - her gün aynı sorular, kimse aramayı kullanmak istemiyor ve hatta bedava yükleyici öğrenciler bile üstesinden geliyor).

    Ve sipariş sayısını nasıl artıracağımı düşünmeye başladım - hobimin nihayet somut gelir getirmeye başlamasını istedim. Genel olarak SEO, tasarım ve site oluşturmanın temellerinde uzmanlaşmak için yine site oluşturmaya başlamam gerekiyordu. Ve bir gün sitede hâlâ neyin eksik olduğunu fark ettim - büyük düğmeler sipariş vermek için. İki kere düşünmeden, 5 dakika içinde bu düğmeyi (artık solda düşünebileceğiniz) üst köşe sayfalar) sitenin tüm sayfalarına eklenmiştir. Sonucun gelmesi uzun sürmedi; bir ay içinde önceki yılın tamamından daha fazla sipariş aldım.

    Geldi 2012 yıl. Siparişlerin sayısı o kadar arttı ki, tek başıma onlara hakim olmam imkansızdı. Siparişlerin bir kısmını meslektaşlarıma aktarmaya başladım (özellikle büyük ve karmaşık siparişler), çünkü hala tüm parayı kazanamıyorum ve günlerce monitör başında oturmak istemiyorum. Bu arada asıl işimde (8:00 - 17:00 saatleri arasında mühendis olarak çalıştım) yerel internet sağlayıcısı) yük gözle görülür şekilde arttı ve makro yazmaya zamanım kalmadı çalışma zamanı. Sonuç olarak, sitenin geliştirilmesi için zaman kalmadı - akşamları siparişlerin yalnızca bir kısmını toplamayı başardım ve postada okunmamış mektuplar birikmeye başladı.

    Artık hayatımda bir şeyi değiştirmenin, iş ile programlama arasında bir seçim yapmanın zamanı gelmişti. Ve böylece, Temmuz 2012'nin ortasında bu seçimi yaptım - asıl işimde kendimi programlamaya (Excel için makroların geliştirilmesi) adamaya karar vererek bir istifa mektubu yazdım. O zamandan beri fazlasıyla boş zamanım var, bu yüzden siteyi yeniden genişletmeyi ve siparişler üzerinde daha aktif çalışmayı planlıyorum (müşterilerin makroları için birkaç hafta beklemek zorunda kaldığı durumlardan kaçınmak için).
    Bütün bunlardan ne çıkacak - henüz bilmiyorum, zaman gösterecek. Excel'e yönelik makro talebinin en az 2-3 yıl daha devam edeceğini düşünüyorum, dolayısıyla ekmeksiz ve tereyağsız kalmayacağım.

    Ayrıca yakın geleceğe yönelik planlar arasında Excel için paylaşımlı yazılım eklentilerinin geliştirilmesi ve yayınlanması da yer alıyor (bu alanda ilk yazma girişimleri iyi sonuçlar verdi).
    Ve sonra - veritabanları (web arayüzü ile) geliştirmeyi ve yavaş yavaş web hizmetleriyle çalışmaya geçmeyi planlıyorum.

    <спустя 4 года, решил продолжить статью>

    Ve şimdi bahçede 2016 yıl. Ne mutlu ki, Microsoft henüz Excel'de VBA'yı desteklemeyi bırakmadı, bu yüzden bu alanda çalışmaya devam ediyorum. Bu 4 yıl hayatımı çok değiştirdi - gelirim birkaç kat arttı, çok seyahat etmeye başladım, işe daha az zaman ayırdım. Makrolara yönelik siparişlerin sayısı sürekli artıyordu, bu yüzden birkaç programcıyla işbirliği yapmaya başladım ve zaman yetersizliğinden dolayı bunu tek başıma halledemediğimde emirleri onlara ilettim. Meslektaşlarımdan bazıları (kendilerine iş emri verdiğim) zamanla ortadan kayboldu, diğerleri ise tam tersine benimle daha aktif bir şekilde işbirliği yaptı - ve artık her türlü sorunu çözen bir ekibim var (bir meslektaşım basit makrolar alıyor ve yapıyor) onları hızlı, diğeri karmaşık makroları kullanarak yapar standart dışı çözümler, üçüncüsü, görevi birkaç hafta boyunca tartışmanız ve ardından bir ay daha yapmanız gereken "çamurlu" toplu siparişlerle ilgilidir, dördüncüsü formüller konusunda uzmanlaşır, beşincisi ayrıştırıcıları ayarlar vb. - herkesin kendine ait kendi faaliyet alanı).

    İyi bir ekip oluşturmak kolay bir iş değildi - aslında kendim kimseyi aramamış olmama rağmen (yarısı iş için bana başvurdu, geri kalanını kendim yazdım çünkü Excel forumlarındaki herkesi iyi uzmanlar olarak tanıyordum) , herkesle çalışmayı başaramadım uzun zaman. Bazıları ağda nadiren ortaya çıktı ve siparişlere yeterince hızlı yanıt vermedi, diğerleri işi daha çok bir hobi olarak algıladı (birdenbire çalışma arzusu yoksa, böyle bir kişi beni uyarmadan bir hafta, hatta bir ay boyunca ortadan kaybolabilir veya müşteri). Hatta bir kare beni para için dolandırmayı bile başardı (birkaç sipariş aldı ve komisyonumu ödemeden ortadan kayboldu). Ancak tüm bunlar geçmişte kaldı - artık benimle sadece kanıtlanmış adamlar (birkaç yıldır birlikte çalıştığım), her türlü karmaşıklıkta emir alan ve işi her zaman sona erdiren adamlar.

    "Kayıp" ile başa çıkmayı başardığımdan beri ( büyük miktar küçük siparişler, iyi bir gelir getirmesine rağmen zamanın% 100'ünü alıyor), Excel için evrensel eklentilerin geliştirilmesine ve tanıtımına daha fazla önem vermeye başladım. Şimdi cephanemde buna benzer 9 eklenti var, ancak yalnızca 5 tanesi başarıyla satılıyor: FillDocuments (yakın zamana kadar ilk işim gelir açısından liderler arasındaydı ve faydalı olabilecek her şey nedeniyle istikrarlı bir talep var) kullanıcıların belgeleri doldurması için zaten uygulandı), PastePictures (2012'den beri satışta, ancak nispeten yakın zamanda popülerlik kazanmaya başladı), Birleştirme (3 yıl önce programlarımın en karmaşıkıydı), Arama (en basiti) esasen DÜŞEYARA formülünün yerine geçen eklentiler - ancak kullanıcılar arasında çok popüler) ve Ayrıştırıcı (sitelerden ve dosyalardan veri toplamak için evrensel bir ayrıştırıcı, bugüne kadarki programlarımın en gelişmişi - 17.600 kod satırı). Ayrıştırıcıya gelince, 2013'te böyle bir şey yapmak bana kesinlikle gerçekçi görünmüyordu (ve bunu yapmanın imkansızlığından bahsederek müşterileri reddettim) tek elden çözüm Birleştirme gibi siteler için - fiyat işleme programları), ancak daha sonra site ayrıştırıcıları için siparişlerin sayısı artmaya başladı ve denemeye karar verdim ki bunu asla pişman olmadım - bu eklentiye dayalı çözümlerden elde edilen gelir tüm beklentilerimi aştı.

    Ancak tüm programlar başarılı olmadı. Genellikle bir programı (YandexMarket) satmayı reddettim - site çok sık değişti, program iyileştirmeler gerektiriyordu, gerekli verileri bulma algoritması açık değildi, sonra bir captcha belirdi - ve bunun üzerinde zaman kaybetmeye değmeyeceğine karar verdim Daha fazla gelişme parayı birkaç alıcıya iade ederek programlar. BarcodeScanner, Labels, SearchText gibi diğer programlar, geliştirmeye harcanan zamanın karşılığını almasına ve gelir elde etmeye devam etmesine rağmen, ilk beş programla karşılaştırılamaz.

    Yukarıda açıklanan evrensel eklentilerin geliştirilmesiyle, programın sözde "motoru" oluşturuldu - herhangi bir fikirden hızla satışa hazır bir çözüm oluşturmanıza olanak tanıyan bir dizi makro ve arayüz öğesi. İlk başta, motorun güncellemeleri desteklemesi gerekiyordu (böylece kullanıcı tek tıklamayla bir güncellemeyi kontrol edip yükleyebilirdi), daha sonra koruma işlevselliği elde etti (bilgisayar korsanları çözümlerime dikkat etmeye başladı, çünkü onlara olan talep her yıl arttı - ve icat etmem gerekiyordu çeşitli şemalar Excel'deki yerleşik kod korumasının birkaç saniye içinde kaldırılması nedeniyle iyi olmamasına rağmen yasa dışı kullanıma karşı koruma). Yol boyunca, sitenin yan tarafındaki programları etkinleştirme ve güncelleme işlevini yerine getirmem gerekiyordu - PHP ve MySQL'i biraz anlamaya başladım, program motoruyla etkileşime giren komut dosyaları oluşturdum.

    Son birkaç yıldır zamanımın çoğunu teknik destek sağlamaya (her yıl giderek daha fazla yazılım alıcısı oluyor) ve çözümlerimin en popüler ve gelecek vaat edeni olan ayrıştırıcı eklentisini geliştirmeye harcadım (I yeni işlevler ekleyin, özelleştirilmiş ayrıştırıcıların örneklerini yayınlayın). Ayrıştırıcı ve yeni program motoru sayesinde programlama seviyem önemli ölçüde arttı - kodum oldukça kaliteli olmasına ve 5 yıl önce hatasız çalışmasına rağmen, şimdi ihtiyaçla karşı karşıya kaldığımda kod tasarımına daha sorumlu bir yaklaşım benimsiyorum Binlerce satır kodlu eklentilerime uzun yıllardır destek veriyorum. Şimdi, tüm eklentilerde yeni (çok dilli) bir motorun kullanıma sunulmasıyla birlikte, kodu yeniden düzenleyerek (güncelleyerek) daha basit, daha anlaşılır ve daha evrensel hale getiriyorum. Bu arada, çok dillilik hakkında - Eklentilerimi BDT dışında satmaya karar verdim ve hatta ayrı bir web sitesi oluşturdum (orada yalnızca evrensel eklentiler yayınlamak için, farklı dillerde bir arayüz ve açıklama ile), ancak şu ana kadar' Bunu yapamayacak kadar tembelim. Belki bir gün eller buna ulaşır (ve şimdilik BDT'den yeterince alıcı var)

    Geleceğe yönelik planlar (Eylül 2016 itibariyle) Excel'de siteleri ayrıştırma yönünü geliştirmek ve son olarak programlarım için video talimatları hazırlamaktır (birkaç hafta boyunca programa yeni işlevler ekleyemeyecek kadar tembel değilim) tam bir referansın olmaması nedeniyle kullanıcılar ve onlar mevcut olanla baş edemiyorlar.Eh, video kaydetmeyi sevmiyorum))
    Artık uluslararası pazara girme zamanı geldi, çünkü tüm programlarım çok dilli hale geldi (her ne kadar çeviri şimdilik sadece İngilizce ve o zaman sadece kısmen)

    <продолжение следует>

    Excel2000".

    Neden sadece "World of Excel 2000" değil? Görünüşe göre, Excel'de olup biten her şeye nesne bakış açısından bakmayı, olup biten her şeyi nesneler üzerinde yapılan eylemler olarak değerlendirmeyi tercih ettiğim için. Ve bu kitaptaki nesnelerin tanımlarına oldukça fazla önem veriliyor. Aynı zamanda, değerlendirme çemberi yalnızca Excel'in nesnelerini içermez. Excel nesnelerinin dünyası daha geniştir. Öyle ya da böyle, Office 2000'in ortak nesneleri, diğer uygulamaların nesneleri tartışmada yer alıyor, örneğin kitapta Excel ile Access arasındaki ilişkiye çok dikkat ediliyor. Kitap, Excel nesnelerine ek olarak iki nesne grubunu daha ayrıntılı olarak tartışıyor - ADO ve OWC. Veritabanlarına erişimi düzenlemenize olanak tanıyan ADO nesneleri şüphesiz Excel dünyasının bir parçasıdır, çünkü çoğu zaman Excel, çeşitli kaynaklarda depolanan verileri işleyen uygulamadır. Excel işlevselliğine sahip OWC bileşenleri nesne modeli aynı zamanda Excel nesne dünyasının bir parçasıdır. Çözümünüz intranet veya Internet'e taşınıyorsa ve sayfaları Excel belgelerinin işlevselliğine sahip bir Web sitesi oluşturmak istiyorsanız bu nesneler vazgeçilmezdir.

    Bu kitapta neler bulunabilir ve kime yöneliktir?

    Bu kitap Excel'e dayalı çözümler üretenler için hazırlanmıştır. Elbette öncelikle halihazırda kullananlardan bahsediyoruz. programlamaÇözümlerini oluştururken VBA ve VBScript'te. Ancak uzun süredir Excel'de çalışan ancak henüz kullanmayanların olduğunu düşünüyorum. yazılım yollarıÇözümlerinde ince ayarlar yapmaya bu kitapla başlayabilirsiniz, ancak uyarılmalıdır, bazı programlama geçmişi gereklidir.

    İlk iki ders Excel'de programlamanın başlangıcına ayrılmıştır. Umarız mevcutturlar. Ileri düzey kullanıcılar ve acemi programcılar. Herhangi bir programlama ortamında programlama öğretenlerin de ilgiyle okuyacağını düşünüyorum. Burada Excel'in harika bir ortam olduğu yönündeki "kışkırtıcı" fikri ifade ediyorum ve haklı çıkarmaya çalışıyorum ilköğretim Okullarda ve üniversitelerde programlama. Umarım deneyimli programcılar bile burada, özellikle de matematikçilere yönelik ikinci bölümde yararlı bir şeyler bulacaktır.

    Bölüm 3 nesnenin tanımını verir excel modelleri. Bu modelin tüm ana aktörleri ayrıntılı olarak ele alınmıştır - Uygulama, Çalışma Kitabı, Çalışma Sayfası, Grafik, Aralık ve diğer nesneler. Bu konunun açıklanmasının teknik detaylar olmadan yapılamayacağı açıktır, bu nedenle bölümü okumak oldukça sıkıcı, ancak bir referans materyali olarak çok faydalı olacağını umuyorum.

    Veritabanları ve diğer veri kaynakları bu kitabın önde gelen konularından biridir. Bölüm 4 "Excel ve Veritabanları" bu konu ile başlıyor. Bu bölüm tanıtıyor Uygulamaya erişimÖrnek, Access'te bir veritabanının nasıl oluşturulduğunu gösterir, Excel ile Access arasındaki ilişkiyi inceler.

    Kitabın beşinci ve altıncı bölümleri ADO nesnelerine ayrılmıştır. Bu konulara iki bölümün ayrılmış olması, bu konunun ele alınmasındaki ayrıntının derecesini göstermektedir. ADO nesneleri, çok çeşitli veri kaynakları ile verilerin işlendiği istemci uygulaması arasında bir arayüz sağlar. Böyle bir uygulamanın kesinlikle Excel olması gerekmez, kapsam ADO nesneleriçok daha geniş. Ancak Excel, böyle bir istemci uygulamasının rolü için en uygun adaylardan biridir. Bu bölümleri okumak biraz hazırlık gerektirir ve daha ileri düzey programcılara yöneliktir.

    Kitabın yedinci bölümü etkileşimli belgelerin geliştirilmesine ayrılmıştır. Bir anlamda merkezidir. Etkileşimli bir Excel belgesi oluşturma sürecinin tamamı boyunca size yol gösterir. Bu belge, yazılım projesinin belirleyici bir rol oynadığı, Excel'de oluşturulan tipik bir çözümün örneği olarak düşünülebilir. Önerilen çözüm, veritabanıyla iletişim kurmak için bir Access veritabanı ve ADO nesneleri kullanır. Aynı zamanda önemli olan bir dizi başka konuyu da tartışıyor. pratik iş kullanıcı arayüzünün düzenlenmesinden, basılı form belge.

    8. Bölüm ofis faaliyetlerinin analizinde ortaya çıkan konulara ayrılmıştır. "Ya şöyle olursa..." analizinin nasıl yürütüleceği gibi anlamlı hususları aşağıdaki hususlarla birleştirmeye çalışır: Excel araçları Bu analizde kullanıldı. Burada dikkate alınır pivot tablolar ve konsolide diyagramlar, senaryolar, tahmin yöntemleri ve çok daha fazlası.

    Dokuzuncu bölümde "MasterF" adlı bir projenin oluşturulması ayrıntılı olarak tartışılmaktadır. Temel açıdan bakıldığında, sorun dikkate alınır optimal seçim yatırım yatırımları. Tasarım çözümü güçlü bir yerleşik sistem kullanır excel aracı- çözücü Çözücü, karmaşık optimizasyon problemlerini çözmenize olanak tanır. Bu proje, yerleşik Excel araç setinin üzerine nasıl bir eklenti oluşturulacağını gösterir. Benzer sorunları çözenler için sadece eğitici değil aynı zamanda pratik değere sahip olabileceğine inanıyorum.

    Bölüm 10'da Excel ile yakından ilgili yeni nesneler tanıtılmaktadır. Bu bölümde Office Web Bileşenleri - OWC bileşenleri ele alınmaktadır. Bana göre bu bileşenler en iyi ürün Microsoft tarafından bileşen programlama alanında oluşturulmuştur. Excel'in kendisini veya başkalarını kullanmadan çözümlerinize Excel işlevselliği ekleme olanağı sağlarlar. Ofis uygulamaları 2000. Bu bileşenlerin temel amacı, Excel işlevselliğine sahip etkileşimli Web sayfaları oluşturmanıza olanak sağlayan intranet üzerindeki belgelerle kurumsal çalışmayı sağlamaktır. Bu bileşenler dikkate alınırken şunlara çok dikkat edilir: program çalışması bu bileşenlerle olasılıklar yazılım ayarları Bu bileşenleri kullanan web belgeleri.

    Bölüm 11 Web'e giriş niteliğindedir - programlama. Etkileşimli bir Web belgesi oluşturma sürecini ayrıntılı olarak ele alacağım. anahtar kelime burada " etkileşim"Çünkü genel olarak bu kitabın tamamı hakkın nasıl verileceğiyle ilgili." etkileşim belgeler oluşturduk. Bu bölüm tamamen bağımsızdır, ancak aslında 7. ve 10. bölümlerde tartışılan iki konunun doğal bir devamıdır, çünkü bir yandan etkileşimli bir belge oluşturmaktan bahsediyoruz, diğer yandan - web belgesi, sayfaları Excel işlevine sahip olabilir. Okul çocukları için etkileşimli bir sıra oluşturmayı düşünürken sadece onlar için değil, bunu not ediyorum. Oyunların çoğu mantıksal düşünmeyi geliştirmeyi amaçlayan "eğitici" oyunlar sınıfına aittir. Oyunlar arasında ünlü oyunların çeşitleri vardır - Lines, Tetris, Digger, bulmaca oyunları, ünlü kart oyunu "Flip Fool" ve diğer oyunlar.

    Önsözümü bitirirken önerilen dersin "Ofis" serisindeki kitaplarla yakından ilgili olduğunu söylemek istiyorum. programlama", "Rusça baskısı" yayınevi tarafından yayınlandı. Birçok bölümün metninde açık ve örtülü referanslar vardır:

    1. "Office 2000'de VBA. Office Programlama,
    2. "VBA programcısı için geliştirme araçları". ofis programlama,
    3. Excel 2000 nesneleri dünyası, VBA programcı geliştirme araçları.

    Okuyucuların bu kitaplara aşina olması veya ilk iki kitaptan ders almış olması iyidir, ancak bu doğru değildir. zorunlu ihtiyaç. Bu kursu kendi başınıza tamamlayabilirsiniz. Hatta mümkünse her bölümü bağımsız okumaya uygun hale getirmeye çalıştığımı bile söyleyebilirim.

    Okuyuculardan ricam. Kurs daha önce yayınlanmış bir kitap temel alınarak oluşturulduğu ve neredeyse hiç değiştirilmediği için, yalnızca kitap için anlamlı olan "sarkan bağlantılar" mümkündür. İçeriğin bir kısmı zaten güncel değil. Bu kusurlara karşı hoşgörülü olmaya çalışın. Ana içeriğin değerini kaybetmediğine ve ofis programcılığıyla bir şekilde bağlantısı olan herkese faydalı olabileceğine yürekten inanıyorum.