Excel VBAã«ãããEnumåãæŽ»çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯
ç§ã¯VBAã®æŽ»çšçµéšãéããŠåŸãç¥èãæŽçããå ±æããç®çã§èšäºãäœæããŠããããã°ã©ãã³ã°æŽ1幎åã«ãªããšã³ãžãã¢ã§ããååã¯ãç¬èªã€ãã³ãã®èšèšãšå®è£ ã«ã€ããŠè©³ãã説æããŸãããä»åã¯ãExcel VBAã«ãããEnumåïŒåæå: ããã°ã©ã å ã§äœ¿çšããæ°å€ã«æå³ã®ããååãä»ããæ©èœïŒã掻çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯ã«ã€ããŠè§£èª¬ããŸãã
- 第1å: Excel VBAã®åºç€ç¥èãšã»ãã¥ãªãã£èšå®
- 第2å: Excel VBAã®åºæ¬æäœãšãªããžã§ã¯ãã®çè§£
- 第3å: Excel VBAã«ããã倿°ãšå®æ°ã®åºæ¬
- 第4å: Excel VBAã«ãããã·ãŒãæäœã®åºæ¬ãšãšã©ãŒåŠç
- 第5å: Excel VBAã«ãããæ¡ä»¶åå²
- 第6å: Excel VBAã«ãããç¹°ãè¿ãåŠçã®åºæ¬
- 第7å: Excel VBAã«ãããé åãšFor Eachã®æŽ»çš
- 第8å: Excel VBAã«ãããFormulaãšValueã®äœ¿ãåããšãŠãŒã¶ãŒå ¥åã®ååŸ
- 第9å: Excel VBAã«ããããã¡ã€ã«æäœãšãã©ã«ã管çã®åºæ¬
- 第10å: Excel VBAã«ãããFileSystemObjectãæŽ»çšããé«åºŠãªãã¡ã€ã«æäœ
- 第11å: Excel VBAã«ãããFileSystemObjectãæŽ»çšããé«åºŠãªãã¡ã€ã«æäœ å¿çšç·š
- 第12å: Excel VBAã«ãããStrConv颿°ã®æŽ»çšãšå¿çšãã¯ããã¯
- 第13å: Excel VBAã«ãããã¯ãŒã¯ããã¯ã®å®å šãªæäœãšç®¡çãã¯ããã¯
- 第14å: Excel VBAã«ãããFunctionïŒé¢æ°ïŒã®äœæãšæŽ»çšãã¯ããã¯
- 第15å: Excel VBAã«ãããé åãè¿ã颿°ã®äœæãšæŽ»çšãã¯ããã¯
- 第16å: Excel VBAã«ãããã³ã¬ã¯ã·ã§ã³ã®æŽ»çšãšå¿çšãã¯ããã¯
- 第17å: Excel VBAã«ãããèŸæžåïŒDictionaryïŒã®æŽ»çšãšå¿çšãã¯ããã¯
- 第18å: Excel VBAã«ãããEnumåãæŽ»çšãã颿°èšèšãšå®è£ ãã¯ããã¯
- 第19å: Excel VBAã«ããããŠãŒãã£ãªãã£é¢æ°ã®äœæãšæŽ»çšãã¯ããã¯
- 第20å: Excel VBAã«ãããæ£èŠè¡šçŸã掻çšãããã¡ã€ã«åè§£æãã¯ããã¯
- 第21å: Excel VBAã§ç¯å²å ã®å³åœ¢ãå¹ççã«åé€ãããã¯ããã¯
- 第22å: Excel VBAã§ææ°ãã¡ã€ã«ãå¹ççã«æ€çŽ¢ãã颿°èšèšãã¯ããã¯
- 第23å: Excel VBAã§éžæããç¯å²ã«å¯ŸããŠãäžè¡ããã«ç©ºè¡ãæ¿å ¥ãããã¯ããã¯
- 第24å: Excel VBAã§å¯èŠã»ã«ã掻çšãããã£ã«ã¿ãŒæäœãã¯ããã¯
- 第25å: Excel VBAã§å¯èŠã»ã«ã®ã¿ãå¹ççã«ã³ããŒãããã¯ããã¯
- 第26å: Excel VBAã«ããããã¡ã€ã«ã»ãã©ã«ãç§»åã®ååž°åŠçãã¯ããã¯
- 第27å: Excel VBAã«ããã芪ãã©ã«ããã¹ååŸã®å®è£ ãã¯ããã¯
- 第28å: Excel VBAã«ãããç¬èªã€ãã³ãã®èšèšãšå®è£ ãã¯ããã¯
- 第29å: Excel VBAã«ãããEnumåãæŽ»çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯ïŒæ¬èšäºïŒ
- 第30å: Excel VBAã«ãããåçªå·ããã¢ã«ãã¡ããã倿ã®å¹ççå®è£ ãã¯ããã¯
ç®æ¬¡
- ã¯ããã«
- Enumåã«ããã¡ã³ããã³ã¹æ§åäžã®æ¬è³ªçãªçè§£
- ã·ãŒãã¬ã€ã¢ãŠã倿Žãžã®èªå远åŸã¡ã«ããºã
- è€æ°ã·ãŒãç°å¢ã§ã®EnumèšèšæŠç¥
- 宿°ç®¡çã®äžå åã«ããä¿å®æ§åäž
- å®è·µçãªã¡ã³ããã³ã¹æŠç¥ã®æ§ç¯
- ãŸãšã
ã¯ããã«
å æ¥ãèªè ã®æ¹ãã第18åã®èšäºã«ã€ããŠãEnumåãæŽ»çšãã颿°èšèšã¯ããããã£ããããã£ãšå®è·µçãªã¡ã³ããã³ã¹å Žé¢ã§ã®æŽ»ç𿹿³ãç¥ãããããšãããææãããã ããŸããã確ãã«ç¬¬18åã§ã¯ãEnumåã®åºæ¬çãªæŽ»çšæ¹æ³ã«éç¹ã眮ããå®éã®éçºçŸå Žã§çºçããã¡ã³ããã³ã¹åé¡ãžã®å¯ŸåŠã«ã€ããŠã¯ååã«è§ŠããŠããŸããã§ããã
ä»åã¯ããã®è²ŽéãªãææãåããŠãExcel VBAã«ãããEnumåãæŽ»çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯ã«ç¹åããŠè§£èª¬ããŸããç¹ã«ãã·ãŒãã¬ã€ã¢ãŠãã®å€æŽãé »ç¹ã«çºçããå®éã®æ¥åç°å¢ã«ãããŠãã©ã®ããã«Enumåãéçºè ããå°çã®ãããªä¿®æ£äœæ¥ãããæã£ãŠãããã®ãã詳ãã説æããŸãã
Excel VBAã«ãããã¡ã³ããã³ã¹æ§ã®åé¡ã¯ãå€ãã®VBAéçºè ãæ±ããå ±éã®æ©ã¿ã§ããç¹ã«ãã·ãŒãã®åçªå·ãè¡çªå·ãçŽæ¥æ°å€ã§èšè¿°ããææ³ã¯ãã·ãŒãã¬ã€ã¢ãŠãã倿Žããããã³ã«å šãŠã®ã³ãŒããæäœæ¥ã§ä¿®æ£ãããšãããéåžžã«æéã®ãããäœæ¥ã匷ããããŸãã
ã¡ã³ããã³ã¹æ§ãšã¯
ã¡ã³ããã³ã¹æ§ãšã¯ãããã°ã©ã ã®ä¿®æ£ãæ¡åŒµã倿Žãè¡ãéã®äœæ¥å¹çãè¡šãææšã§ããã¡ã³ããã³ã¹æ§ãé«ãããã°ã©ã ã¯ã仿§å€æŽããã£ãŠãæå°éã®ä¿®æ£ã§å¯Ÿå¿ã§ããéã«ã¡ã³ããã³ã¹æ§ãäœãããã°ã©ã ã¯ãå°ããªå€æŽã§ã倧éã®ã³ãŒãä¿®æ£ãå¿ èŠã«ãªããŸãã
Enumåã«ããã¡ã³ããã³ã¹æ§åäžã®æ¬è³ªçãªçè§£
ãªãEnumåãã¡ã³ããã³ã¹æ§ãåäžãããã®ã
Excel VBAã«ãããã¡ã³ããã³ã¹æ§åäžã«ãããŠãEnumåãåšåãçºæ®ããçç±ãçè§£ããããã«ããŸãã·ãŒãã®åçªå·ãè¡çªå·ãçŽæ¥æ°å€ã§èšè¿°ããææ³ã®åé¡ç¹ããèããŠã¿ãŸãããã
äŸãã°ãi
è¡ç®ã®AZåïŒ52åç®ïŒã®é¡§å®¢åãååŸãããåŠçãæžãå ŽåãCells(i, 52)
ã®ããã«èšè¿°ããŠããŸããããã®ææ³ã«ã¯ä»¥äžã®ãããªæ¬è³ªçãªåé¡ããããŸãã
å¯èªæ§ã®åé¡: ã³ãŒããèªã人ïŒå°æ¥ã®èªåãå«ãïŒã«ãšã£ãŠãã52ããšããæ°å€ãäœã®åãæããŠããã®ããæ¯å確èªããå¿
èŠããããã³ãŒãçè§£ã®å¹çãäžãã
ä¿å®æ§ã®åé¡: ã·ãŒãã®ã¬ã€ã¢ãŠãã倿Žããããšãé¢é£ããå
šãŠã®æ°å€ãæåã§ä¿®æ£ããå¿
èŠããã
ãšã©ãŒçºçã®åé¡: ä¿®æ£æŒããä¿®æ£ãã¹ã«ãããã°ãçºçãããã
ãããã®åé¡ãæ ¹æ¬ãã解決ããã®ãEnumåã®æŽ»çšã§ãã
Enumåã®æ¬è³ªçãªäŸ¡å€
Enumåã®çã®äŸ¡å€ã¯ããæ°å€ã«æå³ã®ããååãä»ãããã ãã§ã¯ãããŸãããããéèŠãªã®ã¯ã倿Žã«å¯Ÿããæè»æ§ãšã³ãŒãã®èªå·±èª¬ææ§ãæäŸããããšã§ããã³ãŒããèªã人ãããã®ã³ãŒããäœãããŠãããããå³åº§ã«çè§£ã§ãããã€ã·ã¹ãã ã®å€æŽã«å¯ŸããŠæå°éã®ä¿®æ£ã§å¯Ÿå¿ã§ããããã«ãªããŸãã
Enumåã®èªåé£çªæ©èœã«ãã倿Žè¿œåŸ
Enumåã®æã匷åãªæ©èœã¯ãèªåé£çªæ©èœã§ãããã®æ©èœã«ãããEnumå®çŸ©ã®éäžã«æ°ããèŠçŽ ã远å ãããšããã®åŸã®å šãŠã®èŠçŽ ã®å€ãèªåçã«èª¿æŽãããŸãã
' ã·ãŒãã¬ã€ã¢ãŠã倿Žåã®Enumå®çŸ©
Public Enum e売äžããŒã¿å
e_IDå = 1
e_æ¥ä»å ' èªåçã«2ãå²ãåœãŠããã
e_顧客åå ' èªåçã«3ãå²ãåœãŠããã
e_åååå ' èªåçã«4ãå²ãåœãŠããã
e_å䟡å ' èªåçã«5ãå²ãåœãŠããã
e_æ°éå ' èªåçã«6ãå²ãåœãŠããã
e_åèšå ' èªåçã«7ãå²ãåœãŠããã
End Enum
ããã§ãæ åœè åãã顧客ååã®åŸã«è¿œå ããå Žåãäžèšã®ããã«è¿œå ããã ãã§æ§ããŸããã
' ã·ãŒãã¬ã€ã¢ãŠã倿ŽåŸã®Enumå®çŸ©
Public Enum e売äžããŒã¿å
e_IDå = 1
e_æ¥ä»å ' å€ã¯2ã®ãŸãŸå€æŽãªã
e_顧客åå ' å€ã¯3ã®ãŸãŸå€æŽãªã
e_æ
åœè
å ' æ°èŠè¿œå ïŒ4ãèªåå²ãåœãŠ
e_åååå ' èªåçã«4â5ã«å€æŽ
e_å䟡å ' èªåçã«5â6ã«å€æŽ
e_æ°éå ' èªåçã«6â7ã«å€æŽ
e_åèšå ' èªåçã«7â8ã«å€æŽ
End Enum
ãã®å€æŽã«ãããæ¢åã®ã³ãŒããäžåä¿®æ£ããããšãªããæ°ããã·ãŒãã¬ã€ã¢ãŠãã«å¯Ÿå¿ã§ããŸãã
Enumåã®åœåèŠåã«ã€ããŠ
äžè¬çã«ãããã°ã©ã ã®å€æ°åã«ã¯æ¥æ¬èªã䜿çšããªãæ¹ãæãŸãããšãããŠããŸããããããExcel VBAã«ãããåãè¡ã®èŠåºããEnumåã§ç®¡çããå Žåã¯ãå¯èªæ§ã®èгç¹ããäŸå€ãšããŠæ¥æ¬èªã䜿çšããã®ãæå¹ã§ããç¹ã«ããe_åïŒãŸãã¯è¡ïŒèŠåºã
ã圢åŒïŒäŸïŒe_顧客åå
ã e_æ¥ä»å
ïŒã«ããããšã§ãäœã®åã§ããããã²ãšç®ã§åããããããªããŸããå®éçšãããŒã ã®æ¹éã«å¿ããŠããããããããéèŠããåœåãéžæãããšããã§ãããã
åŸæ¥ææ³ãšã®æ¯èŒã«ãã广ã®å®æ
å ·äœçãªå¹æã宿ããããã«ãã·ãŒãã«1å远å ããéã®äœæ¥éãæ¯èŒããŠã¿ãŸãããã
ææ³ | ä¿®æ£ãå¿ èŠãªç®æ | äœæ¥æéã®ç®å® | ãšã©ãŒçºçãªã¹ã¯ |
---|---|---|---|
æ°å€çŽæå® | 圱é¿ãåããå šãŠã®ã»ã«åç § | 5 ïœ 30åçšåºŠ(éã«å¿ããŠå¢æž) | é«ïŒä¿®æ£æŒããé »çºïŒ |
EnumåæŽ»çš | Enumå®çŸ©ã®ã¿ | 1 ïœ 5åçšåºŠ(éã«å¿ããŠå¢æž) | 極ããŠäœ |
衚ãããããéãããã®å·®ã¯ãããžã§ã¯ãã®èŠæš¡ã倧ãããªãã»ã©é¡èã«ãªããŸããæ¥µç«¯ãªè©±ã100ã®ããã·ãŒãžã£ã§è©²åœåãåç §ããŠããå ŽåãåŸæ¥ã®æ°å€çŽæ¥æå®ã§ã¯100ç®æã®ä¿®æ£ãå¿ èŠã§äœæ¥æéãå€§å¹ ã«å¢å ããŸãããEnumåã䜿çšããŠããã°ä¿®æ£ã¯1ç®æã®ã¿ã§æžã¿ããšã©ãŒçºçãªã¹ã¯ã極ããŠäœãæããããŸãã
ã·ãŒãã¬ã€ã¢ãŠã倿Žãžã®èªå远åŸã¡ã«ããºã
èªå远åŸãæ©èœããä»çµã¿ã®è©³çް
Enumåã®èªåè¿œåŸæ©èœã广çã«æŽ»çšããããã«ã¯ããã®ä»çµã¿ãæ£ããçè§£ããå¿ èŠããããŸãã
åºæ¬ã«ãŒã«
- æç€ºçã«å€ãæå®ããªãèŠçŽ ã¯ãçŽåã®èŠçŽ ã®å€+1ãèªåçã«å²ãåœãŠããã
- éäžã«æ°ããèŠçŽ ã远å ãããšããã®åŸã®å šãŠã®èŠçŽ ã®å€ãèªå調æŽããã
- å€ãæç€ºçã«æå®ããèŠçŽ ã¯ãä»ã®èŠçŽ ã®è¿œå ã«ãã£ãŠå€ãå€ããããšã¯ãªã
' èªå远åŸã®ä»çµã¿ãçè§£ããããã®äŸ
Public Enum eã¬ã€ã¢ãŠãäŸå
e_åºå®å1 = 1 ' æç€ºçã«1ãæå®
e_èªåå1 ' èªåçã«2ãå²ãåœãŠ
e_èªåå2 ' èªåçã«3ãå²ãåœãŠ
e_åºå®å2 = 10 ' æç€ºçã«10ãæå®
e_èªåå3 ' èªåçã«11ãå²ãåœãŠ
e_èªåå4 ' èªåçã«12ãå²ãåœãŠ
End Enum
ãã®ç¶æ ã§ãæ°èŠåãããèªåå1ããšãèªåå2ãã®éã«è¿œå ãããšãäžèšã®ããã«ãªããŸãã
Public Enum eã¬ã€ã¢ãŠãäŸå
e_åºå®å1 = 1 ' å€ã¯1ã®ãŸãŸïŒæç€ºçæå®ã®ãã倿ŽãªãïŒ
e_èªåå1 ' å€ã¯2ã®ãŸãŸïŒåã®èŠçŽ ãå€ãããªãããïŒ
e_æ°èŠå ' æ°èŠè¿œå ïŒ3ãèªåå²ãåœãŠ
e_èªåå2 ' èªåçã«3â4ã«å€æŽ
e_åºå®å2 = 10 ' å€ã¯10ã®ãŸãŸïŒæç€ºçæå®ã®ãã倿ŽãªãïŒ
e_èªåå3 ' å€ã¯11ã®ãŸãŸïŒåºå®å2ã®å€ãå€ãããªãããïŒ
e_èªåå4 ' å€ã¯12ã®ãŸãŸ
End Enum
æç€ºçãªå€æå®ã®æ³šæç¹
Enumå®çŸ©ã§æç€ºçã«å€ãæå®ããå Žåã¯ãå°æ¥çãªæ¡åŒµæ§ãèæ ®ããŠãã ãããé£ç¶ããå€ãæç€ºçã«æå®ããŠããŸããšãåŸããèŠçŽ ãæ¿å ¥ããéã«å€ã®éè€ãçºçããå¯èœæ§ããããŸããåºæ¬çã«ã¯æåã®èŠçŽ ã®ã¿æç€ºçã«æå®ãããã®åŸã¯èªåé£çªã«ä»»ããããšãæšå¥šããŸãã
è€éãªã¬ã€ã¢ãŠã倿Žãžã®å¯Ÿå¿æŠç¥
å®éã®æ¥åã§ã¯ãåçŽãªå远å ã ãã§ãªããè€æ°åã®åæè¿œå ãåã®åé€ãåã®äžŠã³æ¿ããªã©ãæ§ã ãªã¬ã€ã¢ãŠã倿ŽãçºçããŸãããããã®å€æŽã«ã察å¿ã§ããEnumèšèšã®ãã€ã³ãã解説ããŸãã
åã®åé€ãžã®å¯Ÿå¿
äžèŠã«ãªã£ãåã«å¯Ÿå¿ããEnumèŠçŽ ãã³ã¡ã³ãã¢ãŠãããå°æ¥ã®åå©çšã«åããŸãã
' 販売å®çžŸåãåé€ããå Žåã®å¯Ÿå¿äŸ
Public Enum e売äžããŒã¿å
e_IDå = 1
e_æ¥ä»å
e_顧客åå
' e_販売å®çžŸå ' åé€ãããåïŒå°æ¥ã®åŸ©æŽ»ã«åããŠã³ã¡ã³ãã¢ãŠãïŒ
e_åååå ' èªåçã«å€ã調æŽããã
e_å䟡å
e_æ°éå
e_åèšå
End Enum
åã®äžŠã³æ¿ããžã®å¯Ÿå¿
Enumå®çŸ©ã®èŠçŽ ã®é åºãå®éã®ã·ãŒãã¬ã€ã¢ãŠãã«åãããŠå€æŽããŸãã
' ååååãšå䟡åã®é åºãå
¥ãæ¿ããå Žå
Public Enum e売äžããŒã¿å
e_IDå = 1
e_æ¥ä»å
e_顧客åå
e_å䟡å ' ååååãšäœçœ®ã亀æ
e_åååå ' å䟡åãšäœçœ®ã亀æ
e_æ°éå
e_åèšå
End Enum
è€æ°ã·ãŒãç°å¢ã§ã®EnumèšèšæŠç¥
ã·ãŒãå¥Enumèšèšã®åºæ¬æ¹é
å®éã®æ¥åã·ã¹ãã ã§ã¯ãäžã€ã®Excelãã¡ã€ã«ã«è€æ°ã®ã·ãŒããååšããããããç°ãªãã¬ã€ã¢ãŠããæã€ããšãäžè¬çã§ããå¹ççãªã¡ã³ããã³ã¹ãå®çŸããããã«ã¯ãåã·ãŒãã®ç¹æ§ã«å¿ããEnumèšèšæŠç¥ãå¿ èŠã§ãã
åºæ¬èšèšæ¹é
- ã·ãŒãããšã«å°çšã®Enumåãå®çŸ©ãã
- Enumåã«ã¯å¯Ÿå¿ããã·ãŒãåãå«ãã
- å ±éé ç®ãããå Žåã§ããã·ãŒãããšã«ç¬ç«ããEnumèŠçŽ ãšããŠå®çŸ©ãã
' 売äžç®¡çã·ã¹ãã ã®åã·ãŒãçšEnumå®çŸ©äŸ
' ã¡ã€ã³ã®å£²äžããŒã¿ã·ãŒãçš
Public Enum e売äžããŒã¿ã·ãŒã
e_管çIDå = 1
e_å£²äžæ¥å
e_å¶æ¥æ
åœè
å
e_顧客ã³ãŒãå
e_顧客åå
e_ååã³ãŒãå
e_åååå
e_å䟡å
e_æ°éå
e_売äžéé¡å
e_åèå
End Enum
' 顧客ãã¹ã¿ã·ãŒãçš
Public Enum e顧客ãã¹ã¿ã·ãŒã
e_顧客ã³ãŒãå = 1
e_顧客åå
e_代衚è
åå
e_æåšå°å
e_é»è©±çªå·å
e_æ
åœå¶æ¥å
e_ç»é²æ¥å
e_æçµååŒæ¥å
End Enum
ã·ãŒãé飿ºåŠçã§ã®æŽ»çšãã¿ãŒã³
è€æ°ã®ã·ãŒãããæ
å ±ãååŸããŠåŠçãè¡ãéãEnumåãæŽ»çšããããšã§åŠçã®æå³ãæç¢ºã«ãªããã¡ã³ããã³ã¹æ§ã倧å¹
ã«åäžããŸãã
å
žåçãªæŽ»çšãã¿ãŒã³
- ãã¹ã¿ã·ãŒãããã®æ å ±ååŸ
- è€æ°ã·ãŒãã®ããŒã¿ãçµã¿åãããã¬ããŒãçæ
- ã·ãŒãéã§ã®ããŒã¿ç §åã»æ€èšŒ
' 売äžããŒã¿ãšé¡§å®¢ãã¹ã¿ã飿ºããåŠçã®èšèšäŸ
Public Sub ProcessSalesWithCustomerInfo()
Dim wsSales As Worksheet
Dim wsCustomer As Worksheet
Dim i As Long
Dim customerCode As String
' åã·ãŒããªããžã§ã¯ããååŸ
Set wsSales = ThisWorkbook.Worksheets("売äžããŒã¿")
Set wsCustomer = ThisWorkbook.Worksheets("顧客ãã¹ã¿")
' 売äžããŒã¿ãé æ¬¡åŠç
For i = 2 To 1000
' 売äžããŒã¿ãã顧客ã³ãŒããååŸ(Enumåã§æå³ãæç¢ºå)
customerCode = wsSales.Cells(i, e売äžããŒã¿ã·ãŒã.e_顧客ã³ãŒãå).Value
If customerCode <> "" Then
' 顧客ãã¹ã¿ããæ
åœå¶æ¥ãååŸããŠå£²äžããŒã¿ã«åæ
' (åŠçã®æå³ãEnumåã§æç¢ºã«è¡šçŸãããŠãã)
wsSales.Cells(i, e売äžããŒã¿ã·ãŒã.e_å¶æ¥æ
åœè
å).Value = _
GetValueFromCustomerMaster(wsCustomer, customerCode,_
e顧客ãã¹ã¿ã·ãŒã.e_æ
åœå¶æ¥å)
End If
Next i
End Sub
宿°ç®¡çã®äžå åã«ããä¿å®æ§åäž
ã·ã¹ãã å šäœã®å®æ°ç®¡çæŠç¥
Enumåã®å¹æãæå€§åããããã«ã¯ãã·ã¹ãã å šäœã§äœ¿çšããã宿°ãäžå çã«ç®¡çããããšãéèŠã§ããããã«ãããã·ã¹ãã ã®å€æŽç¹ãäžç®æã«éçŽããã¡ã³ããã³ã¹äœæ¥ãå¹çåã§ããŸãã
äžå 管çã®å¯Ÿè±¡ãšãªã宿°
- ã·ãŒãå
- ããŒã¿ç¯å²ã®éå§ã»çµäºäœçœ®
- ç¹å®ã»ã«ã®äœçœ®
- æ¥åã«ãŒã«ã«é¢ããæ°å€
- ã·ã¹ãã èšå®å€
' ã·ã¹ãã 宿°ç®¡çã¢ãžã¥ãŒã«ã®èšèšäŸ
Public Const WS_SALES_DATA As String = "売äžããŒã¿"
Public Const WS_CUSTOMER_MASTER As String = "顧客ãã¹ã¿"
Public Const WS_SALES_REPORT As String = "売äžã¬ããŒã"
' ããŒã¿åŠçç¯å²ã®å®æ°
Public Const DATA_START_ROW As Long = 2
Public Const MAX_DATA_ROWS As Long = 10000
Public Const HEADER_ROW As Long = 1
' æ¥åã«ãŒã«ã®å®æ°
Public Const DISCOUNT_THRESHOLD As Long = 100000
Public Const DISCOUNT_RATE As Double = 0.95
èšå®å€æŽæã®åœ±é¿ç¯å²æå°å
宿°ãäžå 管çããããšã§ãã·ã¹ãã ã®èšå®å€æŽãå¿ èŠã«ãªã£ãéã®åœ±é¿ç¯å²ãæå°åã§ããŸãã
圱é¿ç¯å²æå°åã®å¹æ
- 倿Žç®æã®ç¹å®ã容æã«ãªã
- ä¿®æ£æŒãã®ãªã¹ã¯ãå€§å¹ ã«æžå°ãã
- ãã¹ãç¯å²ãéå®ã§ãã
- ã·ã¹ãã ã®åäœãäºæž¬ãããããªã
äŸãã°ãããŒã¿åŠçã®éå§è¡ã2è¡ç®ãã3è¡ç®ã«å€æŽããå ŽåãåŸæ¥ææ³ã§ã¯é¢é£ããå
šãŠã®ã³ãŒããæ¢ãåºããŠä¿®æ£ããå¿
èŠããããŸããã宿°ã掻çšããŠããã°DATA_START_ROW
ã®å€ã倿Žããã ãã§å¯Ÿå¿å®äºã§ãã
å®è·µçãªã¡ã³ããã³ã¹æŠç¥ã®æ§ç¯
段éçå°å ¥ã¢ãããŒã
æ¢åã®VBAãããžã§ã¯ãã«Enumåãå°å ¥ããéã¯ã段éçãªã¢ãããŒããæ¡çšããããšã§ããªã¹ã¯ãæå°éã«æããªãã广ã宿ã§ããŸãã
æšå¥šå°å ¥ã¹ããã
- çŸç¶åæãã§ãŒãº: æ¢åã³ãŒãã§ããŒãã³ãŒãã£ã³ã°ãããŠããæ°å€ãæŽãåºã
- åªå 床決å®ãã§ãŒãº: 倿Žé »åºŠã®é«ãéšåããåªå çã«Enumåãã
- 段éçå®è£ ãã§ãŒãº: äžã€ã®ã·ãŒããŸãã¯æ©èœåäœã§Enumåãå°å ¥ãã
- 广æ€èšŒãã§ãŒãº: å°å ¥å¹æã確èªããæ¬¡ã®ã¹ããããèšç»ãã
- å šé¢å±éãã§ãŒãº: ã·ã¹ãã å šäœã«Enumåãé©çšãã
ããŒã éçºã§ã®EnumèŠçŽçå®
è€æ°äººã§VBAéçºãè¡ãå ŽåãEnumåã®åœåèŠåã䜿çšã«ãŒã«ãçµ±äžããããšã§ãããŒã å šäœã®ã¡ã³ããã³ã¹å¹çãåäžãããããšãã§ããŸãã
æšå¥šåœåèŠå
- Enumåå: ãe + 察象ã·ãŒãå + åããŸãã¯ãe + 察象ã·ãŒãå + è¡ã
- EnumèŠçŽ å: ãe_ + é ç®å + åããŸãã¯ãe_ + é ç®å + è¡ã
- 宿°å: å šãŠå€§æåã§ã¢ã³ããŒã¹ã³ã¢åºåã
䜿çšã«ãŒã«äŸ
- æ°ããã·ãŒãã远å ããéã¯ãå¿ ã察å¿ããEnumåãå®çŸ©ãã
- Enumå®çŸ©ã¯å°çšã®ã¢ãžã¥ãŒã«ã«éçŽãã
- EnumèŠçŽ ã®å逿ã¯ã³ã¡ã³ãã¢ãŠãã§å¯Ÿå¿ããå®å šåé€ã¯é¿ãã
é·æçãªã¡ã³ããã³ã¹èšç»
EnumåãæŽ»çšããã·ã¹ãã ã®é·æçãªã¡ã³ããã³ã¹æ§ãç¶æããããã«ã¯ã以äžã®ç¹ãç¶ç¶çã«å®æœããããšãéèŠã§ãã
宿çãªèŠçŽãé ç®
- 䜿çšãããªããªã£ãEnumèŠçŽ ã®æŽç
- æ°ããæ¥åèŠä»¶ã«å¯Ÿå¿ããEnumæ¡åŒµ
- åœåèŠåã®äžè²«æ§ãã§ãã¯
- ããã©ãŒãã³ã¹ãžã®åœ±é¿ç¢ºèª
ææžåã®éèŠæ§
Enumåã®èšèšææ³ã倿Žå±¥æŽãææžåããããšã§ãå°æ¥ã®éçºè
ïŒå°æ¥ã®èªåãå«ãïŒãã·ã¹ãã ãçè§£ãããããªããŸãã
ç¶ç¶çæ¹åã®èŠç¹
Enumåã®å°å ¥ã¯äžåºŠããã®äœæ¥ã§ã¯ãããŸãããæ¥åã®å€åã«å¿ããŠç¶ç¶çã«èŠçŽããæ¹åããŠããããšã§ãé·æçãªã¡ã³ããã³ã¹æ§åäžå¹æãç¶æã§ããŸãã宿çãªæ¯ãè¿ããè¡ããããå¹ççãªEnumèšèšã远æ±ããŠãããŸãããã
ãŸãšã
ä»å解説ããEnumåãæŽ»çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯ã¯ãã·ãŒãã¬ã€ã¢ãŠãã®å€æŽãé »ç¹ã«çºçããå®éã®æ¥åç°å¢ã«ãããŠãéçºè ããå°çã®ãããªä¿®æ£äœæ¥ãããè§£æŸããå®çšçãªææ³ã§ãããã®ãã¯ããã¯ã掻çšããããšã§ããåçªå·ã®å€æŽã§ãã¯ããåããªããªãããã·ãŒãä¿®æ£ã®ãã³ã«å šã³ãŒããèŠçŽãå¿ èŠãããããšããåé¡ããè§£æŸããã倿Žã«å¯ŸããŠèªå远åŸããçã«ã¡ã³ããã³ã¹æ§ã®é«ããã¯ãã·ã¹ãã ãå®çŸã§ããŸãã
å®è£ æã«ç¹ã«éèŠãªã®ã¯ã段éçå°å ¥ã¢ãããŒãã«ãããªã¹ã¯æå°åãšããŒã éçºã§ã®èŠçŽçµ±äžã®åŸ¹åºã§ããæ¢åã·ã¹ãã ãžã®åœ±é¿ãæå°éã«æããªãã广ã宿ã§ãããããåªå 床ã®é«ãéšåããé æ¬¡Enumåãé²ããåœåèŠåã®äžè²«æ§ãä¿ã€ããšã§ãå®çšçã§å ç¢ãªã·ã¹ãã ãäœæã§ããŸãããŸããç¶ç¶çãªèŠçŽããšææžåã«ããé·æçãªã¡ã³ããã³ã¹æ§ãç¶æããæ¥åã®å€åã«å¿ããæè»ãªå¯Ÿå¿ãå¯èœãªèšèšãšããããšã§ãä»ã®ãããžã§ã¯ãã§ã容æã«æŽ»çšã§ããæ±çšçãªã¡ã³ããã³ã¹ææ³ãšããŠçºå±ãããããšãå¯èœã§ãã
次åã¯ãExcel VBAã«ãããåçªå·ããã¢ã«ãã¡ããã倿ãã¯ããã¯ã«ã€ããŠè©³ãã解説ããŸãïŒæ°å€ã®åçªå·ïŒ1, 2, 3...ïŒãã¢ã«ãã¡ããã圢åŒïŒA, B, C...ïŒã«å€æããåŠçãããAA, AB, AC...ãšãã£ãè€æ°æåã®ååãžã®å¯Ÿå¿ãŸã§ããRangeæå®ã§ã¢ã«ãã¡ãããååãæå®ãããããåçã«çæããåçªå·ãã»ã«ç¯å²ãšããŠæ±ãããããšãã£ãããŒãºã«å¿ããææ³ãã玹ä»ããŸãããã²ãæåŸ ãã ããïŒ