ð Word VBA Find ExecuteïŒWord VBAã§æååãæ€çŽ¢ïŒ

Word VBAã§æååæ€çŽ¢ãå®è¡ããæ¹æ³ã解説ããŸããWord VBAã¯ãMicrosoft Wordã§ãã䜿çšããŠäœæ¥ãèªååããããã®ããã°ã©ãã³ã°èšèªã§ããVBAã䜿ã£ãŠæååæ€çŽ¢ãå®è¡ããããšã§ãç¹å®ã®åèªããã¬ãŒãºãè¿ éã«æ¢ãåºãããšãå¯èœã«ãªããŸããæ¬èšäºã§ã¯ãWord VBAã§ã®æ€çŽ¢å®è¡æé ããæ€çŽ¢ãªãã·ã§ã³ã®èšå®æ¹æ³ãæ€çŽ¢çµæã®åŠçæ¹æ³ãªã©ãåºæ¬çãªç¥èããå¿çšçãªãã¯ããã¯ãŸã§ããããããã説æããŠãããŸããWordã®äœæ¥å¹çãåçã«åäžãããã人ã¯ããã²ãã§ãã¯ããŠã¿ãŠãã ããïŒ
- Word VBAã§æååãæ€çŽ¢ããå Žåãã©ã®ãããªæ¹æ³ããããŸããïŒ Word VBAã®Find.Executeã¡ãœããã§æ€çŽ¢ããæååãèŠã€ãããªãå Žåãã©ã®ããã«ãšã©ãŒåŠçãå®æœããŸããïŒ Word VBAã§æ€çŽ¢ããæååã«ã¯ã€ã«ãã«ãŒãæåãå«ããæ¹æ³ã¯ãããŸããïŒ Word VBAã§è€æ°ã®ææžãåæã«æ€çŽ¢ããæ¹æ³ã¯ãããŸããïŒ
- ð Word VBA Find ExecuteïŒWord VBAã§æååãæ€çŽ¢ïŒ
- Excel VBAã§æååãã©ããã確èªããã«ã¯ïŒ
- VBAã®Findã¡ãœãããšã¯ïŒ
- VBAã§Findã¡ãœããã§ã»ã«ãèŠã€ãããªãã£ãå Žåãæ»ãå€ã¯ïŒ
- Wordã®VBAã§äœãã§ããŸããïŒ
- ãããã質å
Word VBAã§æååãæ€çŽ¢ããå Žåãã©ã®ãããªæ¹æ³ããããŸããïŒ Word VBAã®Find.Executeã¡ãœããã§æ€çŽ¢ããæååãèŠã€ãããªãå Žåãã©ã®ããã«ãšã©ãŒåŠçãå®æœããŸããïŒ Word VBAã§æ€çŽ¢ããæååã«ã¯ã€ã«ãã«ãŒãæåãå«ããæ¹æ³ã¯ãããŸããïŒ Word VBAã§è€æ°ã®ææžãåæã«æ€çŽ¢ããæ¹æ³ã¯ãããŸããïŒ
Word VBAã§æååãæ€çŽ¢ããå Žåã次ã®ãããªæ¹æ³ããããŸãã
æ€çŽ¢æ¹æ³ã®çš®é¡
Word VBAã§æååãæ€çŽ¢ããå ŽåãFindãªããžã§ã¯ãã䜿çšããŸããFindãªããžã§ã¯ãã«ã¯ãExecuteã¡ãœãããClearFormattingã¡ãœãããFontããããã£ãªã©ããããŸããæ€çŽ¢æ¹æ³ã®çš®é¡ã¯ä»¥äžã®ãšããã§ãã
- æå®ããæååãæ€çŽ¢ãã
- ã¯ã€ã«ãã«ãŒãæåãå«ãæååãæ€çŽ¢ãã
- æå®ãããã©ã³ããæåè²ã§æ€çŽ¢ãã
ãšã©ãŒåŠç
Word VBAã®Find.Executeã¡ãœããã§æ€çŽ¢ããæååãèŠã€ãããªãå Žåããšã©ãŒåŠçãå®æœããå¿ èŠããããŸãããšã©ãŒåŠçã®æ¹æ³ã¯ä»¥äžã®ãšããã§ãã
- ãšã©ãŒãã³ãã©ãŒã䜿çšããŠãšã©ãŒããã£ãããã
- ãšã©ãŒãçºçããå Žåãæå®ããåŠçãå®è¡ãã
- ãšã©ãŒãçºçããªãã£ãå Žåãæ£åžžåŠçãå®è¡ãã
ã¯ã€ã«ãã«ãŒãæåãå«ããæ¹æ³
Word VBAã§æ€çŽ¢ããæååã«ã¯ã€ã«ãã«ãŒãæåãå«ããæ¹æ³ã¯ä»¥äžã®ãšããã§ãã
- ã¢ã¹ã¿ãªã¹ã¯ïŒïŒã䜿çšããŠä»»æã®æååãè¡šã
- ã¯ãšã¹ãã§ã³ããŒã¯ïŒ?ïŒã䜿çšããŠä»»æã®1æåãè¡šã
- äžãã£ãïŒ[]ïŒã䜿çšããŠæå®ããæåã»ãããè¡šã
è€æ°ã®ææžãåæã«æ€çŽ¢ããæ¹æ³
Word VBAã§è€æ°ã®ææžãåæã«æ€çŽ¢ããæ¹æ³ã¯ä»¥äžã®ãšããã§ãã
- ææžã®ã³ã¬ã¯ã·ã§ã³ãã«ãŒãããåææžã§æ€çŽ¢ãå®è¡ãã
- æ€çŽ¢çµæãæå®ããå€æ°ã«æ ŒçŽããæåŸã«çµæã衚瀺ãã
- ææžã®ã³ã¬ã¯ã·ã§ã³ã䜿çšããŠãæå®ãããã©ã«ãå ã®ãã¹ãŠã®ææžãæ€çŽ¢ãã
ð Word VBA Find ExecuteïŒWord VBAã§æååãæ€çŽ¢ïŒ
Word VBAã§ã¯ãFindãªããžã§ã¯ãã䜿çšããŠããã¥ã¡ã³ãå ã®ç¹å®ã®æååãæ€çŽ¢ããããšãã§ããŸãããã®æ©èœãå©çšãããšãããã¥ã¡ã³ãå ã®ç¹å®ã®åèªããã¬ãŒãºãè¿ éã«æ€çŽ¢ã»çœ®æã§ãããããæç« ã®ç·šéäœæ¥ãå¹çåãããŸããæ¬èšäºã§ã¯ãWord VBAã§ã®æååæ€çŽ¢ã«é¢ããåºæ¬çãªäœ¿ãæ¹ãããããé«åºŠãªæ€çŽ¢æ¹æ³ãŸã§è©³ãã解説ããŸãã
Findãªããžã§ã¯ãã®åºæ¬çãªäœ¿ãæ¹
Findãªããžã§ã¯ãã䜿çšããã«ã¯ããŸãSelection.Find
ãŸãã¯Range.Find
ããããã£ã䜿çšããŠFindãªããžã§ã¯ããååŸããŸãã次ã«ãText
ããããã£ã«æ€çŽ¢ãããæååãèšå®ããExecute
ã¡ãœãããåŒã³åºããŸãã
æ€çŽ¢ãªãã·ã§ã³ã®èšå®
Findãªããžã§ã¯ãã«ã¯ãæ€çŽ¢ãªãã·ã§ã³ãèšå®ããããã®ããŸããŸãªããããã£ããããŸããããšãã°ã倧æåãšå°æåãåºå¥ããŠæ€çŽ¢ããå Žåã¯ãMatchCase
ããããã£ãTrue
ã«èšå®ããŸãããŸããå
šäœäžèŽã§æ€çŽ¢ããå Žåã¯ãMatchWholeWord
ããããã£ãTrue
ã«èšå®ããŸãã
æ€çŽ¢çµæã®æäœ
Findãªããžã§ã¯ãã®Execute
ã¡ãœãããåŒã³åºããšãæ€çŽ¢çµæãèŠã€ãã£ãå Žåã«True
ãè¿ãããŸããæ€çŽ¢çµæãæäœããã«ã¯ãExecute
ã¡ãœããã®æ»ãå€ãè©äŸ¡ããèŠã€ãã£ãå Žåã«é©åãªåŠçãå®è¡ããŸãã
眮æã®å®è¡
Findãªããžã§ã¯ãã䜿çšããŠæ€çŽ¢çµæã眮æããããšãã§ããŸãã眮æãè¡ãã«ã¯ãReplace
ããããã£ã«çœ®æåŸã®æååãèšå®ããExecute
ã¡ãœããã®Replace
åŒæ°ã«wdReplaceAll
ãæå®ããŸãã
ã¯ã€ã«ãã«ãŒãã䜿çšããæ€çŽ¢
Word VBAã®Findãªããžã§ã¯ãã§ã¯ãã¯ã€ã«ãã«ãŒãã䜿çšããŠæè»ãªæ€çŽ¢ãå¯èœã§ããã¯ã€ã«ãã«ãŒãã䜿çšããã«ã¯ãMatchWildcards
ããããã£ãTrue
ã«èšå®ããText
ããããã£ã«ã¯ã€ã«ãã«ãŒããå«ãæ€çŽ¢æååãèšå®ããŸãã
ã¯ã€ã«ãã«ãŒã | æå³ |
---|---|
ä»»æã®0æå以äžã®æååã«äžèŽ | |
? | ä»»æã®1æåã«äžèŽ |
[ ] | è§ã«ãã³å ã«ããä»»æã®1æåã«äžèŽ |
[! ] | è§ã«ãã³å ã«ãªãä»»æã®1æåã«äžèŽ |
@ | å è¡ãŸãã¯åŸç¶ã®æåãšã®éã«ããä»»æã®1æåã«äžèŽ |
Excel VBAã§æååãã©ããã確èªããã«ã¯ïŒ
Excel VBAã§æååãã©ããã確èªããã«ã¯ã`IsNumeric`é¢æ°ã䜿çšããæ¹æ³ãã`VarType`é¢æ°ã䜿çšããæ¹æ³ããããŸãã
IsNumericé¢æ°ã䜿çšããæ¹æ³
`IsNumeric`é¢æ°ã¯ãå€æ°ãæ°å€ãã©ãããå€å®ããŸããæ°å€ã§ãªãå Žåãããã¯æååã§ããå¯èœæ§ãé«ãã§ãã
- IsNumeric(å€æ°) ã䜿çšããŠãå€æ°ãæ°å€ãã©ããã確èªããŸãã
- æ»ãå€ãFalseã®å Žåãå€æ°ã¯æ°å€ã§ãªããããæååã§ããå¯èœæ§ãé«ãã§ãã
- æ»ãå€ãTrueã®å Žåãå€æ°ã¯æ°å€ã§ãã
VarTypeé¢æ°ã䜿çšããæ¹æ³
`VarType`é¢æ°ã¯ãå€æ°ã®ããŒã¿åãè¿ããŸããæååã®å Žåã`vbString` (8) ãè¿ããŸãã
- VarType(å€æ°) ã䜿çšããŠãå€æ°ã®ããŒã¿åãååŸããŸãã
- æ»ãå€ãvbString (8)ã®å Žåãå€æ°ã¯æååã§ãã
- æ»ãå€ãvbString (8)以å€ã®å Žåãå€æ°ã¯æååã§ã¯ãããŸããã
TypeNameé¢æ°ã䜿çšããæ¹æ³
`TypeName`é¢æ°ã¯ãå€æ°ã®ããŒã¿ååãè¿ããŸããæååã®å ŽåãString ãè¿ããŸãã
- TypeName(å€æ°) ã䜿çšããŠãå€æ°ã®ããŒã¿ååãååŸããŸãã
- æ»ãå€ãStringã®å Žåãå€æ°ã¯æååã§ãã
- æ»ãå€ãString以å€ã®å Žåãå€æ°ã¯æååã§ã¯ãããŸããã
VBAã®Findã¡ãœãããšã¯ïŒ
VBAã®Findã¡ãœãããšã¯ãExcelã®VBAïŒVisual Basic for ApplicationsïŒã§ããŒã¿ãæ€çŽ¢ããããã®æ©èœã§ããã¯ãŒã¯ã·ãŒããç¯å²å ììç¹å®ã®å€ãæååãæ€çŽ¢ãããã®çµæãè¿ãããšãã§ããŸããFindã¡ãœããã䜿çšããããšã§ãããŒã¿ã®æ€çŽ¢ã眮æãç¹å®ã®æ¡ä»¶ã«äžèŽããã»ã«ã®æäœãªã©ãè¡ãããšãã§ããŸãã
Findã¡ãœããã®åºæ¬çãªäœ¿ãæ¹
Findã¡ãœããã䜿çšããã«ã¯ãæ€çŽ¢å¯Ÿè±¡ã®ç¯å²ãã¯ãŒã¯ã·ãŒããªããžã§ã¯ãã«å¯ŸããŠFindã¡ãœãããåŒã³åºããŸããäŸãã°ãã¯ãŒã¯ã·ãŒãã®ãA1ããšãB10ãã®ç¯å²å ã§å€ãã100ãã®ã»ã«ãæ€çŽ¢ããå Žåã¯ã次ã®ããã«èšè¿°ããŸãã
- æ€çŽ¢ç¯å²ã®èšå®ïŒRange(A1:B10)
- Findã¡ãœããã®åŒã³åºãïŒRange(A1:B10).Find(What:=100)
- æ€çŽ¢çµæã®ååŸïŒSet result = Range(A1:B10).Find(What:=100)
Findã¡ãœããã®ãªãã·ã§ã³
Findã¡ãœããã«ã¯ãæ€çŽ¢ã®æ¡ä»¶ãæå®ããããã®ãªãã·ã§ã³ãçšæãããŠããŸããäž»ãªãªãã·ã§ã³ã¯ä»¥äžã®éãã§ãã
- WhatïŒæ€çŽ¢ããå€ãæååãæå®ããŸãã
- LookInïŒæ€çŽ¢å¯Ÿè±¡ã®ã»ã«ã®å€ïŒxlValuesïŒãåŒïŒxlFormulasïŒãæå®ããŸãã
- LookAtïŒå®å šäžèŽïŒxlWholeïŒãéšåäžèŽïŒxlPartïŒãæå®ããŸãã
æ€çŽ¢çµæã®æäœ
Findã¡ãœããã§ååŸããæ€çŽ¢çµæãå©çšããŠãããŒã¿ã®æäœã眮æãè¡ãããšãã§ããŸããäŸãã°ãæ€çŽ¢çµæã®ã»ã«ã®å€ãå€æŽããå Žåããæ€çŽ¢çµæã«åºã¥ããŠä»ã®ã»ã«ã®å€ãèšå®ããããšãã§ããŸãã
- æ€çŽ¢çµæã®ã»ã«ã®å€ãå€æŽïŒresult.Value = å€æŽåŸã®å€
- æ€çŽ¢çµæã«åºã¥ããŠä»ã®ã»ã«ã®å€ãèšå®ïŒCells(result.Row, C).Value = 察å¿ããå€
- æ€çŽ¢çµæã®ã»ã«ãéžæïŒresult.Select
VBAã§Findã¡ãœããã§ã»ã«ãèŠã€ãããªãã£ãå Žåãæ»ãå€ã¯ïŒ
VBAã§Findã¡ãœããã䜿çšããŠã»ã«ãèŠã€ãããªãã£ãå Žåãæ»ãå€ã¯Nothingã«ãªããŸããããã¯ãèŠã€ãã£ãã»ã«ã«å¯ŸããŠäœãæäœãè¡ãåã«ãæ»ãå€ãNothingã§ãªãããšã確èªããããšãéèŠã§ãã
Nothingã®ç¢ºèªæ¹æ³
ã»ã«ãèŠã€ãããªãã£ãå Žåã®Nothingã確èªããæ¹æ³ã¯ä»¥äžã®éãã§ãã
- Findã¡ãœããã®çµæãå€æ°ã«ä»£å ¥ããŸãã
- Ifæã䜿çšããŠãå€æ°ãNothingãã©ããã確èªããŸãã
- å€æ°ãNothingã§ãªãå Žåã«ã®ã¿ãèŠã€ãã£ãã»ã«ã«å¯ŸããŠæäœãè¡ããŸãã
Nothingã ã£ãå Žåã®åŠç
Findã¡ãœããã®æ»ãå€ãNothingã ã£ãå Žåã®åŠçã¯ä»¥äžã®ãããªãã®ããããŸãã
- ãŠãŒã¶ãŒã«ã¡ãã»ãŒãžã衚瀺ããŠãã»ã«ãèŠã€ãããªãã£ãããšãç¥ãããŸãã
- å¥ã®æ€çŽ¢æ¡ä»¶ã§å床Findã¡ãœãããå®è¡ããŸãã
- ç¹å®ã®åŠçãã¹ããããã次ã®åŠçã«ç§»ããŸãã
Findã¡ãœããã®äœ¿ãæ¹
Findã¡ãœãããæ£ç¢ºã«äœ¿çšããããšã§ãã»ã«ãèŠã€ãããªãå Žåã®ãšã©ãŒãé²ãããšãã§ããŸãã
- æ€çŽ¢ç¯å²ãæå®ããŸããäŸãã°ãActiveSheet.Cellsãªã©ã
- æ€çŽ¢ãããæååãæ°å€ãæå®ããŸãã
- æ€çŽ¢ãªãã·ã§ã³ãæå®ããŸããäŸãã°ãLookInãLookAtãSearchOrderãªã©ã
Wordã®VBAã§äœãã§ããŸããïŒ
Wordã®VBAã§ã§ããããšã¯ãWordã®æ©èœãèªååããäœæ¥å¹çãåäžãããããã®ããäœæããããšã§ããå ·äœçã«ã¯ã以äžã®ãããªããšãã§ããŸãã
ææžã®èªåå
Wordã®VBA ã䜿çšãããšãææžã®äœæãç·šéãä¿åãªã©ãèªååããããšãã§ããŸããããšãã°ã以äžã®ãããªã¿ã¹ã¯ãèªååã§ããŸãã
- ææžã®äœæ: ãã³ãã¬ãŒãã«åºã¥ããŠæ°ããææžãäœæããã
- ææžã®ç·šé: ææžå ã®ç¹å®ã®æååãæ€çŽ¢ããŠçœ®æããããã©ã³ãã段èœèšå®ãå€æŽãããªã©ã
- ææžã®ä¿å: ææžãç¹å®ã®ãã©ã«ãã«èªåçã«ä¿åããã
ããŒã¿ã®æœåºãšæŽåœ¢
Wordã®VBA ã䜿ã£ãŠãææžããç¹å®ã®ããŒã¿ãæœåºããããããŒã¿ãæŽåœ¢ãããããããšãã§ããŸãã以äžã®ãããªããšãå¯èœã§ãã
- ããŒã¿ã®æœåº: ææžããç¹å®ã®ããã¹ããè¡šãæœåºããã
- ããŒã¿ã®æŽåœ¢: æœåºããããŒã¿ãæŽåœ¢ããå¥ã®ææžãããŒã¿ããŒã¹ã«ä¿åããã
- ããŒã¿ã®åæ: ææžå ã§ç¹°ãè¿ãããåèªããã¬ãŒãºãåæããé »åºŠãã«ãŠã³ãããã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ã«ã¹ã¿ãã€ãº
Wordã®VBA ã䜿çšããŠããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãã«ã¹ã¿ãã€ãºããç¬èªã®ã¡ãã¥ãŒããã¿ã³ãè¿œå ããããšãã§ããŸããããã«ããããã䜿ãæ©èœã«çŽ æ©ãã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
- ã«ã¹ã¿ã ã¡ãã¥ãŒã®äœæ: ç¬èªã®ã¡ãã¥ãŒãäœæããé »ç¹ã«äœ¿çšãããã«çŽ æ©ãã¢ã¯ã»ã¹ã§ããããã«ããã
- ãã¿ã³ã®è¿œå : ãªãã³ãã¯ã€ãã¯ã¢ã¯ã»ã¹ããŒã«ããŒã«ç¬èªã®ãã¿ã³ãè¿œå ããããå®è¡ããããã®ã·ã§ãŒãã«ãããæäŸããã
- ãã€ã¢ãã°ããã¯ã¹ã®äœæ: ãŠãŒã¶ãŒããã®å ¥åãåãä»ããããã®ã«ã¹ã¿ã ãã€ã¢ãã°ããã¯ã¹ãäœæããã
ãããã質å
Word VBAã§æååãæ€çŽ¢ããæ¹æ³ã¯äœã§ããïŒ
Word VBAã§æååãæ€çŽ¢ããã«ã¯ãFindãªããžã§ã¯ãã䜿çšããŸããFindãªããžã§ã¯ãã¯ãææžå ã§ç¹å®ã®æååãæ€çŽ¢ããããã«äœ¿çšãããéåžžã«æè»ãªæ¹æ³ã§ãããŸããRangeãªããžã§ã¯ããŸãã¯Selectionãªããžã§ã¯ãã®Findããããã£ã䜿çšããŠFindãªããžã§ã¯ããååŸãã次ã«Executeã¡ãœãããåŒã³åºããŠæ€çŽ¢ãå®è¡ããŸããæ€çŽ¢æ¡ä»¶ã¯ãTextããããã£ãMatchCaseããããã£ãMatchWholeWordããããã£ãªã©ãFindãªããžã§ã¯ãã®æ§ã ãªããããã£ãèšå®ããããšã§æå®ã§ããŸãã
Word VBAã§æ€çŽ¢ããæååã眮æããæ¹æ³ã¯ïŒ
Word VBAã§æ€çŽ¢ããæååã眮æããã«ã¯ãFindãªããžã§ã¯ãã®Executeã¡ãœããã䜿çšããŸãã眮æãè¡ãããã«ãExecuteã¡ãœããã®Replaceãã©ã¡ãŒã¿ãŒãèšå®ããŸãããã®ãã©ã¡ãŒã¿ãŒã«wdReplaceAllãæå®ãããšãæ€çŽ¢æ¡ä»¶ã«äžèŽãããã¹ãŠã®æååã眮æãããŸãããŸããReplaceWithããããã£ã䜿çšããŠã眮æåŸã®æååãæå®ããŸããããã«ãããæ€çŽ¢æ¡ä»¶ã«äžèŽããæååãã¹ãŠããæå®ãããæååã«çœ®æãããŸãã
Word VBAã§å€§æåãšå°æåãåºå¥ããŠæ€çŽ¢ããã«ã¯ã©ãããã°ããã§ããïŒ
Word VBAã§å€§æåãšå°æåãåºå¥ããŠæ€çŽ¢ããã«ã¯ãFindãªããžã§ã¯ãã®MatchCaseããããã£ãTrueã«èšå®ããŸããããã«ãããæ€çŽ¢ã¯å€§æåãšå°æåãåºå¥ããŠè¡ãããŸããäŸãã°ããWordããšæ€çŽ¢ããå ŽåããwordãããWORDãã¯æ€çŽ¢çµæã«å«ãŸããŸããããã®æ©èœã¯ãç¹å®ã®ã±ãŒã¹ã§æ£ç¢ºãªæååãæ€çŽ¢ããå¿ èŠãããå Žåã«éåžžã«äŸ¿å©ã§ãã
Word VBAã§æ€çŽ¢ãå®è¡ããéãç¹å®ã®ç¯å²ãæå®ããæ¹æ³ã¯ïŒ
Word VBAã§æ€çŽ¢ãå®è¡ããéã«ç¹å®ã®ç¯å²ãæå®ããã«ã¯ãRangeãªããžã§ã¯ãã䜿çšããŸããRangeãªããžã§ã¯ãã¯ãææžã®ç¹å®ã®éšåãè¡šããŸãããŸããæ€çŽ¢ç¯å²ãè¡šãRangeãªããžã§ã¯ããäœæãããã®Findããããã£ã䜿çšããŠFindãªããžã§ã¯ããååŸããŸãããã®åŸãExecuteã¡ãœãããåŒã³åºããŠæ€çŽ¢ãå®è¡ããŸããããã«ãããæå®ãããç¯å²å ã§ã®ã¿æ€çŽ¢ãè¡ãããŸãã
ð Word VBA Find ExecuteïŒWord VBAã§æååãæ€çŽ¢ïŒ ã«é¡äŒŒããä»ã®èšäºãç¥ãããå Žåã¯ãWord æåã»æç« ç·šé ã«ããŽãªã«ã¢ã¯ã»ã¹ããŠãã ããã
ã³ã¡ã³ããæ®ã
é¢é£èšäº