ÍâÎÄ·­Òë--VBAµÄ¿ª·¢»·¾³ ÏÂÔر¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/2/19 6:27:19ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

³Ìʱ£¬ËùÒԵľֲ¿±äÁ¿¶¼ÐèÒªÖØгõʼ»¯¡£È»¶ø£¬Äã¿ÉÒÔÔÚÒ»¸ö½ø³ÌÖУ¬Í¨¹ý¶¨Òå¾Ö²¿±äÁ¿ÔÚÕû¸ö´úÂëÖÜÆÚÖÐΪ¾²Ì¬±äÁ¿£¬À´±£³Ö¾Ö²¿±äÁ¿µÄÖµ£¬Òò´Ë£¬ÕâÑù¿ÉÒԹ̶¨ËüÃǵÄÖµ¡£

ÔÚÒѾ­´æÔÚµÄÄ£×éÖÐÌí¼Ó½ø³Ì

1£® ÔÚÏîÄ¿ä¯ÀÀÆ÷ÖУ¬Ë«»÷ArcMap¶ÔÏó£¬ArcCatalog¶ÔÏó»òÊÇÄ£×éÎļþ¼Ð£¬È»ºóÑ¡ÔñÒ»¸öÄ£×éµÄÃû³Æ£¬Í¨¹ýµã»÷¡°View Code ¡±°´Å¥¿ÉÒԲ鿴ģ×éµÄÊÔͼÊÇ·ñÊôÓÚ¼¤»î״̬¡£

2£® µã»÷¡°²åÈ롱°´Å¥£¬È»ºóµã»÷¡°½ø³Ì¡±¡£ 3£® ÔÚ¡°Ãû³Æ¡±Îı¾¿òÖÐÊäÈë½ø³ÌµÄÃû³Æ¡£

4£® µã»÷¡°ÀàÐÍ¡±µ¥Ñ¡°´Å¥£¬Í¨¹ýµã»÷Ñ¡Ôñ½ø³ÌµÄÀàÐÍ£º×Ó½ø³Ì£¬º¯Êý»òÊÇÊôÐÔ¡£ 5£® µã»÷¡°·¶Î§¡±µ¥Ñ¡°´Å¥£¬Ñ¡ÔñÊÇÆ䷶ΧÊǹ«ÓлòÊÇ˽ÓС£

6£® ÉùÃ÷ËùÓоֲ¿±äÁ¿Îª¾²Ì¬±äÁ¿£¬¼ì²é¡°All Local variables as Statics¡±Õâ¸ö¼ì²â¿ò¡£ 7£® µã»÷OK£¬VBAÔÚÒ»¸ö½ø³ÌÀïµÄº¯Êý¿òÏÔʾÔÚÊäÈë´úÂëµÄ´°¿ÚÀÕâ¸öº¯Êý¿ò°üÀ¨ÁËÄãËùÌí¼Ó½ø³ÌµÄ´úÂëµÄÆðʼÐкÍ×îºóÒ»ÐеÄÄÚÈÝ¡£ 8£® ÔÚ½ø³ÌÖÐÊäÈë´úÂë¡£

¹ØÓÚ½ø³ÌµÄ¸ü¶àÐÅÏ¢£¬¿ÉÒÔÔÚMicrosoft Visual BasicÔÚÏß°ïÖúÀï»ñµÃ²Î¿¼¡£

Ìí¼ÓÓû§Ä£Ê½

Èç¹ûÄãÏëÒª×Ô¼ºµÄ´úÂë¸øÓû§ÌáʾÐÅÏ¢£¬»òÕߣ¬µ±Óû§ÇëÇóÒ»¸öArcGISÓ¦ÓÃÃüÁî¡¢¹¤¾ß»òÊǶÔһЩʼþµÄ»Ø¸´Ê±£¬ÄãÏëÒªÏÔʾһЩÐÐΪִÐеĽá¹û£¬ÄÇô¾ÍҪʹÓÃVBAµÄÓû§Ä£Ê½¡£Óû§Ä£Ê½Ìṩһ¸öÁªÏµ£¬Äã¿ÉÒÔÀûÓÃÕâ¸öÁª¸øһϵÁеļ¯³É¿ØÖÆÌṩÈë¿Ú¡£Ò»Ð©¿ØÖƺÍUIControlsºÜÏàËÆ£¬ËüÃǶ¼¿ÉÒÔÊÊÓÃÓÚÌض¨¶Ô»°¿òÃüÁî±êÇ©¡£ÓÐÁËÕâЩ¿ØÖÆ£¬³ýÁËÎı¾¿òºÍÃüÁî°´Å¥ÒÔÍ⣬Ä㻹¿ÉÒÔʹÓÃһЩ¸½¼ÓµÄ¿ØÖÆ¡£Ò»¸öÓû§Ä£Ê½ÊÇÒ»¸ö°üº¬Óû§½Ó¿Ú¿ØÖƵÄÈÝÆ÷£¬±ÈÈçÃüÁî°´Å¥ºÍÎı¾¿ò¡£Ò»¸ö¿ØÖÆÊÇÒ»¸öÏÔʾÔÚÒ»¸öÓû§Ä£Ê½ÉÏ

µÄVisual Basic¶ÔÏó£¬Ëü¾ßÓÐ×Ô¼ºµÄÊôÐÔ£¬·½·¨ºÍʼþ¡£Ê¹ÓÃÕâЩ¿ØÖÆÀ´½ÓÊÕÓû§µÄÊäÈ룬ÏÔʾÊä³ö£¬´¥·¢Ê¼þ½ø³Ì¡£Í¬Ê±Ò²¿ÉÒÔ½«¸ÃģʽÉèÖÃΪģ×éµÄÐÎʽ£¬ÕâÑùÓû§±ØÐëÔÚʹÓÃÈκÎÓ¦ÓÃ֮ǰ½øÐлظ´£¬»òÕßÒ²¿ÉÒÔÉèÖÃΪ·ÇÄ£ÐÍÐÎʽ£¬ÕâÑùµ±Óöµ½½ÓÏÂÀ´µÄ´úÂëʱ¾Í»á×Ô¶¯Ö´ÐС£

ÔÚÓû§Ä£Ê½ÏÂÌí¼ÓºÍÆô¶¯±àÂë

1£® ÔÚÏîÄ¿ä¯ÀÀÆ÷ÖУ¬Ñ¡ÔñÄãÏëÌí¼ÓÔÚÒ»¸öÓû§Ä£Ê½ÀïµÄÏîÄ¿¡£ 2£® µã»÷¡°²åÈ롱°´Å¥£¬È»ºóµã»÷¡°UserForm¡±¡£

3£® VBA²åÈëÒ»¸öÓû§Ä£Ê½ÔÚÄãµÄÏîÄ¿ÖУ¬È»ºó×Ô¶¯ÏÔʾ¿ØÖƹ¤¾ß¿ò¡£ 4£® ÔÚ¹¤¾ß¿òÖÐÑ¡ÔñÄãÏëÌí¼Ó¸øÓû§µÄ¿ØÖƹ¤¾ß¡£ 5£® ¶ÔÓû§Ä£Ê½»òÊÇÉÏÃæµÄ¿ØÖƽøÐбàÂë¡£

ΪÁËÏÔʾÓû§Ä£Ê½»òÊÇ¿ØÖƵĴúÂë´°¿Ú£¬¿ÉÒÔË«»÷Óû§Ä£°å»òÊǸ÷¸ö¿ØÖÆ¡£È»ºóÔÚʼþºÍ½ø³ÌÖÐÑ¡ÔñÄãÏë³ö·¢µÄʼþ£¬È»ºó¿ÉÒÔÔÚ´úÂë´°¿ÚµÄÏìӦʼþµÄ´úÂëÇøÓòÄÚÊéд´úÂë¡£»òÕßÖ±½ÓÔÚÒ»¸öÄ£×é»òÀàÄ£×éÖвåÈëÒ»¸ö½ø³Ì£¬È»ºóÔÚ½øÐбàÂë¡£

Èç¹ûÏëÔÚArcMap»òÊÇArcCatalogÆÚ¼äÀï¶ÔһЩÐÐΪ×ö³ö»Ø¸´Ê±£¬ÒýÓÃËüµÄ¡°Show¡±·½·¨£¬ÀýÈ磺

UserForm1.Show vbModeless 'show modeless

¹ØÓÚVBAÏîÄ¿¹ÜÀíµÄ¼¼Êõ

ÒÀ¿¿Ïà¹ØµÄ¼¼Êõ¿ÉÒÔʹ¹¤×÷ºÏÀí»¯£¬ÕâÑùÔÚArcGISÓ¦ÓÃVBA»·¾³ÖеŤ×÷½«¸üÓÐЧ£¬´Ó¶ø¼õÉÙÁËÿ´ÎÆô¶¯Ò»¸öÐÂÈÎÎñ¶øÐèÒªµÄ¹¤×÷Á¿¡£

ÔÙ´ÎʹÓÃÄ£×飬ÀàÄ£×éºÍÓû§Ä£Ê½

ÔÚÆÕͨģ°å£¬ÏîÄ¿»òÊÇÄ£°åÏîÄ¿ÖÐÌí¼ÓÒ»¸öÒѾ­´æÔÚµÄÄ£×é»òÊÇģʽʱ£¬µã»÷ÏîÄ¿ä¯ÀÀÆ÷ÖеÄÄ¿±ê¶ÔÏóµÄÃû³Æ£¬È»ºó´Ó¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°µ¼ÈëÎļþ¡±¡£ÕâÑù¿ÉÒÔÑ¡ÔñÈÎÒâµÄVBAÄ£×飬Óû§Ä£Ê½»òÊÇÀàÄ£×éÀ´Ìí¼ÓÒ»¸ö¸´ÖƵÄÎļþµ½ÄãµÄÏîÄ¿ÖÐÈ¥¡£Í¬ÑùÒ²¿ÉÒÔ´ÓÒÑÓеÄÏîÄ¿Öе¼³öһЩÌõÄ¿£¬´ÓÏîÄ¿Ñ¡ÔñÏëÒªµ¼Èëµ½ÏîÄ¿ä¯ÀÀÆ÷µÄÏîÄ¿£¬´Ó¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°µ¼³öÎļþ¡±£¬È»ºóÌí¼Óµ½±£´æ¸ÃÎļþµÄµØ·½¡£µ¼³öÒ»¸öÏîÄ¿²¢²»Òâζ×Å´ÓÏîÄ¿Öн«ÆäÒÆ×ß¡£

Òƶ¯ÏîÄ¿ÏîÄ¿

µ±ÒªÒƶ¯Ò»¸öÏîĿʱ£¬¿Ï¶¨Òª´ÓÏîÄ¿Öн«Æäɾ³ý¡£µ«ÊÇ£¬Èç¹û¸ÃÏîÄ¿´æÔÚ´ÅÅÌÉÏʱ£¬Õâ¸öÐÐΪ²¢Ã»ÓÐɾ³ýÕâ¸öÎļþ¡£ÔÚÒÆ×ßÒ»¸öÏîĿ֮ǰ£¬Òª±£Ö¤ÔÚÆäËüÄ£×éºÍÓû§Ä£Ê½Öб£ÁôµÄ´úÂëºÍÒѾ­ÒÆ×ߵĴúÂëûÓйØϵ¡£ÒªÒÆ×ßÒ»¸öÏîÄ¿£¬Ê×ÏÈÔÚÏîÄ¿ä¯ÀÀÆ÷ÖÐËÑË÷³ö¸ÃÏîÄ¿£¬È»ºó´Ó¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°Òƶ¯Ãû³Æ¡±¡£ÔÚÒƶ¯¸ÃÏîÄ¿Ç°£¬½«»á±»Ñ¯ÎÊÊÇ·ñÕæµÄÒªµ¼³ö¸ÃÏîÄ¿¡£Èç¹ûÔڸöԻ°¿òÖÐÑ¡Ôñ¡°ÊÇ¡±£¬Ôò¡°µ¼³öÎļþ¡±¶Ô»°¿ò¾Í»á´ò¿ª¡£Èç¹ûÑ¡Ôñ¡°·ñ¡±£¬ÔòVBA¾Íɾ³ýÁ˸ÃÏîÄ¿¡£

±£»¤´úÂë

ΪÁË·ÀÖ¹Óû§Ð޸ĻòÊDz鿴´úÂ룬¿ÉÒÔËøסһ¸öÏîÄ¿£¬Ä£°åÏîÄ¿»òÕßÉõÖÁÊÇNormal¡£µ±Ëøסһ¸öÏîĿʱ£¬±ØÐëÔÚÏîÄ¿ä¯ÀÀÆ÷ÖÐÉèÖÃÒ»¸öÔÚ½øÈë¸ÃÏîÄ¿Ç°¾ÍÄÜ¿´¼ûµÄÃÜÂë¡£Èç¹ûÏëÒªËøסһ¸öÏîÄ¿£¬¿ÉÒÔÔÚÏîÄ¿ä¯ÀÀÆ÷ÖÐÓÒ»÷¸ÃÏîÄ¿£¬Ä£°åÏîÄ¿»òÊÇNormal£¬È»ºóÔÚ³öÏÖµÄÄÚÈݲ˵¥Öеã»÷¸ÃÊôÐÔÏîÄ¿¡£ÔÚÊôÐÔ¶Ô»°¿òÖУ¬µã»÷¡°±£»¤¡±±êÇ©£¬²¢ÇÒÑ¡Ôñ¡°Lock Project for Viewing¡±¡£ÊäÈëÒ»¸öÃÜÂë²¢ÇÒ½øÐÐÈ·ÈÏ¡£×îºó£¬±£´æArcMap ºÍArcCatalogÎļþ¡£ÕâÑù£¬µ±ÔÙÒ»´Î´ò¿ª»òÊDZðÈË´ò¿ª¸ÃÎļþʱ£¬¸Ã¹¦³¼¾Í±»ËøסÁË¡£Èç¹ûÆäËûÈËÏëÒª²é¿´»òÊDZ༭¸ÃÏîĿʱ£¬±ØÐëÊäÈëÏà¹ØÃÜÂë²Å¿ÉÒÔ¡£

±£´æÒ»¸öVBAÏîÄ¿

VBAÏîÄ¿±»´æ´¢ÔÚÒ»¸ö×÷Ϊ»ù±¾Ä£°åµÄÎļþ(*.mxt)ÖУ¬Õâ¸öÎļþ»òÕßÊÇÆÕͨģ°å£¬»òÕßÊÇÒ»¸öÎĵµ(*.mxd)¡£µ±Óû§´ÓÒ»¸ö»ù±¾Ä£°åÖд´½¨Ò»¸öеÄArcMap ÎĵµÊ±£¬¸ÃÎĵµ¾Í»á²Î¿¼Õâ¸ö»ù±¾Ä£°åºÍËüËùÒÔµÄÏîÄ¿¡£Òª±£´æArcMap ÎĵµºÍVBAÏîĿʱ£¬´ÓArcMap µÄ¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°±£´æ¡±»òÊÇ´ÓVisual Basic±à¼­Æ÷ÀïµÄ¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°±£´æΪ¡±ÕâÁ½¸öÃüÁ¿ÉÒÔ½«ËùÓеÄÏîÄ¿ºÍÏîÄ¿¶¼±£´æÔÚÎļþÖС£ÔÚ±£´æºÃÎļþÖ®ºó£¬ËüµÄÎļþÃû¾Í»áÔÚä¯ÀÀÆ÷ÖеÄÏîÄ¿ÃûºóÃæµÄÀ¨ºÅÀïÏÔʾ³öÀ´¡£Èç¹ûÒª½«¸ÃÎĵµÁí´æΪһ¸öÄ£°å£¬Ôò´ÓArcMap µÄ¡°Îļþ¡±²Ëµ¥ÖÐÑ¡Ôñ¡°Áí´æΪ¡±£¬¶øÇÒÌرðÖ¸³öArcMap Ä£°åΪ¸ÃÎļþµÄ´æ´¢ÀàÐÍ¡£

ÔËÐдúÂë

µ±´úÂ뽨Á¢ºÍÍêÉƺó£¬Äã¾Í¿ÉÒÔÔÚVBAÀïÔËÐУ¬ÕâÑù¿ÉÒÔ¼ì²âºÍµ÷ÊÔ¡£ÕâÒ»²¿·ÖÌÖÂÛÔÚÉè¼Æ½×¶ÎµÄVisual Basic±à¼­Æ÷ÀïÔËÐдúÂë¡£¹ØÓÚÔËÐк͵÷ÊÔVBA³ÌÐò£¬±ÈÈçÌí¼Ó¶Ïµã£¬Ìí¼Ó×¢ÊÍ£¬Öð²½Ö´ÐеÈÐÅÏ¢¿ÉÒÔÔÚVisual BasicÔÚÏß°ïÖúÖвéѯ¡£

ÔÚVisual Basic±à¼­Æ÷»òÊǺê¶Ô»°¿òÖÐÔËÐдúÂë 1£® µã»÷¡°¹¤¾ß¡±²Ëµ¥£¬Ñ¡Ôñ¡°ºê¡± 2£® ÔÚºêÁбíÖУ¬µã»÷ÏëÒªÔËÐеĺꡣ

Èç¹ûÏëÒªÔËÐеĺ겻ÔÚ¸ÃÁбíÖУ¬Ôò±ØÐë±£Ö¤ÒѾ­Ñ¡ÔñÁËÊʵ±µÄÏîÄ¿£ºÔÚºê¶Ô»°¿òÖеÄNormal£¬ÏîÄ¿»òÊÇÄ£°åÏîÄ¿¡£Ë½ÓеĽø³ÌÔÚÈκβ˵¥»òÊǶԻ°¿òÖж¼²»»á³öÏֵġ£

ÔÚVisual Basic±à¼­Æ÷ÖÐÖ»ÔËÐÐÒ»¸ö½ø³Ì

1£® ÔÚÏîÄ¿ä¯ÀÀÆ÷ÖУ¬´ò¿ª°üº¬ÏëÒªÔËÐеĽø³ÌµÄÄ£×é¡£ 2£® ÔÚ´úÂë´°ÖУ¬Ôڸýø³Ì´úÂëÖеã»÷Ò»¸ö²åÈëµã¡£

3£® µã»÷¡°ÔËÐС±²Ëµ¥Ñ¡Ôñ¡°ÔËÐÐ ³ÌÐò/Óû§Ä£Ê½¡±¡£Ö»Óйâ±ê±êסµÄ½ø³Ì²Å»á±»Ö´ÐС£

Íê³É´úÂëµÄ±à¼­

ÔÚ´úÂë±à¼­ÍêÖ®ºó£¬Óû§¿ÉÒÔ´ÓArcMap or ArcCatalogÖÐÔËÐиôúÂ롣ͨ¹ýÑ¡Ôñ¡°¹¤¾ß¡±²Ëµ¥Öеġ°ºê¡±¿ÉÒÔÖ´Ðиùý³Ì¡£Ò²¿ÉÒÔ½«´úÂëºÍÒ»¸öÃüÁî»òÊǹ¤¾ßÁªÏµÆðÀ´£¬»òÕßÊÇÔڻظ´Ò»¸öʼþ»òÊÇÒѾ­ÉèÖõÄÆäËü·½Ê½ÏÂÔËÐдúÂë¡£

ʹÓÃÈ«¾ÖÓ¦ÓöÔÏó

ApplicationºÍThisDocumentÊÇÈ«¾Öϵͳ±äÁ¿µÄÀý×Ó£¬µ±ArcMapÔËÐÐʱ£¬ÕâЩ±äÁ¿¿ÉÒÔ±»ÔÚVBAÖеÄÈÎÒâµÄģʽ»òÀàËù½ÓÊÜ¡£µ±ArcMap´ò¿ªÎĵµÊ±£¬Õâ¸ö±äÁ¿ÊÇ×Ô¶¯ÉèÖõ½µ±Ç°ÎĵµÖеġ£µ±VBAÖеijÌÐò½øÈ뵱ǰÎĵµÊ±£¬¿ÉÒÔʹÓÃThisDocument×÷Ϊ¿ì½Ý¼ü¡£ÕâÀïÓиöʹÓÃApplication»òThisDocumentµÄÀý×Ó Dim pMxDoc as IMxDocument Set pMxDoc =Application.Document 'or

Set pMxDoc =ThisDocument

¸½¼þ1£ºÍâÎÄÔ­ÎÄ£¨¸´Ó¡¼þ£©

Visual Basic for Applications Development Environment

The Visual Basic Environment (General)

http://edndoc.esri.com/arcobjects/8.3/GettingStarted/VBASpecifics.htm

This topic discusses how to program in the VBA environment to control either ArcMap, ArcCatalog, or ArcScene by accessing the objects they expose. Your code manipulates the objects by getting and setting properties on their interfaces, such as setting the MaximumScale and MinimumScale of a Map's FeatureLayer; invoking methods on the interfaces, such as adding a vertex to a polyline; or setting a field's value. The code runs when an event occurs, for example, when a user opens a document, clicks a button, or alters data by modifying an edit sketch.

Before we learn the knowledge of Visual Basic for Application Development Environment, we firstly learn the conception of Visual Basic for Application. What is Visual Basic for Applications?

Microsoft Visual Basic for Applications (VBA) is part of the Microsoft Visual Basic family that also includes the Microsoft Visual Basic development system (Learning Edition, Professional Edition, and Enterprise Edition) and Visual Basic Scripting Edition (VBScript). VBA is an embeddable programming environment designed to enable developers to build custom solutions using the full power of Microsoft Visual Basic. Developers using applications that host VBA can automate and extend the application functionality, shortening the development cycle of custom business solutions.

What are the differences between Visual Basic, VBA, and VBScript? When would we use one over another?

Visual Basic is a stand-alone tool for creating separate software components, such as executable programs, COM components and ActiveX Controls, and is useful when you must build a specialized solution from scratch.