Excel VBAã«ãããç®æ¬¡èªåçæã®å®è£ ãã¯ããã¯
ç§ã¯VBAã®æŽ»çšçµéšãéããŠåŸãç¥èãæŽçããå ±æããç®çã§èšäºãäœæããŠããããã°ã©ãã³ã°æŽ2幎ã«ãªããšã³ãžãã¢ã§ããååã¯ããã¯ããã¢ãã€ã³åããŠå šããã¯ã§äœ¿çšå¯èœã«ããå®è£ ãã¯ããã¯ã«ã€ããŠè©³ãã説æããŸãããä»åã¯ãã¢ã¯ãã£ãããã¯ã«ç®æ¬¡ã·ãŒããèªåçæããå®è£ ãã¯ããã¯ã«ã€ããŠè§£èª¬ããŸãã
- 第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ã«ãããåçªå·ããã¢ã«ãã¡ããã倿ã®å¹ççå®è£ ãã¯ããã¯
- 第31å: Excel VBAã«ãããéè€ã®ãªãã·ãŒãåçæã®å¹ççå®è£ ãã¯ããã¯
- 第32å: Excel VBAã«ãããã»ã«åç §åœ¢åŒã®åãæ¿ããã¯ããã¯
- 第33å: Excel VBAã«ãããã·ãŒã衚瀺å¶åŸ¡ã®å®è£ ãã¯ããã¯
- 第34å: Excel VBAã«ãããAI掻çšã«ããã³ãŒãçæã®å®è£ ãã¯ããã¯
- 第35å: Excel VBAãã¯ãã®ã¢ãã€ã³åã«ããããã¯å ±æãã¯ããã¯
- 第36å: Excel VBAã«ãããç®æ¬¡èªåçæã®å®è£ ãã¯ããã¯ïŒæ¬èšäºïŒ
- 第37å: Excel VBAã«ãããWindowsã¯ãªããããŒãå±¥æŽãžã®ã»ã«å€é£ç¶ã³ããŒå®è£ ãã¯ããã¯
- 第38å: Excel VBAã§è€æ°å察å¿ã®ãã£ã«ã¿å¯èŠã»ã«ååŸé¢æ°ãå®è£ ãããã¯ããã¯
- 第39å: Excel VBAã§å¯å€åŒæ°ã掻çšããæååé£çµé¢æ°ãå®è£ ãããã¯ããã¯
- 第40å: Excel VBAã«ãããRangeãªããžã§ã¯ãã®åºç€ããå®è·µçãªæŽ»çšãã¯ããã¯ãŸã§
ç®æ¬¡
- ã¯ããã«
- å€ã·ãŒã管çã«ãããå®å課é¡
- ç®æ¬¡èªåçæãã¯ãã®èšèšææ³
- ç®æ¬¡äœæãã¯ãã®ã³ãŒã
- åºæ¬å®è£ : ç®æ¬¡ã·ãŒãã®äœæåŠç
- ãã€ããŒãªã³ã¯ã«ããããã²ãŒã·ã§ã³å®è£
- ãŠãŒã¶ããªãã£åäžã®ããã®å·¥å€«
- å¿çšäŸãšæ¡åŒµã®ãã³ã
- ãŸãšã
ã¯ããã«
Excelæ¥åã§æ±ãããã¯ã¯ããããžã§ã¯ãã®é²è¡ãæ¥åã®è€éåã«äŒŽããã·ãŒãæ°ãå¢å ããŠããåŸåããããŸããã·ãŒãæ°ãå¢ãããšãç®çã®ã·ãŒããæ¢ãããã«ç»é¢äžéšã®ã·ãŒãåãæ¿ããã¿ã³ãã¯ãªãã¯ãç¶ããããšããéå¹çãªäœæ¥ãçºçããŸãã
ãã®åé¡ã解決ããæã广çãªæ¹æ³ããç®æ¬¡ã·ãŒãã®äœæã§ããåã·ãŒããžã®ãã€ããŒãªã³ã¯ãé 眮ããç®æ¬¡ãçšæããããšã§ãã©ãã ãã·ãŒãæ°ãå€ããŠããç®çã®ã·ãŒãã«çŽ æ©ãã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
ããããæåã§ç®æ¬¡ãäœæããã·ãŒãã®è¿œå ã»åé€ã®ãã³ã«æŽæ°ããã®ã¯ç ©éãªäœæ¥ã§ããååã®èšäºã§è§£èª¬ããã¢ãã€ã³åã®ç¥èãæŽ»çšããã°ããã®ç®æ¬¡äœæåŠçãã©ã®ããã¯ã§ãäžç¬ã§å®è¡ã§ããæ±çšçãªããŒã«ãšããŠå®è£ ã§ããŸãã
å€ã·ãŒã管çã«ãããå®å課é¡
ã·ãŒãæ°å¢å ã«ãã£ãŠçºçããåé¡
-
ç®çã®ã·ãŒããžã®ã¢ã¯ã»ã¹ãå°é£
- ã·ãŒãã¿ããäœåºŠãã¯ãªãã¯ããå¿ èŠããã
- 䌌ãååã®ã·ãŒããééãããã
- äœæ¥å¹çãèããäœäžãã
-
ããã¯æ§é ã®ææ¡ãå°é£
- ã©ã®ã·ãŒããéèŠãåãããªã
- ã©ã®ã·ãŒããææ°ã®ããŒã¿ãäžæç¢º
- æ°ããã¡ã³ããŒãžã®èª¬æãç ©éã«ãªã
-
ã¡ã³ããã³ã¹æ§ã®äœäž
- äžèŠãªã·ãŒããæŸçœ®ããã
- ã·ãŒãã®åœ¹å²ãäžæç¢ºã«ãªã
- ããã¯å šäœã®ç®¡çãå°é£ã«ãªã
æåã§ã®ç®æ¬¡äœæã»æŽæ°ã®éå¹çæ§
æåã§ç®æ¬¡ã·ãŒããäœæããå Žåã以äžã®ãããªäœæ¥ãå¿ èŠã«ãªããŸãã
æåäœæã®æé
- ç®æ¬¡çšã®æ°ããã·ãŒããäœæ
- åã·ãŒãåãæå ¥åãŸãã¯ã³ããŒïŒããŒã¹ã
- åã·ãŒãåã«ãã€ããŒãªã³ã¯ãåå¥ã«èšå®
- ã·ãŒãã远å ã»åé€ããããã³ã«ç®æ¬¡ãæŽæ°
æåäœæã®åé¡ç¹
| åé¡ | åœ±é¿ |
|---|---|
| æéãããã | 20æã®ã·ãŒããªã10åä»¥äž |
| å ¥åãã¹ | ã·ãŒãåã®èª€å ¥åããªã³ã¯èšå®ãã¹ |
| æŽæ°æŒã | ã·ãŒã倿޿ã®ç®æ¬¡æŽæ°ãå¿ãã |
| å±äººå | äœæè 以å€ãæŽæ°æ¹æ³ãç¥ããªã |
ããŒã å ±ææã®èª²é¡
ããã¯ãè€æ°äººã§å ±æããŠããå Žåãããã«åé¡ãè€éåããŸãã
å ±æç°å¢ã§ã®èª²é¡
- åã¡ã³ããŒãç¬èªã«ã·ãŒãã远å ãããããå šäœæ§é ãææ¡ãã¥ãã
- ç®æ¬¡ã®æŽæ°ãèª°ãæ åœãããäžæç¢º
- ç®æ¬¡ããªãããšã§ãä»ã®ã¡ã³ããŒã®äœæ¥å 容ãåãããªã
- äŒè°ãå ±åã®éã«ããã®ã·ãŒãã¯ã©ã?ããšããæéã®ãã¹ãçºç
ç®æ¬¡èªåçæãã¯ãã®èšèšææ³
æ±ããããæ©èœèŠä»¶
广çãªç®æ¬¡èªåçæãã¯ãã«ã¯ã以äžã®æ©èœãå¿ èŠã§ãã
å¿ é æ©èœ
- æ¢åã®ç®æ¬¡ã·ãŒãã®æç¡ãå€å®ããé©åã«åŠçãã
- ãã¹ãŠã®ã·ãŒãåãäžèŠ§è¡šç€ºãã
- åã·ãŒãåã«ãã€ããŒãªã³ã¯ãèšå®ãã
- ç®æ¬¡ã·ãŒããå é ã«é 眮ãã
- å®è¡åŸã«å®äºã¡ãã»ãŒãžã衚瀺ãã
æšå¥šæ©èœ
- é衚瀺ã·ãŒããç®æ¬¡ããé€å€ããïŒã»ãã¥ãªãã£é æ ®ïŒ
- åå¹ ãèªå調æŽããŠèŠããããã
- ç»é¢æŽæ°ãå¶åŸ¡ããŠã¹ã ãŒãºã«å®è¡ãã
- æ°åã®ã¿ïŒ
001ãªã©ïŒã®ã·ãŒãåãæ£ããæååãšããŠè¡šç€ºãã
ãŠãŒã¶ããªãã£ã®èæ ®ç¹
ãã¯ããå®è£ ããéã¯ã以äžã®ãŠãŒã¶ããªãã£ãéèŠããŸãã
å®è¡ã®å®¹æã
- ã¢ãã€ã³ãã¯ã€ãã¯ã¢ã¯ã»ã¹ããŒã«ããŒããã¯ã³ã¯ãªãã¯ã§å®è¡ã§ãã
- ã©ã®ããã¯ãéããŠããŠã䜿ããæ±çšæ§
- å®è¡ã«ç¹å¥ãªæºåãèšå®ãäžèŠ
çµæã®åããããã
- ç®æ¬¡ã·ãŒããå¿ ãå é ã«é 眮ããã
- ãã€ããŒãªã³ã¯ãèŠèŠçã«åãããããïŒéè²ã®ã¢ã³ããŒã©ã€ã³ïŒ
- åå¹ ãé©åã«èª¿æŽãããŠãã
ãšã©ãŒãžã®å¯Ÿå¿
- ç®æ¬¡ã·ãŒããæ¢ã«ååšããŠããŠãåé¡ãªãåäœãã
- ã·ãŒãåã«ç¹æ®æåãå«ãŸããŠããŠãæ£ãããªã³ã¯ãã
- å®è¡äžã«ãšã©ãŒãçºçããŠãé©åã«åŠçãã
ã»ãã¥ãªãã£ãžã®é æ ®
å®åã§äœ¿çšããããã¯ã«ã¯ããã°ãã°é衚瀺ã·ãŒããå«ãŸããŠããŸããé衚瀺ã·ãŒãã«ã¯ã以äžã®ãããªæ å ±ãæ ŒçŽãããŠããããšããããŸãã
é衚瀺ã·ãŒãã®çšé
- èšç®çšã®äžéããŒã¿
- ãã¯ãã䜿çšããèšå®æ å ±
- å€éšããååŸããçããŒã¿
- ãŠãŒã¶ãŒã«èŠããããªãè£å©çãªæ å ±
ã»ãã¥ãªãã£äžã®é æ ®ç¹
ç®æ¬¡ãäœæããéãé衚瀺ã·ãŒãã®æ å ±ãç®æ¬¡ã«å«ãããã©ããã¯æ éã«å€æããå¿ èŠããããŸãã
| å€æåºæº | å¯Ÿå¿ |
|---|---|
| ãšã³ããŠãŒã¶ãŒåããã㯠| é衚瀺ã·ãŒãã¯ç®æ¬¡ããé€å€ |
| éçºè åããã㯠| ãã¹ãŠã®ã·ãŒããç®æ¬¡ã«å«ãã |
| 管çè åããã㯠| ãªãã·ã§ã³ã§éžæå¯èœã«ãã |
ä»å解説ãããã¯ãã§ã¯ãã»ãã¥ãªãã£äžã®çç±ã§ãšã³ããŠãŒã¶ãŒã«é衚瀺ã·ãŒãã®æ å ±ãé瀺ããªããšããæ¹éãæ¡çšããŸããããã«ãããäžè¬çãªæ¥åå©çšã«ãããŠæãå®å šãªç®æ¬¡ãçæã§ããŸãã
é衚瀺ã·ãŒããžã®ã¢ã¯ã»ã¹
é衚瀺ã·ãŒãã¯ã衚瀺ããªãããšããèšå®ã§ããããä¿è·ãã§ã¯ãããŸãããVBAã䜿ãã人ã§ããã°ãé衚瀺ã·ãŒãã®å 容ãç°¡åã«è¡šç€ºã§ããŸãã
匷åºãªéè¡šç€ºææ³ãšããŠãExcel VBAã® xlVeryHidden ããããã£ãš Worksheet_Activate ã€ãã³ããçµã¿åãããæ¹æ³ããããŸããããã«ããããŠãŒã¶ãŒãã·ãŒãã衚瀺ããããšããŠãå³åº§ã«åé衚瀺ã«ãããé²èЧãé²ãããšãå¯èœã§ãã
詳ããã¯ä»¥äžã®èšäºãã芧ãã ããã
ð Excel VBAã«ãããã·ãŒã衚瀺å¶åŸ¡ã®å®è£
ãã¯ããã¯
ç®æ¬¡äœæãã¯ãã®ã³ãŒã
ãŸãããããã解説ããŠããç®æ¬¡èªåçæãã¯ãã®å®å šãªã³ãŒããæ²èŒããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯å šäœåãææ¡ããŠããã ããæ¬¡ã®ã»ã¯ã·ã§ã³ä»¥éã§åéšåã®è©³çŽ°ãæ®µéçã«è§£èª¬ããŠãããŸãã
' ã¢ã¯ãã£ãããã¯ã«ç®æ¬¡ãäœæãããã¯ã
' ã¢ãã€ã³ãã¯ã€ãã¯ã¢ã¯ã»ã¹ããŒã«ããŒããåŒã³åºããŠå®è¡ããããšãæ³å®
Sub CreateContents()
' ã¢ã¯ãã£ãããã¯ïŒçŸåšäœæ¥äžã®ããã¯ïŒã倿°ã«æ ŒçŽ
Dim wb As Workbook
Set wb = ActiveWorkbook
' åŠçäžã®ç»é¢ã®ã¡ãã€ããé²ããããç»é¢æŽæ°ãäžæåæ¢
Application.ScreenUpdating = False
' ç®æ¬¡ã·ãŒããæ¢ã«ååšããã確èªããããã®å€æ°ã宣èš
Dim ws As Worksheet
' ãšã©ãŒãçºçããŠãåŠçãç¶è¡ããèšå®ïŒã·ãŒããååšããªãå Žåã®ãšã©ãŒå¯ŸçïŒ
On Error Resume Next
' ãç®æ¬¡ããšããååã®ã·ãŒããååŸïŒååšããªãå Žåã¯wsã«Nothingãå
¥ãïŒ
Set ws = wb.Worksheets("ç®æ¬¡")
' ãšã©ãŒãã³ããªã³ã°ãéåžžã®ç¶æ
ã«æ»ã
On Error GoTo 0
' ç®æ¬¡ã·ãŒããååšããªãå Žåã¯æ°èŠäœæ
If ws Is Nothing Then
' ããã¯ã®å
é ã«æ°ããã·ãŒãã远å
Set ws = wb.Worksheets.Add(Before:=wb.Sheets(1))
' æ°ããã·ãŒãã«ãç®æ¬¡ããšããååãä»ãã
ws.Name = "ç®æ¬¡"
Else
' æ¢ã«ç®æ¬¡ã·ãŒããååšããå Žåã¯ãå€ãå
容ããã¹ãŠåé€
ws.Cells.Clear
End If
' ç®æ¬¡ã·ãŒãã«å¯Ÿããèšå®ãšåŠçïŒWithã¹ããŒãã¡ã³ãã§èšè¿°ãç°¡æœã«ïŒ
With ws
' ç®æ¬¡ã·ãŒããå
é ã«ãªãå Žåã®ã¿ãå
é ã«ç§»å
' Index = 1 ã¯å
é äœçœ®ãæå³ãã
If .Index <> 1 Then .Move Before:=wb.Sheets(1)
' A1ã»ã«ã«åèŠåºããã·ãŒãåããèšå®
.Range("A1").Value = "ã·ãŒãå"
' åèŠåºãã倪åã«ããŠç®ç«ããã
.Range("A1").Font.Bold = True
' Aåå
šäœãæåå圢åŒã«èšå®
' ããã«ããã001ããªã©ã®æ°åã ãã®ã·ãŒãåãæ£ãã衚瀺ããã
.Columns("A").NumberFormat = "@"
' ã«ãŒãçšã®ã«ãŠã³ã¿å€æ°ã宣èš
Dim i As Long
' 2çªç®ã®ã·ãŒãããæåŸã®ã·ãŒããŸã§é çªã«åŠç
' 1çªç®ã¯ç®æ¬¡ã·ãŒãèªèº«ãªã®ã§ã2çªç®ããéå§
For i = 2 To wb.Worksheets.Count
' åŠç察象ã®ã·ãŒãã倿°ã«æ ŒçŽ
Dim targetSheet As Worksheet
Set targetSheet = wb.Worksheets(i)
' 衚瀺ãããŠããã·ãŒãã®ã¿ãç®æ¬¡ã«è¿œå
' é衚瀺ã·ãŒãã¯ã»ãã¥ãªãã£äžã®çç±ã§ç®æ¬¡ã«å«ããªã
If targetSheet.Visible = xlSheetVisible Then
' ãã€ããŒãªã³ã¯ãäœæ
.Hyperlinks.Add _
Anchor:=.Range("A" & i), _
Address:="", _
SubAddress:="'" & targetSheet.Name & "'!A1", _
TextToDisplay:=targetSheet.Name
' Anchor: ãªã³ã¯ãèšå®ããã»ã«ïŒAåã®iè¡ç®ïŒ
' Address: å€éšURLããã¡ã€ã«ãã¹ïŒããã¯å
ãªã³ã¯ãªã®ã§ç©ºæ¬ïŒ
' SubAddress: ããã¯å
ã®ç§»åå
ïŒ'ã·ãŒãå'!A1ã®åœ¢åŒïŒ
' TextToDisplay: ã»ã«ã«è¡šç€ºããããã¹ãïŒã·ãŒãåïŒ
End If
Next i
' Aåã®å¹
ãå
容ã«åãããŠèªå調æŽ
' é·ãã·ãŒãåã§ãå
šäœãèŠããããã«ãã
.Columns("A").AutoFit
' ç®æ¬¡ã·ãŒããã¢ã¯ãã£ãïŒè¡šç€ºã»éžæç¶æ
ïŒã«ãã
.Activate
' ã«ãŒãœã«ãA1ã»ã«ïŒåèŠåºãïŒã«ç§»å
.Range("A1").Select
End With
' ç»é¢æŽæ°ãåéïŒåŠçå®äºåŸã«çµæã衚瀺ïŒ
Application.ScreenUpdating = True
' åŠçå®äºãç¥ãããã¡ãã»ãŒãžããã¯ã¹ã衚瀺
' vbInformation: æ
å ±ã¢ã€ã³ã³ïŒéãäžžã«çœãiïŒã衚瀺
MsgBox "ç®æ¬¡ã®äœæãå®äºããŸããã", vbInformation, "å®äº"
End Sub
ãã®ã³ãŒãããã®ãŸãŸVBAãšãã£ã¿ã®æšæºã¢ãžã¥ãŒã«ã«è²Œãä»ããã°ãããã«äœ¿çšã§ããŸããååã®èšäºã§è§£èª¬ããã¢ãã€ã³åãã¯ã€ãã¯ã¢ã¯ã»ã¹ããŒã«ããŒãžã®ç»é²ãè¡ãããšã§ãã©ã®ããã¯ã§ã䜿ããæ±çšããŒã«ãšããŠæŽ»çšã§ããŸãã
次ã®ã»ã¯ã·ã§ã³ããããã®ã³ãŒãã®åéšåã«ã€ããŠè©³ãã解説ããŠãããŸãã
åºæ¬å®è£ : ç®æ¬¡ã·ãŒãã®äœæåŠç
ã¢ã¯ãã£ãããã¯ã®ååŸ
ãã¯ãã®å®è¡å¯Ÿè±¡ãšãªãããã¯ãæç¢ºã«ããããããŸãã¢ã¯ãã£ãããã¯ãååŸããŸãã
' ã¢ã¯ãã£ãããã¯ãæ ŒçŽ
Dim wb As Workbook
Set wb = ActiveWorkbook
ActiveWorkbookã®æå³
ActiveWorkbookã¯ãçŸåšãŠãŒã¶ãŒãäœæ¥ããŠããããã¯ãæããŸããè€æ°ã®ããã¯ãåæã«éããŠããå Žåã§ãããã©ãŒã«ã¹ã®ããããã¯ã察象ãšãªããŸãã
ãã®ãã¯ããã¢ãã€ã³ãã¯ã€ãã¯ã¢ã¯ã»ã¹ããŒã«ããŒããå®è¡ããå ŽåããŠãŒã¶ãŒãçŸåšäœæ¥äžã®ããã¯ã«å¯ŸããŠç®æ¬¡ãäœæããããšããæå³ããããããActiveWorkbookã®äœ¿çšãé©åã§ãã
ç®æ¬¡ã·ãŒãã®ååšãã§ãã¯
æ¢ã«ãç®æ¬¡ããšããååã®ã·ãŒããååšããŠããå¯èœæ§ããããããååšãã§ãã¯ãè¡ããŸãã
' ç®æ¬¡ã·ãŒããæ ŒçŽ
On Error Resume Next
Dim ws As Worksheet
Set ws = wb.Worksheets("ç®æ¬¡")
On Error GoTo 0
ãšã©ãŒãã³ããªã³ã°ã®ä»çµã¿
Worksheets("ç®æ¬¡")ã§æå®ããååã®ã·ãŒããååšããªãå Žåãéåžžã¯ãšã©ãŒãçºçããŠãã¯ãã忢ããŸããOn Error Resume Nextã䜿çšããããšã§ããšã©ãŒãçºçããŠãåŠçãç¶ç¶ããws倿°ã«ã¯Nothingãæ ŒçŽãããŸãã
On Error GoTo 0ã§ããšã©ãŒãã³ããªã³ã°ãéåžžã®ç¶æ
ã«æ»ããŸããããã«ããã以éã®ã³ãŒãã§çºçãããšã©ãŒã¯éåžžéãåŠçãããŸãã
ã·ãŒãã®ååšå€å®ãšåŠçã®åå²
' ç®æ¬¡ã·ãŒããååšããªãå Žåã¯æ°èŠäœæ
If ws Is Nothing Then
Set ws = wb.Worksheets.Add(Before:=wb.Sheets(1))
ws.Name = "ç®æ¬¡"
Else
' æ¢åã®å
容ãã¯ãªã¢
ws.Cells.Clear
End If
wsãNothingã®å Žåãç®æ¬¡ã·ãŒããååšããªãããæ°èŠäœæããŸããAddã¡ãœããã®Beforeãã©ã¡ãŒã¿ã§ãããã¯ã®å
é ã«ã·ãŒããæ¿å
¥ããããšãæå®ããŸãã
æ¢ã«ç®æ¬¡ã·ãŒããååšããå Žåã¯ãå€ãæ
å ±ããã¹ãŠã¯ãªã¢ããŠãææ°ã®æ
å ±ã«æŽæ°ããŸããCells.Clearã«ãããã»ã«ã®å€ã ãã§ãªããæžåŒããã€ããŒãªã³ã¯ããã¹ãŠåé€ãããŸãã
ç®æ¬¡ã·ãŒãã®åæèšå®
ç®æ¬¡ã·ãŒãã®åºæ¬çãªæ§é ãèšå®ããŸãã
With ws
' ç®æ¬¡ã·ãŒããå
é ã«ç§»å
If .Index <> 1 Then .Move Before:=wb.Sheets(1)
' åèŠåºããèšå®
.Range("A1").Value = "ã·ãŒãå"
.Range("A1").Font.Bold = True
' å¿
ãæååãšããŠè¡šç€ºãããããã«ãåå
šäœã®æžåŒãæååã«èšå®
.Columns("A").NumberFormat = "@"
å é ãžã®ç§»åã®æ¡ä»¶å€å®
Moveã¡ãœããã§ç®æ¬¡ã·ãŒããããã¯ã®å
é ã«é
眮ããŸãããæ¢ã«å
é ã«ããå Žåã¯ç§»ååŠçãã¹ãããããŸãã
Indexããããã£ã¯ãããã¯å
ã®ã·ãŒãã®äœçœ®ïŒ1ããå§ãŸãçªå·ïŒãè¿ããŸããç®æ¬¡ã·ãŒããæ¢ã«å
é äœçœ®ïŒIndex = 1ïŒã«ããå Žåã¯ãäžèŠãªç§»ååŠçãå®è¡ããŸããã
æ¢åã®ç®æ¬¡ã·ãŒããæŽæ°ããå ŽåããŠãŒã¶ãŒãããã¯ã®å é ã«æ°èŠã·ãŒããäœæããŠããããç®æ¬¡ã·ãŒããç§»åããŠããå¯èœæ§ããããŸãããã®æ¡ä»¶å€å®ã«ãããå¿ èŠãªå Žåã®ã¿å é ã«ç§»åãããããšã§ç¡é§ãªåŠçãåé¿ããŸãã
Indexå€å®ã®å¹æ
Moveã¡ãœããã¯ãã·ãŒããæ¢ã«ç®çã®äœçœ®ã«ããå Žåã§ãå®è¡ãããŸãããäžèŠãªç»é¢æŽæ°ãåŠçãé¿ãããããäºåã«äœçœ®ã確èªããŠããç§»åããã®ãå¹ççã§ããç¹ã«ãScreenUpdating = Falseãèšå®ããŠããŠããMoveã¡ãœããã¯å
éšçãªåŠçãè¡ããããæ¡ä»¶å€å®ã«ããã¹ãããã¯å
ããªããããã©ãŒãã³ã¹åäžã«å¯äžããŸãã
åèŠåºãã®èšå®
A1ã»ã«ã«ãã·ãŒãåããšããèŠåºããèšå®ãã倪åã«ããããšã§ãç®æ¬¡ã§ããããšãæç¢ºã«ããŸãã
æååæžåŒã®èšå®
ã·ãŒãåã«ã¯ã2025ãã001ãã®ãããªæ°åã®ã¿ã®ååãååšããŸããããããã»ã«ã«æžã蟌ããšãExcelãèªåçã«æ°å€ãšããŠèªèããã001ããã1ããšè¡šç€ºãããåé¡ãªã©ãçºçããŸãã
NumberFormat = "@"ã§åå
šäœãæååæžåŒã«èšå®ããããšã§ãã·ãŒãåãåžžã«æ£ãã衚瀺ãããããã«ãªããŸãã
ãã€ããŒãªã³ã¯ã«ããããã²ãŒã·ã§ã³å®è£
ã·ãŒãã®åæåŠç
ããã¯å ã®ãã¹ãŠã®ã·ãŒããé çªã«åŠçããŠãããŸãã
' 2çªç®ããåŠçéå§
Dim i As Long
For i = 2 To wb.Worksheets.Count
Dim targetSheet As Worksheet
Set targetSheet = wb.Worksheets(i)
ã«ãŒãã®éå§äœçœ®
2çªç®ã®ã·ãŒãããåŠçãéå§ããŸããããã«ã¯ä»¥äžã®çç±ããããŸãã
- 1çªç®ã¯ç®æ¬¡ã·ãŒãèªäœã§ãã
- A1ã»ã«ã«ã¯åèŠåºãïŒãã·ãŒãåãïŒãå ¥ã£ãŠãã
- å®éã®ãªã³ã¯ã¯A2ã»ã«ããé 眮ããã
ãããã£ãŠãwb.Worksheets(i)ã§ååŸããã·ãŒãããAåã®iè¡ç®ã«é
眮ãããšãèªç¶ãªå¯Ÿå¿é¢ä¿ãçãŸããŸãã
Worksheetsã³ã¬ã¯ã·ã§ã³ãšSheetsã³ã¬ã¯ã·ã§ã³ã®éã
wb.Worksheets(i)ã§ãiçªç®ã®ã¯ãŒã¯ã·ãŒããååŸããŸããããã§éèŠãªã®ã¯ãWorksheetsã³ã¬ã¯ã·ã§ã³ãšSheetsã³ã¬ã¯ã·ã§ã³ã®éãã§ãã
| ã³ã¬ã¯ã·ã§ã³ | å«ãŸããå 容 |
|---|---|
Sheets |
ã¯ãŒã¯ã·ãŒããã°ã©ãã·ãŒãããã¯ãã·ãŒããªã©ãã¹ãŠã®ã·ãŒã |
Worksheets |
ã¯ãŒã¯ã·ãŒãã®ã¿ |
ä»åã¯ç®æ¬¡ã«ã¯ãŒã¯ã·ãŒãã®ã¿ãåæããããããWorksheetsã³ã¬ã¯ã·ã§ã³ã䜿çšããŸããããã«ãããã°ã©ãã·ãŒããªã©ã®ç¹æ®ãªã·ãŒããé€å€ãããããé©åãªç®æ¬¡ãäœæãããŸãã
å®åã§ã®èæ ®ç¹
å€ãã®å®åããã¯ã§ã¯ã¯ãŒã¯ã·ãŒãã®ã¿ã䜿çšãããããWorksheetsãšSheetsã®éããæèããæ©äŒã¯å°ãªããããããŸãããããããã°ã©ãã·ãŒããç¬ç«ããŠäœæããŠããå Žåããå€ã圢åŒã®Excelãã¯ãã·ãŒããå«ãŸããŠããå ŽåãSheetsã䜿çšãããšäºæããªãåäœã«ãªãå¯èœæ§ããããŸããæç€ºçã«Worksheetsã䜿çšããããšã§ãããå
ç¢ãªã³ãŒãã«ãªããŸãã
å¯èŠã·ãŒãã®å€å®ãšãã€ããŒãªã³ã¯èšå®
ã»ãã¥ãªãã£ãšãŠãŒã¶ããªãã£ãèæ ®ãã衚瀺ãããŠããã·ãŒãã«ã®ã¿ãã€ããŒãªã³ã¯ãèšå®ããŸãã
' 衚瀺ãããŠããã·ãŒãã«ãã€ããŒãªã³ã¯ãèšå®
' å€éšãªã³ã¯ã§ã¯ãªãã®ã§ã¢ãã¬ã¹ã¯ç©ºæ¬
If targetSheet.Visible = xlSheetVisible Then
.Hyperlinks.Add Anchor:=.Range("A" & i), _
Address:="", _
SubAddress:="'" & targetSheet.Name & "'!A1", _
TextToDisplay:=targetSheet.Name
End If
Visibleããããã£ã®å€å®
If targetSheet.Visible = xlSheetVisible Thenãšããæ¡ä»¶ã«ããã衚瀺ãããŠããã·ãŒãã®ã¿ãåŠç察象ãšãªããŸããé衚瀺ã·ãŒããå®å
šã«é衚瀺ã®ã·ãŒãã¯ç®æ¬¡ã«å«ãŸããŸããã
ã·ãŒãã®è¡šç€ºå¶åŸ¡ã«ã€ããŠ
ã·ãŒãã®è¡šç€ºç¶æ ïŒVisibleãHiddenãVeryHiddenïŒã®è©³çްã¯ã第33åã®èšäºãExcel VBAã«ãããã·ãŒã衚瀺å¶åŸ¡ã®å®è£ ãã¯ããã¯ãã§è§£èª¬ããŠããŸãã®ã§ã䜵ããŠãåç §ãã ããã
Hyperlinks.Addã¡ãœããã®è©³çް
Hyperlinks.Addã¡ãœããã¯ãã»ã«ã«ãã€ããŒãªã³ã¯ãèšå®ããã¡ãœããã§ããäž»èŠãªãã©ã¡ãŒã¿ã解説ããŸãã
| ãã©ã¡ãŒã¿ | 説æ | ä»åã®èšå® |
|---|---|---|
Anchor |
ãªã³ã¯ãèšå®ããã»ã« | .Range("A" & i) |
Address |
å€éšURLããã¡ã€ã«ãã¹ |
""ïŒç©ºæ¬ïŒ |
SubAddress |
ããã¯å ã®åç §å | "'ã·ãŒãå'!A1" |
TextToDisplay |
衚瀺ããããã¹ã | targetSheet.Name |
SubAddressã®æžåŒ
SubAddressãã©ã¡ãŒã¿ã«ã¯ãããã¯å
ã®ç¹å®ã®ã»ã«ãåç
§ããããã®æååãæå®ããŸããæžåŒã¯ä»¥äžã®éãã§ãã
'ã·ãŒãå'!ã»ã«ã¢ãã¬ã¹
ã·ãŒãåã«ã¹ããŒã¹ãç¹æ®æåãå«ãŸããå¯èœæ§ããããããã·ã³ã°ã«ã¯ã©ãŒããŒã·ã§ã³ïŒ'ïŒã§å²ã¿ãŸããä»åã¯åã·ãŒãã®A1ã»ã«ã«ãžã£ã³ãããããã«èšå®ããŠããŸãã
SubAddress:="'" & targetSheet.Name & "'!A1"
Addressã空æ¬ã«ããçç±
Addressãã©ã¡ãŒã¿ã¯å€éšãªã³ã¯ïŒWebããŒãžããã¡ã€ã«ïŒçšã®ãã©ã¡ãŒã¿ã§ããããã¯å
ã®ãªã³ã¯ãäœæããå Žåã¯ãSubAddressã®ã¿ã䜿çšããAddressã¯ç©ºæååïŒ""ïŒã«ããŸãã
ãŠãŒã¶ããªãã£åäžã®ããã®å·¥å€«
åå¹ ã®èªå調æŽ
ç®æ¬¡ã·ãŒããèŠããããããããåå¹ ãèªå調æŽããŸãã
' åå¹
ã®èªå調æŽ
.Columns("A").AutoFit
AutoFitã¡ãœããã®å¹æ
AutoFitã¡ãœããã¯ãåã«å«ãŸãããã¹ãŠã®ã»ã«ã®å
容ã«åºã¥ããŠãæé©ãªåå¹
ãèªåçã«èšç®ããèšå®ããŸãã
ã·ãŒãåã®é·ãã¯æ§ã
ã§ãããSheet1ãã®ããã«çããã®ãããã°ãã2024幎床第3ååæå¶æ¥å®çžŸãã®ããã«é·ããã®ããããŸããAutoFitã«ãããæãé·ãã·ãŒãåãå®å
šã«è¡šç€ºãããå¹
ã«èªå調æŽãããŸãã
ç®æ¬¡ã·ãŒãã®ã¢ã¯ãã£ãå
åŠçå®äºåŸããŠãŒã¶ãŒãç®æ¬¡ã·ãŒããããã«ç¢ºèªã§ãããããã¢ã¯ãã£ãã«ããŸãã
' ç®æ¬¡ã·ãŒããã¢ã¯ãã£ãã«ãã
.Activate
.Range("A1").Select
Activateã¡ãœãã
ã·ãŒããActivateããããšã§ããã®ã·ãŒããç»é¢ã«è¡šç€ºããããŠãŒã¶ãŒãæäœå¯èœãªç¶æ
ã«ãªããŸãã
A1ã»ã«ã®éžæ
Range("A1").Selectã«ãããã«ãŒãœã«ãA1ã»ã«ïŒåèŠåºãïŒã«äœçœ®ããŸããããã«ããããŠãŒã¶ãŒã¯ç®æ¬¡ã®æäžéšããå
容ã確èªã§ããŸãã
å¿çšäŸãšæ¡åŒµã®ãã³ã
å®åã§ããã«äŸ¿å©ã«äœ¿ãããã®å¿çšäŸãããã€ã玹ä»ããŸããããã§ã¯ãåèæ¬ã®è¿œå ãšæ¢åã®ç®æ¬¡æ å ±ãä¿æããæŽæ°åŠçãšãã2ã€ã®æ¡åŒµæ©èœãå®è£ ããŸãã
åèæ¬ã远å ããç®æ¬¡ã®äœæ
å®åã§ã¯ãåã·ãŒãã«å¯ŸããŠã¡ã¢ã説æãæ®ãããå ŽåããããŸããBåã«åèæ¬ã远å ããããšã§ãç®æ¬¡ã«ä»å æ å ±ãèšèŒã§ããããã«ãªããŸãã
倿Žç®æ1: åèŠåºãã®è¿œå
åºæ¬ãã¯ãã®åèŠåºãèšå®éšåã«ãBåã®èŠåºãã远å ããŸãã
' A1ã»ã«ã«åèŠåºããã·ãŒãåããèšå®
.Range("A1").Value = "ã·ãŒãå"
' åèŠåºãã倪åã«ããŠç®ç«ããã
.Range("A1").Font.Bold = True
' âãããã远å â
' B1ã»ã«ã«åèŠåºããåèããèšå®
.Range("B1").Value = "åè"
' åèŠåºãã倪åã«ããŠç®ç«ããã
.Range("B1").Font.Bold = True
' âãããŸã§è¿œå â
' Aåå
šäœãæåå圢åŒã«èšå®
.Columns("A").NumberFormat = "@"
倿Žç®æ2: åå¹ ã®èªå調æŽç¯å²ãæ¡åŒµ
AutoFitã®å¯Ÿè±¡ãAåã®ã¿ããAåãšBåã«å€æŽããŸãã
' âãã®è¡ã倿Žâ
' 倿Žå: .Columns("A").AutoFit
' 倿ŽåŸ:
' AåãšBåã®å¹
ãå
容ã«åãããŠèªå調æŽ
' é·ãã·ãŒãåãåèã§ãå
šäœãèŠããããã«ãã
.Columns("A:B").AutoFit
åèæ¬ã®å©ç¹
åèæ¬ã远å ããããšã§ã以äžã®ãããªæ å ±ãç®æ¬¡ã«èšé²ã§ããŸãã
- åã·ãŒãã®çšéãç®ç
- æçµæŽæ°æ¥ãæŽæ°è
- ããŒã¿ã®åç §å ãæ³šæäºé
- äœæ¥ã®é²æç¶æ³
Båã¯åæç¶æ ã§ã¯ç©ºæ¬ã®ãŸãŸã«ããŠããããŠãŒã¶ãŒãå¿ èŠã«å¿ããŠæåã§æ å ±ãå ¥åã§ããããã«ããŸãã
æ¢åã®ç®æ¬¡æ å ±ãä¿æããæŽæ°åŠç
åºæ¬ã®ãã¯ãã§ã¯ãç®æ¬¡ã·ãŒããæ¢ã«ååšããå Žåãws.Cells.Clearã§ãã¹ãŠã®å
容ãåé€ããŠããåäœæããŠããŸããããã®æ¹æ³ã§ã¯ããŠãŒã¶ãŒãåèæ¬ã«èšå
¥ããæ
å ±ãæ¶ããŠããŸããŸãã
ããã§ãæ¢åã®åèæ å ±ãä¿æããªãããã·ãŒãã®è¿œå ã»åé€ã»äžŠã³æ¿ãã«ã察å¿ã§ããæŽæ°åŠçãå®è£ ããŸãã
å®è£ ã®åºæ¬æ¹é
ãã®æŽæ°åŠçã§ã¯ã以äžã®æé ã§ç®æ¬¡ãåæ§ç¯ããŸãã
-
æ¢åã®åèæ å ±ãäžæçã«ä¿å
- DictionaryïŒèŸæžåïŒã䜿çšããŠã·ãŒãåãšåèã®å¯Ÿå¿ãèšé²
-
ç®æ¬¡ã®å 容ãäžåºŠã¯ãªã¢
- ããŒã¿ããã¹ãŠåé€
-
ææ°ã®ã·ãŒãæ å ±ã§ãªã³ã¯ãåäœæ
- çŸåšã®ã·ãŒãé åºã«åŸã£ãŠç®æ¬¡ãåæ§ç¯
-
ä¿åããŠãããåèæ å ±ã埩å
- ã·ãŒãåãããŒãšããŠã察å¿ããåèãå ã®äœçœ®ã«æ»ã
ãã®æ¹åŒã«ãããã·ãŒãã®è¿œå ã»åé€ã»äžŠã³æ¿ãã®ãã¹ãŠã«å¯Ÿå¿ããªããããŠãŒã¶ãŒãèšå ¥ããåèãä¿æã§ããŸãã
倿Žç®æ1: Dictionaryãªããžã§ã¯ãã®åç §èšå®
ãã®ãã¯ãã§ã¯DictionaryïŒèŸæžåïŒã䜿çšãããããVBAãšãã£ã¿ã§äºåã«åç §èšå®ãå¿ èŠã§ãã
VBAãšãã£ã¿ã®ã¡ãã¥ãŒãããããŒã«ãâãåç §èšå®ããéããMicrosoft Scripting Runtimeã«ãã§ãã¯ãå ¥ããŠãã ããã
Dictionaryã«ã€ããŠ
Dictionaryã®è©³ããäœ¿ãæ¹ã¯ã第17åã®èšäºãExcel VBAã«ãããèŸæžåïŒDictionaryïŒã®æŽ»çšãšå¿çšãã¯ããã¯ãã§è§£èª¬ããŠããŸãã®ã§ã䜵ããŠãåç §ãã ããã
倿Žç®æ2: æ¢ååèã®ä¿ååŠçã远å
ç®æ¬¡ã·ãŒããæ¢ã«ååšããå Žåãæ¢åã®åèæ å ±ãä¿åããåŠçã远å ããŸãã
' ç®æ¬¡ã·ãŒããååšããªãå Žåã¯æ°èŠäœæ
If ws Is Nothing Then
' ããã¯ã®å
é ã«æ°ããã·ãŒãã远å
Set ws = wb.Worksheets.Add(Before:=wb.Sheets(1))
' æ°ããã·ãŒãã«ãç®æ¬¡ããšããååãä»ãã
ws.Name = "ç®æ¬¡"
' â以äžã®Elseç¯ãåé€ããæ°ããåŠçã远å â
' Else
' ws.Cells.Clear
End If
' âãããã远å â
' æ¢åã®åèæ
å ±ãä¿åããããã®Dictionaryãªããžã§ã¯ããäœæ
Dim remarksDict As New Dictionary
' åèã®ä¿ååŠçãäžèŠãªãããåŠçãã¹ããã
If ws.Range("A2").Value = "" Then GoTo SkipRemarksLoad
' ç®æ¬¡ã·ãŒãã«æ¢ã«ããŒã¿ãååšããå Žåãåèæ
å ±ãä¿å
' æçµè¡ãååŸïŒAåã®æåŸã«å€ãå
¥ã£ãŠããè¡ïŒ
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 2è¡ç®ããæçµè¡ãŸã§ïŒ1è¡ç®ã¯åèŠåºããªã®ã§é€å€ïŒ
Dim j As Long
For j = 2 To lastRow
' Aåã«ã·ãŒãåãBåã«åèãå
¥ã£ãŠãã
' ã·ãŒãåãããŒãåèãå€ãšããŠDictionaryã«ä¿å
Dim sheetName As String
Dim remarkText As String
' Aåã®ã»ã«ã«ãã€ããŒãªã³ã¯ãããå Žåããªã³ã¯ã®ããã¹ããååŸ
' ãã€ããŒãªã³ã¯ããªãå Žåã¯ãã»ã«ã®å€ããã®ãŸãŸååŸ
If ws.Range("A" & j).Hyperlinks.Count > 0 Then
sheetName = ws.Range("A" & j).Hyperlinks(1).TextToDisplay
Else
sheetName = ws.Range("A" & j).Value
End If
' BåããåèãååŸ
remarkText = ws.Range("B" & j).Value
' ã·ãŒãåã空ã§ãªãå Žåã®ã¿Dictionaryã«è¿œå
' Dictionaryã¯éè€ããããŒãæãŠãªããããæ¢åããŒã¯äžæžãããã
If sheetName <> "" Then
remarksDict(sheetName) = remarkText
End If
Next j
ws.Cells.Clear
' æ©æãªã¿ãŒã³ã®ãžã£ã³ãå
ã©ãã«
' åèã®ä¿åãäžèŠãªå Žåã¯ãDictionaryãçæããããããåŠçãåé
SkipRemarksLoad:
' âãããŸã§è¿œå â
Hyperlinks.Countããããã£
Hyperlinks.Countã¯ããã®ã»ã«ã«èšå®ãããŠãããã€ããŒãªã³ã¯ã®æ°ãè¿ããŸãã1ã€ã®ã»ã«ã«ã¯1ã€ã®ãã€ããŒãªã³ã¯ããèšå®ãããŸããã
-
Count > 0: ãã€ããŒãªã³ã¯ãååšãã -
Count = 0: ãã€ããŒãªã³ã¯ãååšããªã
TextToDisplayããããã£
ws.Range("A" & j).Hyperlinks(1).TextToDisplayã¯ããã€ããŒãªã³ã¯ã®è¡šç€ºããã¹ããååŸããŸãã
ãã€ããŒãªã³ã¯ã«ã¯ä»¥äžã®2ã€ã®æ å ±ããããŸãã
| ãããã㣠| 説æ | ä»åã®å 容 |
|---|---|---|
TextToDisplay |
ã»ã«ã«è¡šç€ºãããããã¹ã | ã·ãŒãåïŒäŸ: "å¶æ¥ããŒã¿"ïŒ |
SubAddress |
å®éã®ãªã³ã¯å | 'å¶æ¥ããŒã¿'!A1 |
ä»åå¿
èŠãªã®ã¯ãã·ãŒãåããªã®ã§ãTextToDisplayããããã¹ããååŸããŸãã
ãªãValueã§ã¯ãªãTextToDisplayã䜿ãã®ã
ãã€ããŒãªã³ã¯ãèšå®ãããŠããã»ã«ã®å ŽåãValueããããã£ã§ã衚瀺ããã¹ããååŸã§ããŸããã以äžã®çç±ã§TextToDisplayã䜿çšããŸãã
- æç€ºçãªæå³ã®è¡šçŸ: ãã€ããŒãªã³ã¯ã®ããã¹ããååŸããŠããããšãæç¢º
- å°æ¥ã®æ¡åŒµæ§: ãªã³ã¯ã®èšå®æ¹æ³ãå€ãã£ãŠã確å®ã«å¯Ÿå¿ã§ãã
- ã³ãŒãã®å¯èªæ§: äœãååŸããããšããŠããã®ããåããããã
倿Žç®æ3: åèæ å ±ã®åŸ©å åŠçã远å
ã«ãŒãã®æ«å°Ÿã§ä¿åããŠãããåèæ å ±ã埩å ããŸãã
' åŠç察象ã®ã·ãŒãã倿°ã«æ ŒçŽ
Dim targetSheet As Worksheet
Set targetSheet = wb.Worksheets(i)
' âãããã远å ã»ä¿®æ£â
' é衚瀺ã·ãŒãã¯ã¹ããã
If targetSheet.Visible <> xlSheetVisible Then GoTo NextRestore
' ãã€ããŒãªã³ã¯ãäœæ
.Hyperlinks.Add _
Anchor:=.Range("A" & i), _
Address:="", _
SubAddress:="'" & targetSheet.Name & "'!A1", _
TextToDisplay:=targetSheet.Name
' Anchor: ãªã³ã¯ãèšå®ããã»ã«ïŒAåã®iè¡ç®ïŒ
' Address: å€éšURLããã¡ã€ã«ãã¹ïŒããã¯å
ãªã³ã¯ãªã®ã§ç©ºæ¬ïŒ
' SubAddress: ããã¯å
ã®ç§»åå
ïŒ'ã·ãŒãå'!A1ã®åœ¢åŒïŒ
' TextToDisplay: ã»ã«ã«è¡šç€ºããããã¹ãïŒã·ãŒãåïŒ
' Dictionaryã«ãã®ã·ãŒãåã®ããŒãååšããªãå Žåã¯ã¹ããã
If Not remarksDict.Exists(targetSheet.Name) Then GoTo NextRestore
' ååšããå Žåãä¿åããŠãããåèãBåã«åŸ©å
.Range("B" & i).Value = remarksDict(targetSheet.Name)
NextRestore:
Next i
' âãããŸã§è¿œå â
' AåãšBåã®å¹
ãå
容ã«åãããŠèªå調æŽ
.Columns("A:B").AutoFit
remarksDict(targetSheet.Name)ãšããèšæ³ã§ãæå®ããããŒïŒã·ãŒãåïŒã«å¯Ÿå¿ããå€ïŒåèïŒãååŸããŸããååŸããåèãBåã®ã»ã«ã«èšå®ããããšã§ãå
ã®åèã埩å
ãããŸãã
æŽæ°åŠçã®åäœèª¬æ
ãã®å®è£ ã«ããã以äžã®ãããªã·ããªãªã«å¯Ÿå¿ã§ããŸãã
ã·ããªãª1: æ°ããã·ãŒãã远å ãããå Žå
- æ¢åã®ç®æ¬¡ããåèæ å ±ãæœåºããŠDictionaryã«ä¿å
- ç®æ¬¡ãäžåºŠã¯ãªã¢ããŠãçŸåšã®ã·ãŒãæ§æã§åäœæ
- æ¢åã·ãŒãã®åèã¯ä¿åãããDictionaryãã埩å
- æ°ããã·ãŒãã®åèæ¬ã¯ç©ºæ¬ã®ãŸãŸïŒãŠãŒã¶ãŒãåŸã§èšå ¥ïŒ
ã·ããªãª2: ã·ãŒããåé€ãããå Žå
- åé€ãããã·ãŒãã®åèã¯Dictionaryã«ä¿åãããããåŸ©å æã«è©²åœããã·ãŒããååšããªã
- 該åœããã·ãŒãããªãããããã®åèã¯åŸ©å ãããèªç¶ã«æ¶ãã
- æ®ã£ãŠããã·ãŒãã®åèã¯æ£ãã埩å ããã
ã·ããªãª3: ã·ãŒãã®äžŠã³é ã倿Žãããå Žå
- Dictionaryã¯ã·ãŒãåãããŒãšããŠåèãä¿å
- ç®æ¬¡ãçŸåšã®ã·ãŒãé åºã§åäœæ
- ã·ãŒãåã«åºã¥ããŠåèã埩å ãããããé åºãå€ãã£ãŠãæ£ãã察å¿ä»ãããã
ã·ããªãª4: ã·ãŒãåã倿Žãããå Žå
- æ§ã·ãŒãåã§ä¿åãããåèã¯ãæ°ããã·ãŒãåãšãããããªã
- 倿Žãããã·ãŒãã®åèæ¬ã¯ç©ºæ¬ã«ãªãïŒããã¯æå³çãªåäœïŒ
- ããã¯æè¡çãªå¶çŽã«ãããã®ã§ãã·ãŒãåãããŒãšããŠåèã管çããŠãã以äžãé¿ããããªãåäœ
Dictionaryã®Existsã¡ãœãã
If remarksDict.Exists(targetSheet.Name) Then
.Range("B" & i).Value = remarksDict(targetSheet.Name)
End If
Existsã¡ãœããã¯ãæå®ããããŒãDictionaryå
ã«ååšãããã確èªããŸããååšããå Žåã¯Trueãååšããªãå Žåã¯Falseãè¿ããŸãã
ãã®ãã§ãã¯ã«ãããåèãååšããã·ãŒãã®ã¿ã埩å ããæ°èŠè¿œå ãããã·ãŒããåé€åŸã«å远å ãããã·ãŒãã«ã¯äœãèšå®ããŸããã
æŽæ°åŠçã®ã¡ãªãããšå¶çŽ
| é ç® | å 容 |
|---|---|
| ã¡ãªãã1 | ã·ãŒãã®è¿œå ã»åé€ã»äžŠã³æ¿ãã«å®å šå¯Ÿå¿ |
| ã¡ãªãã2 | ãŠãŒã¶ãŒãèšå ¥ããåèã確å®ã«ä¿æ |
| ã¡ãªãã3 | ç®æ¬¡ãåžžã«ææ°ã®ã·ãŒãæ§æãåæ |
| å¶çŽ | ã·ãŒãåã倿Žãããšåèã¯æ¶ããïŒåå ¥åãå¿ èŠïŒ |
ã·ãŒãåå€æŽæã®æ³šæ
ã·ãŒãåã倿Žãããšããã®ã·ãŒãã«å¯Ÿå¿ããåèã¯åé€ãããŸããéèŠãªåèãããå Žåã¯ã以äžã®å¯Ÿçãæ€èšããŠãã ããã
- ã·ãŒãåã倿Žããéã¯ãç®æ¬¡ã®ããã¹ãã倿Žãã
- 宿çã«ããã¯å šäœãããã¯ã¢ãããã
- ããŒã ã§å ±æããå Žåã¯ãã·ãŒãå倿Žã®ã«ãŒã«ãäºåã«æ±ºããŠãã
ãããªãæ¡åŒµã®å¯èœæ§
ããé«åºŠãªå®è£
ãšããŠã以äžã®ãããªæ©èœã远å ããããšãã§ããŸãã
1. ã·ãŒãå倿Žã®è¿œè·¡æ©èœ
çŸåšã®å®è£ ã§ã¯ãã·ãŒãåã倿Žãããšåèã倱ãããŠããŸããŸãããã®åé¡ã解決ããã«ã¯ãã·ãŒãåã§ã¯ãªãCodeNameããããã£ãèå¥åãšããŠäœ¿çšããæ¹æ³ããããŸãã
CodeNameã¯ãã·ãŒãåã倿ŽããŠãå€ãããªãã·ãŒãåºæã®èå¥åã§ããäŸãã°ãSheet1ããšããå éšåã¯ãã·ãŒãåããå¶æ¥ããŒã¿ãã«å€æŽããŠããSheet1ãã®ãŸãŸä¿æãããŸãã
' ã·ãŒãã®CodeNameãããŒãšããŠåèãä¿å
remarksDict(targetSheet.CodeName) = remarkText
' 埩å
æãCodeNameã§æ€çŽ¢
If remarksDict.Exists(targetSheet.CodeName) Then
.Range("B" & i).Value = remarksDict(targetSheet.CodeName)
End If
ãã®æ¹æ³ã«ãããã·ãŒãåã倿ŽããŠãåèãä¿æãããããã«ãªããŸãã
2. ã«ããŽãªå顿©èœ
ã·ãŒãæ°ãéåžžã«å€ãå Žåãã«ããŽãªããšã«ã°ã«ãŒãåãããšèŠããããªããŸãã
ã«ããŽãªåé¡ã®äŸ
Aå: ã«ããŽãªåïŒãå¶æ¥é¢é£ããçµçé¢é£ããªã©ïŒ
Bå: ã·ãŒãå
Cå: åè
å®è£ æ¹æ³ãšããŠã¯ãã·ãŒãåã«ç¹å®ã®æ¥é èŸïŒãã¬ãã£ãã¯ã¹ïŒãä»ããã«ãŒã«ã決ããããã«åºã¥ããŠèªååé¡ããæ¹æ³ããããŸãã
3. æçµæŽæ°æ¥æã®èªåèšé²
åã·ãŒãããã€æŽæ°ãããããèªåçã«èšé²ããæ©èœã§ãã
ãã®æ©èœãå®è£
ããã«ã¯ãããã¯ã®ã€ãã³ãããã·ãŒãžã£ïŒWorkbook_SheetChangeïŒã䜿çšããŸããã·ãŒãã«å€æŽããã£ãã¿ã€ãã³ã°ã§ãã©ããã®ã»ã«ïŒäŸãã°A1ã»ã«ã®ååå®çŸ©ïŒã«æŽæ°æ¥æãèšé²ããç®æ¬¡äœææã«ãã®æ
å ±ãèªã¿åã£ãŠè¡šç€ºããŸãã
4. æ€çŽ¢æ©èœã®è¿œå
ã·ãŒãæ°ãå¢ãããšãç®æ¬¡å ã§ãç®çã®ã·ãŒããæ¢ãã®ã倧å€ã«ãªããŸãããŠãŒã¶ãŒãã©ãŒã ã䜿ã£ãæ€çŽ¢æ©èœã远å ããããšã§ãã·ãŒãåã®äžéšãå ¥åããã ãã§è©²åœããã·ãŒãã«ãžã£ã³ãã§ããããã«ãªããŸãã
ãŠãŒã¶ãŒãã©ãŒã ã«æ€çŽ¢ããã¯ã¹ãé 眮
å ¥åãããæååãå«ãã·ãŒãåãæœåº
該åœããã·ãŒãã®ãªã¹ãã衚瀺ããéžæããã·ãŒãã«ç§»å
ãã®æ©èœã¯ãVBAã®ããŠãŒã¶ãŒãã©ãŒã ããšããæ©èœã䜿çšããŸãããŠãŒã¶ãŒãã©ãŒã ã¯ãç¬èªã®å ¥åç»é¢ãäœæã§ããæ©èœã§ãæ€çŽ¢ããã¯ã¹ããã¿ã³ãé 眮ããã€ã³ã¿ãŒãã§ãŒã¹ãäœãããšãã§ããŸãã
5. éå±€æ§é ãæã€ç®æ¬¡
ã·ãŒãåã«ã1-1 æŠèŠãã1-2 詳现ãã®ãããªéå±€ã瀺ãåœåèŠåã䜿ã£ãŠããå Žåãã€ã³ãã³ãïŒåäžãïŒã䜿ã£ãŠéå±€æ§é ãèŠèŠçã«è¡šçŸã§ããŸãã
ã·ãŒãåã®å é ã®æ°åãèšå·ãè§£æ
éå±€ã¬ãã«ã«å¿ããŠAåã®ã»ã«ã«ã€ã³ãã³ããèšå®
äŸ: ã¬ãã«1ã¯å·Šè©°ããã¬ãã«2ã¯2æååã®åäžããã¬ãã«3ã¯4æååã®åäžã
å®è£
ããã«ã¯ãã·ãŒãåããéå±€ã¬ãã«ãå€å®ããIndentLevelããããã£ã䜿çšããŠã»ã«ã«ã€ã³ãã³ããèšå®ããŸãã
åŠç¿ã®é²ãæ¹
ãããã®æ¡åŒµæ©èœã¯ãåºæ¬çãªç®æ¬¡äœæãã¯ããçè§£ã§ããåŸã®ææŠèª²é¡ãšããŠé©ããŠããŸãã
| æ¡åŒµæ©èœ | å¿ èŠãªç¥è | é£æåºŠ |
|---|---|---|
| ã·ãŒãå倿Žã®è¿œè·¡ | CodeNameããããã£ãDictionaryã®å¿çš | â â â |
| ã«ããŽãªåé¡ | æååæäœïŒLeftãInStr颿°ïŒ | â ââ |
| æçµæŽæ°æ¥æèšé² | Workbookã€ãã³ããååå®çŸ© | â â â |
| æ€çŽ¢æ©èœ | ãŠãŒã¶ãŒãã©ãŒã ãListBoxã³ã³ãããŒã« | â â â |
| éå±€æ§é 衚瀺 | IndentLevelããããã£ãæ£èŠè¡šçŸ | â â â |
ãŸãã¯åºæ¬çãªã«ããŽãªåé¡ããå§ããŠãåŸã ã«é«åºŠãªæ©èœã«ææŠããŠããããšããå§ãããŸãã
æ¡åŒµæ©èœã®å®è£ æã®æ³šæç¹
æ¡åŒµæ©èœã远å ããéã¯ãå¿ ãå ã®ã³ãŒãã®ããã¯ã¢ãããåã£ãŠããäœæ¥ãå§ããŠãã ããããŸããæ°ããæ©èœã远å ããåŸã¯ãæ§ã ãªãã¿ãŒã³ã®ããã¯ã§ãã¹ããè¡ããäºæããªãåäœããªãã確èªããããšãéèŠã§ãã
ãããã®æ©èœã¯ãVBAã®åŠç¿ãé²ãã æ®µéã§ææŠããŠã¿ããšè¯ã顿ã«ãªããŸããå®åã§ããããªæ©èœããã£ãããã£ãšäŸ¿å©ãªã®ã«ããšæãããããããæ¬¡ã®åŠç¿ããŒãã«ãªããŸãã
ãŸãšã
ä»å解説ããç®æ¬¡èªåçæã®å®è£ ãã¯ããã¯ã¯ãã倿°ã®ã·ãŒããå¹ççã«ç®¡çãããããããŒã å šäœã§çµ±äžãããããã²ãŒã·ã§ã³ãæäŸãããããšãã£ãå®åã«ããã課é¡ãäœç³»çãã€ç¢ºå®ã«è§£æ±ºããå®çšçãªææ³ã§ãã
ãã®ææ³ã®æ žå¿ãšãªãã®ã¯ããã€ããŒãªã³ã¯ã«ããçŽæçãªããã²ãŒã·ã§ã³å®è£ ãšãæ¢åã®åèæ å ±ãä¿æããæŽæ°åŠçã«ããå©äŸ¿æ§ã®äž¡ç«ã§ããå®è£ æã«ç¹ã«éèŠãªã®ã¯ãé衚瀺ã·ãŒãã®é€å€ã«ããã»ãã¥ãªãã£é æ ®ãšãDictionaryãæŽ»çšããåèæ å ±ã®ç¢ºå®ãªä¿åã»åŸ©å ã®åŸ¹åºã§ãã
æåã§ã®ç®æ¬¡äœæã§ã¯æŽæ°æŒããå ¥åãã¹ãé »çºããã·ãŒãæ§æã®å€æŽã«è¿œåŸã§ããªãåé¡ã«å¯Ÿããã·ãŒãååšãã§ãã¯ã»å¯èŠå€å®ã»åå¹ èªå調æŽãçµã¿èŸŒãã èªåçæåŠçã§ä¿å®æ§ã確ä¿ããããã«åèæ å ±ã®ä¿ææ©èœã«ãããã·ãŒãã®è¿œå ã»åé€ã»äžŠã³æ¿ãã«å¯Ÿå¿ããªãããŠãŒã¶ãŒãèšå ¥ããæ å ±ãç¶æããå ç¢ãªç®æ¬¡ç®¡çã·ã¹ãã ãæ§ç¯ã§ããŸãã
ãŸããã«ããŽãªåé¡ã»éå±€æ§é è¡šç€ºã»æ€çŽ¢æ©èœãšãã£ãæ¡åŒµæ©èœã«ãããã·ãŒãæ°ãå¢å ããŠãå¿«é©ã«äœ¿ããçºå±çãªããŒã«ãšããŠæé·ãããããšãå¯èœã§ãã¢ãã€ã³åãšã®çµã¿åããã«ãããã©ã®ããã¯ã§ãäžç¬ã§å®è¡ã§ããæ±çšçãªæ¥åæ¯æŽããŒã«ãšããŠæŽ»çšã§ããŸãã
次åã¯ãWindowsã¯ãªããããŒãå±¥æŽã«ã»ã«ã®å€ãã³ããŒããå®è£ ãã¯ããã¯ã«ã€ããŠè§£èª¬ããŸãïŒãã²ãæåŸ ãã ããïŒ