ð·ïž Excelã®ååå®çŸ©ãšå€éšãªã³ã¯ââã·ãŒãã³ããŒã«ããç¶æ¿ã»æ®åã»ãã¡ã€ã«è¥å€§åã®ä»çµã¿
ð ã¯ããã«
ãã®èšäºã§ã¯ãExcelã®ãååã®å®çŸ©ãããã¹ã³ãŒããã·ãŒãã³ããŒãå€éšãªã³ã¯ãOpen XMLã®ä¿åæ§é ãšãã芳ç¹ãã解説ããŸããäž»ãªå¯Ÿè±¡ã¯ããã¹ã¯ãããçExcelã§æ±ã .xlsx ãš .xlsm ã§ãã
äžå¿ãšãªãçåã¯ããã·ãŒãã®æ°åŒããã¹ãŠå€ã«å€æããã®ã«ããªãäžèŠãªååãå€éšãªã³ã¯ãæ®ãã®ãã ã§ãã
ååå®çŸ©ã¯ãã»ã«ã®æ°åŒãšã¯å¥ã®æ å ±ãšããŠä¿åãããŸãããŸããå€éšããã¯ã®æ å ±ãååŸæžã¿ã®å€ãä¿åããä»çµã¿ããããŸãããã®ãããã»ã«ã®å€åã ãã§ã¯ããããããã¹ãŠåé€ããããšã¯éããŸããã
æ¬èšäºã§ã¯ãæ ¹æ ãæ¬¡ã®ããã«åºå¥ããŸãã
| åºå | æå³ |
|---|---|
| å ¬åŒä»æ§ | Microsoftã®è£œåã»APIããã¥ã¡ã³ããOpen XML仿§ã§ç¢ºèªã§ããäºé |
| å®è£ äžã®æå | ç¹å®ã®Excelç°å¢ã§èŠ³æž¬ããçµæãå¥ããŒãžã§ã³ãžã®äžè¬åã«ã¯æ³šæãå¿ èŠ |
| æšæž¬ã»æªç¢ºèª | æ§é äžèãããã説æããŸãã¯å ¬åŒè³æã§æ¡ä»¶ã確èªã§ããªãäºé |
æ²èŒããVBAã³ãŒãã¯ã調æ»ã»åçŸã®ããã®ã³ãŒãã§ããæ¬èšäºã§ã¯å®éã®Excelã«ããå®è¡æ€èšŒãè¡ã£ãŠããŸãããã·ãŒãã³ããŒã®ç¶æ¿æ¡ä»¶ã«ã€ããŠãåçŸçµæãå ¬åŒä»æ§ãšããŠæ±ããªãããšãéèŠã§ãã
ð§© ååå®çŸ©ã®åºæ¬ä»æ§
ð·ïž ååã¯ãåç §åŒã«ä»ããèå¥åã
ååå®çŸ©ã¯ãã»ã«ãç¯å²ã ãã§ãªãã宿°ãæ°åŒã«ãååãä»ããæ©èœã§ããæŠå¿µçã«ã¯ãæ¬¡ã®æ å ±ãæã¡ãŸãã
- ååã®æåå
- ã¹ã³ãŒã
- åç §åŒ
- è¡šç€ºç¶æ
- ã³ã¡ã³ããªã©ã®ä»å æ å ±
ååãåžžã«ã»ã«ç¯å²ã衚ãããã§ã¯ãããŸãããMicrosoft Learnã®DefinedNameã®èª¬æã§ããã»ã«ãç¯å²ãæ°åŒã宿°ãå€éšããã¯ãžã®åç §ãæ±ãããŠããŸããMicrosoft Learn
| å®çŸ©å 容 | ååã®äŸ | ãåç
§ç¯å²ããŸãã¯VBAã®RefersToã®äŸ |
æå³ |
|---|---|---|---|
| æ°å€å®æ° | TaxRate |
=0.1 |
ã»ã«ã䜿ããã«å€ãå®çŸ© |
| æåå宿° | ReportTitle |
="ææ¬¡å ±å" |
æååãå®çŸ© |
| ã»ã«ç¯å² | SalesData |
=Data!$B$2:$B$100 |
ããã¯å ã®ç¯å²ãåç § |
| èšç®åŒ | SalesTotal |
=SUM(Data!$B$2:$B$100) |
èšç®åŒãå®çŸ© |
| å€éšã»ã«ç¯å² | OldSales |
='C:\Reports\[Source.xlsx]Data'!$B$2:$B$100 |
å€éšããã¯ã®ç¯å²ãåç § |
| ä»ã®åå | ReportSales |
=SalesData |
å¥ã®ååãçµç±ããŠåç § |
ã¹ã³ãŒããšåç
§å
ã¯å¥ã®æŠå¿µã§ãã
äŸãã°ãSheet1ã¹ã³ãŒãã®ååããSheet2ãå€éšããã¯ãåç
§ããããšãã§ããŸãã
ð ããã¯ã¹ã³ãŒããšã·ãŒãã¹ã³ãŒã
ã¹ã³ãŒãã¯ã修食ãªãã§ãã®ååãèªèã§ããç¯å²ã衚ããŸãã
| é ç® | ããã¯ã¹ã³ãŒã | ã·ãŒãã¹ã³ãŒã |
|---|---|---|
| 修食ãªãã§å©çšã§ããå Žæ | ååãšããŠããã¯å ã®åã·ãŒã | å®çŸ©ãããã·ãŒã |
| ä»ã·ãŒãããã®å©çš | éåžžã¯ååã ãã§å©çš | =Sheet1!LocalRateã®ããã«ã·ãŒãåãä»ãã |
| ååã®å®çŸ© | åãããã¯ã¹ã³ãŒãå ã§ã¯éè€äžå¯ | ç°ãªãã·ãŒããªãååãå®çŸ©å¯èœ |
| ååã®ããŒã«ã«åãšã®é¢ä¿ | ååãšããŠããŒã«ã«åããåªå é äœãäœã | ãã®ã·ãŒãã§ã¯ååãšããŠåªå |
åäžã¹ã³ãŒãå
ã®ååã¯äžæã§ã倧æåã»å°æåã¯åºå¥ãããŸãããããã¯ã¹ã³ãŒãã®RateãšãSheet1ã¹ã³ãŒãã®Rateã¯å
±åã§ããŸããSheet1ã®æ°åŒã§=Rateãšæžããå ŽåãååãšããŠããŒã«ã«åãåªå
ãããŸãã
Microsoft Supportã¯ãããã¯åã«ãã修食ã§ããã¯ã¹ã³ãŒãåãæå®ããæ¹æ³ãšãå é ã¯ãŒã¯ã·ãŒãã§ã®ç«¶åã«é¢ããäŸå€ã説æããŠããŸããååã®äœ¿ãåããåæãšããèšèšã§ã¯ãNames in formulasã®èšèŒãšå®éã®è©äŸ¡çµæã確èªããå¿ èŠããããŸããMicrosoft Support
ðïž é衚瀺ã®ååãšçµã¿èŸŒã¿ã®åå
ååã«ã¯ãéåžžã®æ¥åçšã®åå以å€ãå«ãŸããŸãã
| çš®é¡ | äŸã»ç¹åŸŽ | åé€æã®æ³šæ |
|---|---|---|
| ãŠãŒã¶ãŒå®çŸ©å | éèšç¯å²ãèšå®å€ãæ°åŒãªã© | ä»ã®æ°åŒãVBAããå©çšãããŠããå¯èœæ§ |
| é衚瀺å | Name.Visible = False |
GUIã«èŠããªãããšãšãäžèŠã§ããããšã¯ç¡é¢ä¿ |
| çµã¿èŸŒã¿å | Print_Areaãªã© |
å°å·ãªã©ã®Excelæ©èœã«é¢ä¿ |
| ãã¯ãé¢é£ã®åå | Auto_Openãªã© |
ãã¯ãé¢é£ã®åäœã倿Žããå¯èœæ§ |
Nameãªããžã§ã¯ãã«ã¯ããŠãŒã¶ãŒå®çŸ©åãšçµã¿èŸŒã¿åã®äž¡æ¹ãå«ãŸããŸããName objectã§ã¯ãDatabaseãPrint_AreaãAuto_OpenãäŸç€ºãããŠããŸããMicrosoft Learn
ååã®ç®¡çã®èª¬æã«ã¯ãé衚瀺åãªã©ãç»é¢ã«è¡šç€ºãããªãååãããããšãèšèŒãããŠããŸãããããã£ãŠãååã®ç®¡çç»é¢ã ãã§ã¯å®å šãªæ£åžãã«ãªããŸãããMicrosoft Support
ãªããåç»é¢ã«ã¯ããŒãã«åã衚瀺ãããŸãããããŒãã«åãšæ¬èšäºã§æ±ãNameãªããžã§ã¯ããåäžèŠããªãããã«ããŸãã
ð ïž VBAãªããžã§ã¯ãã¢ãã«
| API | å ¬åŒä»æ§äžã®åœ¹å² |
|---|---|
Workbook.Names |
æå®ããã¯ã®ååãè¿ããã·ãŒãåºæã®ååãå«ã |
Worksheet.Names |
æå®ã·ãŒãã«åºæã®ååãè¿ã |
Name.Name |
ååã®æåå |
Name.RefersTo |
=ã§å§ãŸãA1圢åŒã®åç
§åŒ |
Name.Visible |
ååã®è¡šç€ºç¶æ |
Name.RefersToRange |
ååãåç
§ããRangeãååŸ |
Name.Delete |
ååå®çŸ©ãåé€ |
Workbook.Namesã¯ãããã¯ã¹ã³ãŒãåã ãã®äžèЧãã§ã¯ãããŸãããå
šã·ãŒãã®Worksheet.Namesã远å éèšãããšãåãååãäºéã«æ°ããããšã«ãªããŸããæ ¹æ ã¯Workbook.NamesãšWorksheet.Namesã§ããMicrosoft Learn
ãŸãã宿°ãªã©ãç¯å²ãè¿ããªãååã«RefersToRangeã䜿çšãããšå€±æããŸããæ±çšçãªæ£åžãã«ã¯ãName.RefersToã䜿çšããŸããMicrosoft Learn
ð ã·ãŒãã³ããŒæã«äœãç¶æ¿ãããã
ð å ¬åŒã«ç¢ºèªã§ããç¯å²
Microsoftã¯ãã·ãŒããå¥ããã¯ãžã³ããŒãããšãååã®ç«¶åãçºçããå Žåãããããšã説æããŠããŸããããããã©ã®ååãã³ããŒå¯Ÿè±¡ãšããŠéžã¶ããšããå®å šãªæ¡ä»¶è¡šã¯ãåç §ããå ¬åŒè³æã§ã¯ç¢ºèªã§ããŸããã
ç¹ã«ã次ã®åœé¡ã¯å ¬åŒä»æ§ãšããŠç¢ºèªã§ããŠããŸããã
ã³ããŒå ããã¯ã®æªäœ¿çšã®ããã¯ã¹ã³ãŒãåã¯ãã·ãŒãã³ããŒæã«ç¡æ¡ä»¶ã§ãã¹ãŠã³ããŒãããã
ããã¯ãã³ããŒãããªãããšããæå³ã§ã¯ãããŸãããçºçãåŸãæåãšããã¹ãŠã®å Žåã«æç«ããå ¬åŒä»æ§ã¯åºå¥ããå¿ èŠããããšããæå³ã§ãã
Worksheet.Copyã®å
¬åŒèª¬æã§ã¯ãæ°èŠããã¯ã®äœæãè€æ°ã·ãŒãã®ã³ããŒãã·ãŒãã®Nameã»CodeNameã»ã·ãŒãã³ãŒãã®åŒãç¶ããªã©ã¯èª¬æãããŠããŸãããååå®çŸ©ã®éžæã»å€ææ¡ä»¶ãŸã§ã¯èŠå®ãããŠããŸãããããã§ããã·ãŒãã®Nameã¯ãã·ãŒãåãšããããããã£ã§ãããååå®çŸ©ã®Namesãšã¯å¥ç©ã§ããMicrosoft Learn
ð§ ç¶æ¿æ¡ä»¶ããšã®æŽç
| 調æ»å¯Ÿè±¡ | å ¬åŒè³æããèšããããš | ã³ããŒåŸã«ç¢ºèªããäºé |
|---|---|---|
| ã³ããŒå¯Ÿè±¡ã·ãŒãã®ããŒã«ã«å | ã·ãŒãã³ããŒã«ãããç¶²çŸ çãªç¶æ¿æ¡ä»¶ã¯æªç¢ºèª | ã³ããŒå ã·ãŒãã®ããŒã«ã«åãšããŠååšããã |
| ã³ããŒå¯Ÿè±¡ã·ãŒãã§äœ¿çšäžã®ããã¯å | ã³ããŒæã«ååãç«¶åãåŸãããšã¯ç¢ºèªã§ãã | å®çŸ©ã®æç¡ãåç §åŒãæ°åŒã®åç §å |
| æªäœ¿çšã®ããã¯å | ç¡æ¡ä»¶ã§ãã¹ãŠç¶æ¿ãããèŠåã¯æªç¢ºèª | 宿°ã察象ã·ãŒãåç §ã察象å€ã·ãŒãåç §ãåããŠæ¯èŒ |
| 察象å€ã·ãŒããåç §ããåå | ã³ããŒåŸã®åç §åŒã®å€ææ¡ä»¶ã¯æªç¢ºèª | å ããã¯ãžã®å€éšåç §ã«ãªã£ãã |
| ã³ããŒå ã«ååããã | ååã®ç«¶åãã€ã¢ãã°ãšéžæè¢ãå ¬åŒã«èª¬æãããŠãã | æ¢åå®çŸ©ã®å©çšãæ¹åãèšç®çµæ |
| ã³ããŒååŸã®ã¹ã³ãŒãå€æŽ | èªå倿Žã®äžè¬æ¡ä»¶ã¯æªç¢ºèª | ããã¯åãšã·ãŒãåãåºå¥ããŠèšé² |
| è€æ°ã·ãŒãã®åæã³ã㌠| APIãšããŠå¯Ÿå¿ããŠãã | ãŸãšããŠç§»ããåç §å ãå éšåç §ã«ãªãã |
| ã·ãŒãã®åå¥ã³ã㌠| åæã³ããŒãšã®åååŠçã®åäžæ§ã¯æªç¢ºèª | å ã«äœãããå€éšåç §ãæ®ãã |
GUIãšWorksheet.Copy |
åååŠçãå®å šã«åããšããä¿èšŒã¯æªç¢ºèª | åãåæç¶æ ã»ç«¶åéžæã§æ¯èŒ |
察象å€ã·ãŒãã®å€ãåŒãç¶ãåç §ããã«ã¯ãå ããã¯ãžã®åç §ãæ®ããªã©ã®æ¹æ³ãå¿ èŠã§ãããããã£ãŠãåç §å ã·ãŒããå«ããã«ã³ããŒããçµæãå€éšåç §ãçããããšã¯æ§é äžèª¬æã§ããŸãããã ããã©ã®ååã«å¯ŸããŠãã®å€æãè¡ããããã¯ãå¥é確èªãå¿ èŠã§ãã
âïž ååãç«¶åããå Žå
Microsoft Supportã®ååã®ç«¶åã«é¢ãã説æã§ã¯ãäž»ã«æ¬¡ã®éžæè¢ã瀺ãããŠããŸããMicrosoft Support
| éžæè¢ | æå³ |
|---|---|
| ã¯ã | ã³ããŒå ã«ååšããååã®å®çŸ©ãå©çšãã |
| ããã | ç§»åã»ã³ããŒããåŽã®ååã倿Žãã |
| ãã¹ãŠã¯ã | 察å¿ããçã§ã¯ãåŸç¶ã®ç«¶åã«ãã³ããŒå ã®ååãå©çšãã |
äŸãã°ãã³ããŒå
ã®TaxRateã0.1ãã³ããŒå
ã®TaxRateã0.08ãªããç«¶ååŠçã«ãã£ãŠæ°åŒã®æå³ãå€ããå¯èœæ§ããããŸãã
åè³æã®ã䌌ãååã®ç¯å²ãè€æ°ååšããããšãã説æãããåäžã¹ã³ãŒãå ã«å®å šã«åäžã®ååãéè€ã§ãããšã¯è§£éããŸãããååã®æååãã¹ã³ãŒããåç §åŒãã»ããã§ç¢ºèªããŸãã
ç«¶åãã€ã¢ãã°ã§ãã¯ãããéžã¶ããšã¯ãåãªãèŠåã®ç¡èŠã§ã¯ãããŸãããæ°åŒãå©çšããå®çŸ©ãå€ããå¯èœæ§ããããŸããèªååŠçã§èŠåãæå¶ããåã«ãç«¶åæã®çµæã確èªããŠãã ããã
𧪠æå°éã®åçŸçšããã¯
次ã®ã³ãŒãã¯ãæ¢åããã¯ã倿Žãããæ€èšŒçšã®æ°èŠããã¯ãäœããŸããæšæºã¢ãžã¥ãŒã«ã«è²Œãä»ããŠå®è¡ããŸãã
Option Explicit
Public Sub CreateNameCopyFixture()
Dim wb As Workbook
Dim report As Worksheet
Dim data As Worksheet
Set wb = Workbooks.Add(xlWBATWorksheet)
Set report = wb.Worksheets(1)
report.Name = "Report"
Set data = wb.Worksheets.Add(After:=report)
data.Name = "Data"
report.Range("A1").Value2 = 10
data.Range("A1").Value2 = 20
' 䜿çšããããã¯ã¹ã³ãŒãå
wb.Names.Add Name:="UsedHere", _
RefersTo:="=Report!$A$1"
wb.Names.Add Name:="UsedOther", _
RefersTo:="=Data!$A$1"
' æªäœ¿çšåïŒåç
§å
ã»å®çŸ©åœ¢åŒãåãã
wb.Names.Add Name:="UnusedHere", _
RefersTo:="=Report!$A$1"
wb.Names.Add Name:="UnusedOther", _
RefersTo:="=Data!$A$1"
wb.Names.Add Name:="UnusedConstant", _
RefersTo:="=123"
wb.Names.Add Name:="UnusedHidden", _
RefersTo:="=Data!$A$1", Visible:=False
' ã·ãŒãã¹ã³ãŒãå
report.Names.Add Name:="Report!LocalHere", _
RefersTo:="=Report!$A$1"
report.Names.Add Name:="Report!LocalOther", _
RefersTo:="=Data!$A$1"
report.Range("B1").Formula = "=UsedHere"
report.Range("B2").Formula = "=UsedOther"
report.Range("B3").Formula = "=LocalHere"
report.Activate
wb.Calculate
MsgBox "æ€èšŒçšããã¯ãäœæããŸããã" & vbCrLf & _
"NameCopySource.xlsx ãªã©ã®ååã§ä¿åããŠãã ããã"
End Sub
ä¿åããã³ããŒå ã䜿ããæ¬¡ã®æ¡ä»¶ãæ¯èŒããŸããå詊éšã¯ãçµæãåŒãç¶ãããåãåæç¶æ ããéå§ããŸãã
| è©Šéš | æäœ | 確èªç®ç |
|---|---|---|
| A | Reportã ããæ°èŠããã¯ãžã³ã㌠|
æªäœ¿çšåã»ããŒã«ã«åã®ç¶æ¿ |
| B | ReportãšDataãåæã«ã³ã㌠|
åç §å ãåæã«å«ãã广 |
| C | Reportãæ¬¡ã«Dataãåå¥ã³ã㌠|
æäœé ãšå€éšåç §ã®æ®å |
| D | UsedHere = 999ãæã€å¥ããã¯ãžã³ã㌠|
ååç«¶åãšæ°åŒã®è©äŸ¡ |
| E | ã³ããŒå
ã®Report!B1:B3ãå€å |
å€åååŸã®ååã»ãªã³ã¯ã®å·® |
| F | ä¿åããŠéããå床éã | ä¿åæã®æŽçãšåèªèŸŒåŸã®ç¶æ |
VBAã«ããAã»Bã®æäœäŸã¯æ¬¡ã®ãšããã§ãããã¡ã€ã«åã¯å®éã®ååã«åãããŸãã
Public Sub CopyReportOnly()
Workbooks("NameCopySource.xlsx").Worksheets("Report").Copy
End Sub
Public Sub CopyReportAndDataTogether()
Workbooks("NameCopySource.xlsx") _
.Worksheets(Array("Report", "Data")).Copy
End Sub
GUIã§ã¯ãã·ãŒãã¿ãã®ïŒ»ç§»åãŸãã¯ã³ããŒïŒœã䜿çšããåãæ¡ä»¶ã§æ¯èŒããŸããèšé²ããé ç®ã¯ãExcelã®è£œååã»ããŒãžã§ã³ã»ãã«ããã³ããŒæäœãç«¶åãžã®åçãååã®äžèЧãå€éšãªã³ã¯äžèЧã§ãã
äžã€ã®è©Šéšã§æªäœ¿çšåãã³ããŒãããŠããããã ãã§ããã¹ãŠã®æªäœ¿çšåãç¡æ¡ä»¶ã§ã³ããŒãããããšã¯çµè«ã§ããŸããã
ð ååå®çŸ©ãšå€éšãªã³ã¯ãæ®ãçç±
ð§± ã»ã«ã®å€åãšååã®åé€ã¯å¥ã®æäœ
äŸãã°ã次ã®ååããããšããŸãã
ååïŒOldSales
åç
§åŒïŒ='C:\Reports\[Source.xlsx]Data'!$B$2:$B$100
ã·ãŒãäžã®=SUM(OldSales)ãèšç®çµæã®æ°å€ã«å€ããŠãããã®æäœã倿Žããã®ã¯ã»ã«ã®å
容ã§ããå¥ã«ååšããOldSalesãšããååå®çŸ©ãåé€ããæäœã§ã¯ãããŸããã
Open XMLäžã§ããã»ã«ã®æ°åŒã¯ã¯ãŒã¯ã·ãŒãã®<f>ãååã¯ããã¯ã®<definedName>ãšããå¥ã®èŠçŽ ã§ããWorking with formulasãšDefinedNamesããããã®ä¿åæ§é ã®åé¢ã確èªã§ããŸããMicrosoft Learn
ãŸããMicrosoft Supportã¯ã以åã®Excelã§ã¯æªäœ¿çšã®ååã«å«ãŸãããªã³ã¯ãé衚瀺ã ã£ããããªã³ã¯èªäœã¯ååšããŠãããšèª¬æããŠããŸããæªäœ¿çšã§ããããšã¯ããªã³ã¯ãååšããªãããšãæå³ããŸãããManage workbook linksãæ ¹æ ã§ããMicrosoft Support
ðŸ å€éšãªã³ã¯ã®ãã£ãã·ã¥
å€éšããã¯ããååŸããå€ããåç §ããåŽã®ããã¯ã«ä¿åããä»çµã¿ããããŸãã
| æ å ± | ä¿åäžã®åœ¹å² |
|---|---|
| ååå®çŸ© | ååãšåç §åŒãä¿æ |
| å€éšãªã³ã¯æ å ± | å€éšããã¯ãšã®é¢ä¿ãã·ãŒãåãªã©ãä¿æ |
| å€éšãªã³ã¯ã®ã»ã«å€ãã£ãã·ã¥ | å€éšããã¯ããååŸããã»ã«å€ãä¿æ |
| éåžžã®æ°åŒã»ã«ã®èšç®çµæ | èªããã¯ã®æ°åŒã»ã«ã«å¯Ÿããååã®èšç®çµæãä¿æ |
å€éšãªã³ã¯ã®ãã£ãã·ã¥ãšãéåžžã®æ°åŒã»ã«ã®èšç®çµæã¯å¥ã§ãã
Open XMLã®workbookPr/@saveExternalLinkValuesã¯ãå€éšãªã³ã¯ããååŸããå€ãä¿åæã«ãã£ãã·ã¥ãããã衚ããŸãã仿§äžã®æ¢å®å€ã¯trueã§ããVBAã«ãWorkbook.SaveLinkValuesãçšæãããŠããŸããMicrosoft Learn
ãã ããæ¬¡ã®å 容ãŸã§ã¯ãã®èšå®ã ãã§ã¯å€æã§ããŸããã
- å ·äœçã«äœã»ã«åã®ãã£ãã·ã¥ãååšãããã
- éå»ã®ãã£ãã·ã¥ãã©ã®æäœã§æŽæ°ã»çž®å°ããããã
- æªäœ¿çšåã ããæ®ã£ãå Žåã«ãã©ããŸã§ãã£ãã·ã¥ãç¶æããããã
- èšå®å€æŽåŸã«ãæ¢åã®é¢é£ããŒããã©ã®ããã«æŽçããããã
ååå®çŸ©ãã®ãã®ããåç §ç¯å²ã®ã»ã«ããŒã¿ãå å ããŠããããã§ã¯ãããŸãããååã®åç §åŒãšãå€éšãªã³ã¯çšããŒãã«ä¿åãããã»ã«å€ãã£ãã·ã¥ã¯ãå¥ã®æ§é ã§ãã
ð« åç §å ããªããªã£ãå Žå
åç §å ãã¡ã€ã«ãç§»åã»åé€ãããããæ¥ç¶ã§ããªããªã£ãããããšããªã³ã¯ãæŽæ°ã§ããªããªããŸããæ¢åã®å€ããã£ãã·ã¥ãæ®ã£ãŠããŠãããããææ°å€ã§ããããšã¯ä¿èšŒãããŸããã
åç
§å
ãååšããªãããšãšãååã®åç
§åŒãçŽã¡ã«#REF!ãžå€ããããšãå矩ã§ã¯ãããŸããã æŽæ°äžèœãªãã¹ããã®ãŸãŸæ®ãå Žåãèæ
®ãã#REF!æ€çŽ¢ã ãã§èª¿æ»ãçµããªãããã«ããŸãã
衚瀺å€ããšã©ãŒã¯ãæŽæ°ã®æç¡ãåèšç®ãåç §æ¹æ³ããã£ãã·ã¥ã®ç¶æ ãªã©ã«ãã£ãŠç¢ºèªãå¿ èŠã§ããå ¬åŒè³æã§ã¯ããªã³ã¯åãã«å¯ŸãããœãŒã¹ã®å€æŽïŒœãªã©ã®å¯Ÿå¿ã説æãããŠããŸããMicrosoft Support
ð§¹ ååãåé€ããã°ãªã³ã¯ãæ¶ããã
ååã®åé€ã§ç¢ºå®ã«å¯Ÿè±¡ãšãªãã®ã¯ããã®ååå®çŸ©ã§ãã
é¢é£ããå€éšãªã³ã¯æ å ±ã®åé€ã«ã€ããŠã¯ã次ãåããŠèããŸãã
| ç¶æ | 倿 |
|---|---|
| ä»ã®ååãåãå€éšããã¯ãåç §ããŠãã | äžã€ã®ååãæ¶ããŠãå€éšåç §ã¯æ®ã |
| ã»ã«ã»ã°ã©ããªã©ãåãå€éšããã¯ãåç §ããŠãã | åå以å€ã®åç §å ãæ®ã |
| åé€ããååãæåŸã®åç §å ã ã£ã | ä¿åæã«é¢é£æ å ±ãæŽçãããå¯èœæ§ã¯ãã |
| åç §å ããªããªã£ãããã«èŠããã®ã«ããŒããæ®ã | æªç¢ºèªã®åç §ç®æãä¿ååŠçã調ã¹ãå¿ èŠããã |
æåŸã®ååãåé€ããã°ãé¢é£ããŒããå¿ ãå³åº§ã«åé€ããããšããä¿èšŒã¯ãåç §ããå ¬åŒè³æã§ã¯ç¢ºèªã§ããŸããã
åé€ãä¿åãåèªèŸŒã®åŸã«ãååã»ãªã³ã¯äžèЧãšZIPå éšã確èªããŠå€æããŸãã
ðŠ Open XMLã®å éšæ§é
ðïž èª¿æ»å¯Ÿè±¡ãšãªãäž»ãªããŒã
éåžžã®æå·åãããŠããªã.xlsxã».xlsmã¯ãZIPããã±ãŒãžãšããŠå
éšã確èªã§ããŸããMicrosoft Learnãã.xlsxã®ã³ããŒã.zipãžå€æŽããŠå
éšãèŠãæ¹æ³ã説æããŠããŸããStructure of a SpreadsheetML documentãåç
§ããŠãã ãããMicrosoft Learn
以äžã¯Excelã§äžè¬çã«äœ¿ããããã¹ã§ããæ£ç¢ºãªå¯Ÿå¿é¢ä¿ã¯ããã¡ã€ã«åã®æšæž¬ã§ã¯ãªãRelationshipããã©ã£ãŠç¢ºèªããŸãã
| ãã¹ | äž»ãªå 容 |
|---|---|
xl/workbook.xml |
ã·ãŒãäžèЧãååå®çŸ©ãå€éšåç §äžèЧãããã¯èšå® |
xl/_rels/workbook.xml.rels |
ããã¯ãšåããŒãã®é¢ä¿ |
xl/externalLinks/externalLinkN.xml |
å€éšããã¯æ å ±ãå€éšåæ å ±ãã»ã«å€ãã£ãã·ã¥ãªã© |
xl/externalLinks/_rels/externalLinkN.xml.rels |
å€éšããã¯ãžã®åç §å |
xl/worksheets/sheetN.xml |
èªããã¯ã®ã»ã«å€ã»æ°åŒãªã© |
[Content_Types].xml |
åããŒãã®ã³ã³ãã³ãã¿ã€ã |
.xlsmã§ã¯ããããã«å ããŠVBAãããžã§ã¯ããªã©ã容éã®èª¿æ»å¯Ÿè±¡ã«ãªããŸããæå·åããããã¡ã€ã«ã¯ããã®ZIPç¢ºèªæé ããã®ãŸãŸé©çšã§ããŸããã
ð·ïž workbook.xmlã®ååå®çŸ©
次ã¯èª¬æçšã®XMLæçã§ãã
<definedNames
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<definedName name="TaxRate">0.1</definedName>
<definedName name="SalesData">
Data!$B$2:$B$100
</definedName>
<definedName name="LocalValue" localSheetId="0">
Report!$A$1
</definedName>
<definedName name="HiddenValue" hidden="1">
Data!$A$1
</definedName>
</definedNames>
| XMLã®èŠçŽ ã»å±æ§ | æå³ |
|---|---|
definedNames |
ãã®ããã¯ã®ååå®çŸ©ã®éå |
definedName/@name |
ååã®æåå |
definedNameã®ããã¹ã |
åç §åŒã»å®æ°ãªã© |
localSheetId |
ããŒã«ã«åã®ã¹ã³ãŒããšãªãã·ãŒããæå® |
hidden="1" |
é衚瀺ã®åå |
ããã¯ã¹ã³ãŒãåã§ã¯localSheetIdãä»ãããããŒã«ã«åã§ã¯æå®ããŸããããã¯åç
§åŒãæãã·ãŒããšã¯å¥ã®æ
å ±ã§ãã
XMLå
ã®åŒã«ã¯ãVBAã®RefersToã§äœ¿ãå
é ã®=ãä»ããŸãããèŠçŽ æ§é ãšå±æ§ã¯ãDefinedNameããã³DefinedNamesã«å¯Ÿå¿ããŸããMicrosoft Learn
ð å€éšããã¯ãžã®é¢ä¿
å€éšãªã³ã¯ã¯ãæŠã次ã®é¢ä¿ããã©ã£ãŠç¢ºèªããŸãã
workbook.xmlã®externalReferencesã«ããé¢ä¿IDãworkbook.xml.relsã«èšé²ãããå€éšãªã³ã¯çšããŒãã- å€éšãªã³ã¯çšããŒãå
ã®
externalBookã - ãã®ããŒãã®
.relsã«èšé²ãããå€éšããã¯ã®å Žæã
æ°åŒããŒãRefersToã«è¡šç€ºãããå®å
šãªãã¹æååãããã®ãŸãŸåã圢ã§XMLã«ä¿åããããšã¯éããŸãããMicrosoft Supportã¯ã衚瀺äžã®ãã¹ãšä¿åããããã¹ãç°ãªãããšãçžå¯Ÿãã¹ãå©çšããããšã説æããŠããŸããDescription of workbook link management and storage in Excelãæ ¹æ ã§ããMicrosoft Support
ðïž å€éšãªã³ã¯çšããŒãã®ãã£ãã·ã¥
externalLinkN.xmlã«ä¿åã§ããæ§é ã®äžäŸã§ããå®ãã¡ã€ã«ã§ã¯ãçç¥ãããèŠçŽ ã远å ã®èŠçŽ ããããŸãã
<externalLink
xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<externalBook r:id="rId1">
<sheetNames>
<sheetName val="Data"/>
</sheetNames>
<sheetDataSet>
<sheetData sheetId="0">
<row r="1">
<cell r="A1" t="n">
<v>120</v>
</cell>
</row>
</sheetData>
</sheetDataSet>
</externalBook>
</externalLink>
ããã§sheetDataSetã¯ãå€éšããã¯ã®ã¯ãŒã¯ã·ãŒãããŒã¿ã®ãã£ãã·ã¥ã§ããèªããã¯ã®xl/worksheets/ã«ããã»ã«ããŒã¿ãšã¯åºå¥ããŸããExternalBookãšSheetDataSetã«ããã®æ§é ãå®çŸ©ãããŠããŸããMicrosoft Learn
ãŸããexternalBookã®äžã«ãdefinedNamesãååšãåŸãŸãããã¡ãã¯å€éšããã¯å
ã®ååã«é¢ããæ
å ±ã§ãããworkbook.xmlã®ãèªããã¯ã®ååäžèЧããšã¯å¥ã§ããExternalDefinedNameãåç
§ããŠãã ãããMicrosoft Learn
ð ååã®æ°ãšãã¡ã€ã«ãµã€ãºã®é¢ä¿
ååãå¢ãããšãååã®æååãåç §åŒã屿§ãã³ã¡ã³ããªã©ã®ä¿åéãå¢ããŸããããããååã®ä»¶æ°ã ãã§ãã¡ã€ã«ãµã€ãºã¯æ±ºãŸããŸããã
| èŠå | 容éãžã®åœ±é¿ |
|---|---|
| ååã®ä»¶æ° | XMLèŠçŽ ãšå±æ§ã®æ°ãå¢ãã |
| ååã»åç §åŒã»ã³ã¡ã³ãã®é·ã | æååã®ä¿åéãå¢ãã |
| å€éšãªã³ã¯çšããŒã | ååã®XMLãšã¯å¥ã«å®¹éã䜿ã |
| å€éšã»ã«å€ã®ãã£ãã·ã¥ | ä¿åãããã»ã«æ°ã»å€ã®å 容ã«å·Šå³ããã |
| æååã®ç¹°ãè¿ã | ZIPã§å§çž®ããããã |
| ç°ãªãé·ãæååãå€ã®éå | å 容ã«ãã£ãŠå§çž®çãå€ãã |
äŸãã°ãçãåŒã§å·šå€§ãªç¯å²ãåç §ããŠããååå®çŸ©ã®XMLèªäœã«ããã®ç¯å²ã®å šã»ã«å€ãæžã蟌ãŸããããã§ã¯ãããŸããã å€éšãã£ãã·ã¥ã«äœãä¿åããããã¯å¥ã«èª¿ã¹ãŸãã
ãŸããè€æ°ã®ååãåãå€éšãªã³ã¯æ å ±ãå©çšããããšãèãããããããååäžä»¶ã«ã€ããã£ãã·ã¥äžåŒãå¢ãããšããèšç®ãã§ããŸããã
容éã®æ¯èŒã§ã¯ãå±éåŸã®XMLãµã€ãºãšãZIPå ã®å§çž®åŸãµã€ãºãäž¡æ¹èŠãå¿ èŠããããŸãã
ð äžä»£ãéããã·ãŒãã³ããŒãšèç©
ããã¯AããBãBããCãžã·ãŒããã³ããŒããéçšã§ã¯ãäžèŠãªå®çŸ©ãã³ããŒå¯Ÿè±¡ãšãªãããã®ãŸãŸåé€ãããªããã°ã次ã®äžä»£ãžæ®ãå¯èœæ§ããããŸãã
ãã ããæ¬¡ã®æ¡ä»¶ã«ãã£ãŠå¢ãæ¹ã¯å€ãããŸãã
| æ¡ä»¶ | èããããçµæ |
|---|---|
| æ°ããåºæåã远å ãç¶ãã | ç¶æ¿ãããã°ä»¶æ°ãå¢ãã |
| ååã»åã¹ã³ãŒãã§ç«¶åãã | æ¢åå®çŸ©ã®å©çšãæ¹åãªã©ã®åŠçãå ¥ã |
| ã³ããŒå ã§æ°ããã·ãŒãã¹ã³ãŒããã§ãã | åãçãååã§ãå¥å®çŸ©ãšããŠååšãåŸã |
| ã³ããŒå¯Ÿè±¡ã«éžã°ããªãååããã | å ããã¯ã®å šä»¶æ°ããã®ãŸãŸäŒãããšã¯éããªã |
| æž æã»åæ§æãè¡ã | ä»¶æ°ã容éãæžãå Žåããã |
| å€éšãªã³ã¯ã®ãã£ãã·ã¥ãå€ãã | ååã®ä»¶æ°ãåãã§ã容éãå€ããåŸã |
ãããã£ãŠãå調å¢å ã»ç·åœ¢å¢å ã»ææ°çå¢å ã®ãããããã·ãŒãã³ããŒäžè¬ã®æ§è³ªãšããŠæå®ã§ããŸããã
ç¹ã«ãååã®ç«¶åãããããããæ¯åå šä»¶ãåã«ãªãããšãã説æã«ã¯æ ¹æ ãå¿ èŠã§ããå®åäžã¯ãäžä»£ããšã®ååäžèЧãšããŒãå¥å®¹éãèšé²ãã远å ã»åé€ã»æ¹åã»åç §å 倿Žãæ¯èŒããŸãã
ð¬ çŽ1.5MBããçŽ30KBã«ãªã£ãäºäŸã®è§£é
ð ãã®äºäŸããåããããš
察象ã®äºäŸã§ã¯ã次ã®çŸè±¡ãå ±åãããŠããŸãã
- ã·ãŒããæ°èŠããã¯ãžã³ããŒããã
- ã³ããŒããã·ãŒãã®æ°åŒããã¹ãŠå€ã«å€æããã
- ä¿ååŸã®ãµã€ãºã¯çŽ1.5MBã ã£ãã
- å€éšåç §ãå«ãäžèŠãªååã倧éã«ååšããã
- ååããã¹ãŠåé€ããŠä¿åãããšçŽ30KBã«ãªã£ãã
ããã¯ãåååé€ãšãã®åŸã®ä¿åã«äŒŽã£ãŠã倧ããªå®¹éåæžãèµ·ããäºäŸã§ãã
ãã ããå éšæ§é ãæ¯èŒããŠããªãããããåæžãããçŽ1.47MBã¯ãã¹ãŠååå®çŸ©ã®æååã ã£ããããã¹ãŠå€éšãã£ãã·ã¥ã ã£ãããšã¯å€æã§ããŸããã
ð§ èããããåå
| åå åè£ | æè¡çãªèª¬æ | 確èªããå Žæ |
|---|---|---|
| ååå®çŸ©ãã®ãã®ã倧ããã£ã | 倧éã®ååãé·ãåç §åŒã»ã³ã¡ã³ããªã©ãåé€ããã | xl/workbook.xmlã®definedNames |
| å€éšãªã³ã¯æ å ±ãæŽçããã | åååé€åŸã®ä¿åã§ãäžèŠã«ãªã£ãå€éšãªã³ã¯çšããŒããåé€ã»çž®å°ãããå¯èœæ§ | xl/externalLinks/ãšé¢é£.rels |
| å€éšã»ã«å€ãã£ãã·ã¥ã倧ããã£ã | sheetDataSetã«ä¿åãããå€ã容éãå ããŠããå¯èœæ§ |
åexternalLinkN.xml |
| è€æ°ã®èŠå ãéãªã£ã | ååã®XMLãšå€éšãªã³ã¯çšããŒãã®äž¡æ¹ãçž®å°ããå¯èœæ§ | äžèšãã¹ãŠ |
| åä¿åã«äŒŽãå¥ã®å€å | åå以å€ã®ããŒããåæ§æãããå¯èœæ§ | å šããŒãã®å·®å |
å€éšåç §åã倧éã«ãã£ãããšãããå€éšãªã³ã¯çšããŒããšãã£ãã·ã¥ã¯åªå çãªèª¿æ»å¯Ÿè±¡ã§ããããããå€§å¹ ã«çž®å°ãããšããäºå®ã ãã§ããã£ãã·ã¥ãäž»å ã ã£ããšã¯ç¢ºå®ã§ããŸããã
𧪠åå ãåãåããæ¯èŒæ¹æ³
åé€åãã¡ã€ã«ãåºæºã«ã次ã®3çš®é¡ãäœããŸãã
| ãã¡ã€ã« | æäœ | ç®ç |
|---|---|---|
before.xlsx |
åé€åã®ä¿åæžã¿ãã¡ã€ã« | åºæº |
resaved.xlsx |
ååãåé€ãããåã圢åŒã§å¥åä¿å | åä¿åã ãã«ããå€åãç¢ºèª |
cleaned.xlsx |
åãåºæºãã¡ã€ã«ããååãåé€ããåã圢åŒã§ä¿å | åååé€ã«äŒŽãå€åãç¢ºèª |
Excelã®ããŒãžã§ã³ãå€éšãªã³ã¯æŽæ°ãžã®åçãåèšç®æ¡ä»¶ã¯æããŸããå ãã¡ã€ã«ãäžæžããããä¿ååŸã¯ExcelãéããŠã³ããŒã調ã¹ãŸãã
æ¯èŒããé ç®ã¯æ¬¡ã®ãšããã§ãã
- ZIPå ã®å šããŒãã®æç¡ãšå§çž®åŸãµã€ãºã
workbook.xmlå ã®ååä»¶æ°ãšåç §åŒãexternalReferencesãšé¢é£Relationshipã- åå€éšãªã³ã¯çšããŒãã®
sheetDataSetã®æç¡ã»ä¿åã»ã«æ°ã styles.xmlãsharedStrings.xmlãã¯ãŒã¯ã·ãŒããç»åããããããã£ãã·ã¥ãªã©ã®å·®ã
| æ¯èŒçµæ | å°ãã倿 |
|---|---|
workbook.xmlã®å§çž®åŸãµã€ãºã倧ããæžå° |
ååå®çŸ©èªäœã®å¯äžã倧ããã£ããšå€æã§ãã |
| å€éšãªã³ã¯çšããŒãã倧ããæžå° | å€éšãªã³ã¯æ å ±ã»ãã£ãã·ã¥ã®å¯äžã倧ããã£ããšå€æã§ãã |
å€éšãªã³ã¯çšããŒãå
ã®sheetDataSetã倧éšåãå ãã |
ã»ã«å€ãã£ãã·ã¥ãäž»èŠå ã ã£ããšãã説æãæ¯æ |
| ç¡å€æŽã®åä¿åã§ã倧ããçž®å° | åååé€ä»¥å€ã®ä¿ååŠçã圱é¿ããŠãã |
| ä»ã®ããŒãã倧ããå€å | ååã ããåå ãšãã説æã§ã¯äžåå |
ããŒãçªå·ãé¢ä¿IDãæ¯ãçŽãããå Žåãèæ
®ããexternalLink1.xmlãšããååã ãã§åäžæ§ã倿ãããåç
§å
ã察å¿ä»ããŸãã
調æ»ç®çã§ZIPå éšãèªãããšãšãå éšXMLãçŽæ¥åé€ããŠä¿®åŸ©ããããšã¯å¥ã§ããããŒãã ããæ¶ããšãRelationshipãåŒãšã®æŽåæ§ãå£ãå¯èœæ§ããããŸããå ãã¡ã€ã«ãçŽæ¥ç·šéããªãã§ãã ããã
ð ïž ååã»å€éšãªã³ã¯ã®èª¿æ»ãšåé€
ð¥ïž GUIã«ãã確èª
ååå®çŸ©ã¯ïŒ»æ°åŒïŒœâååã®ç®¡çã§ç¢ºèªããŸããåç §å ãç¯å²ããšã©ãŒã確èªããäžèŠãšå€æããå®çŸ©ãåé€ããŸãã
å€éšãªã³ã¯ã¯ïŒ»ããŒã¿ïŒœâããã¯ã®ãªã³ã¯ïŒœãæ§çã§ã¯ïŒ»ãªã³ã¯ã®ç·šéã確èªããŸãã
ãã ããMicrosoft Supportã¯ããªã³ã¯ã®èª¿æ»å¯Ÿè±¡ãšããŠã»ã«æ°åŒãååãå³åœ¢ãã°ã©ãã¿ã€ãã«ãã°ã©ãç³»åãæãããã¹ãŠãèªåçã«èŠã€ããæ¹æ³ã¯ãªããšèª¬æããŠããŸãããŸãããªã³ã¯è§£é€åŸã«ååã®åé€ãå¥éå¿ èŠã«ãªãå Žåããã¯ãšãªã®ç¢ºèªã«ãèšåããŠããŸããMicrosoft Support
| ç¢ºèªæ¹æ³ | äž»ãªéç |
|---|---|
| ã»ã«æ°åŒã®æ€çŽ¢ | ååã®åç §åŒãªã©ãç¶²çŸ ããªã |
| ååã®ç®¡ç | é衚瀺åãç¶²çŸ ããªã |
| ããã¯ã®ãªã³ã¯ | ãã¹ãŠã®å©çšç®æãä»çš®ã®æ¥ç¶ãäžæ¬ç£æ»ããæ©èœã§ã¯ãªã |
VBAã®LinkSources |
æå®ããçš®é¡ã®ãªã³ã¯äžèЧã§ãããå šå€éšäŸåã®èšŒæã§ã¯ãªã |
| ZIPå éšã®ç¢ºèª | ä¿åå 容ã確èªã§ããããå©çšç®çã»åé€å¯åŠãŸã§ã¯å€æã§ããªã |
ð VBAã§ååãäžèЧåãã
次ã®ã³ãŒãã¯ãå®è¡éå§æã®ã¢ã¯ãã£ãããã¯ã調æ»ããçµæãå¥ã®æ°èŠããã¯ãžæžãåºããŸãã調æ»å¯Ÿè±¡ã®ååãã»ã«ã¯å€æŽããŸããã
ã·ãŒãã¹ã³ãŒãã¯ãååã®æååãæšæž¬ã§åè§£ãããåWorksheet.Namesãžã®æå±ãã倿ããŸããWindowsçExcelãæ³å®ããèŸæžã¯é
å»¶ãã€ã³ãã£ã³ã°ã§äœ¿çšããŸãã
Option Explicit
Public Sub AuditDefinedNames()
Dim source As Workbook
Dim result As Workbook
Dim output As Worksheet
Dim ws As Worksheet
Dim nm As Name
Dim localScopes As Object
Dim rows() As Variant
Dim headers As Variant
Dim formulaText As String
Dim i As Long
Dim j As Long
Dim count As Long
Set source = Application.ActiveWorkbook
If source Is Nothing Then Exit Sub
Set localScopes = CreateObject("Scripting.Dictionary")
localScopes.CompareMode = vbTextCompare
' Workbook.Namesã«ã¯ããŒã«ã«åãå«ãŸããã
' ããŒã«ã«åã®æå±ã·ãŒãã ããå
ã«èšé²ããã
For Each ws In source.Worksheets
For Each nm In ws.Names
localScopes(nm.Name) = ws.Name
Next nm
Next ws
count = source.Names.Count
If count > 0 Then
ReDim rows(1 To count, 1 To 7)
For Each nm In source.Names
i = i + 1
formulaText = nm.RefersTo
rows(i, 1) = nm.Name
If localScopes.Exists(nm.Name) Then
rows(i, 2) = "Sheet: " & localScopes(nm.Name)
Else
rows(i, 2) = "Workbook"
End If
rows(i, 3) = formulaText
rows(i, 4) = CStr(nm.Visible)
rows(i, 5) = CStr( _
InStr(1, formulaText, "#REF!", vbTextCompare) > 0)
rows(i, 6) = CStr( _
(InStr(1, formulaText, "[", vbBinaryCompare) > 0) And _
(InStr(1, formulaText, "]", vbBinaryCompare) > 0))
rows(i, 7) = Len(formulaText)
Next nm
End If
Set result = Workbooks.Add(xlWBATWorksheet)
Set output = result.Worksheets(1)
output.Name = "NameAudit"
headers = Array("Name", "Scope", "RefersTo", "Visible", _
"REFæååãã", "è§æ¬åŒ§ããã»å€éšåç
§åè£", _
"åç
§åŒã®æåæ°")
' åç
§åŒãæ°åŒãšããŠè©äŸ¡ãããªãã
output.Range("A1:G" & CStr(count + 1)).NumberFormat = "@"
For j = 0 To UBound(headers)
output.Cells(1, j + 1).Value2 = headers(j)
Next j
If count > 0 Then
output.Range("A2").Resize(count, 7).Value2 = rows
End If
output.Range("I1:I3").NumberFormat = "@"
output.Range("I1").Value2 = source.FullName
output.Range("I2").Value2 = _
"Excel " & Application.Version & _
" / Build " & Application.Build
output.Range("I3").Value2 = _
"SaveLinkValues=" & CStr(source.SaveLinkValues)
output.Range("A1:G" & CStr(count + 1)).AutoFilter
output.Range("A1:G1").Font.Bold = True
output.Columns("A:B").ColumnWidth = 28
output.Columns("C").ColumnWidth = 80
output.Columns("D:G").ColumnWidth = 20
output.Columns("I").ColumnWidth = 60
End Sub
ãã®ã³ãŒãã®å€å®ã¯ãåé€å¯Ÿè±¡ã®ç¢ºå®ã§ã¯ãªãã調æ»åè£ã®æœåºã§ãã
| å€å® | 泚æç¹ |
|---|---|
#REF!ãå«ã |
åç §åãåè£ãæåå宿°äžã®æåãªã誀æ€åºãåŸã |
[ãš]ãå«ã |
å€éšåç §åè£ãããŒãã«ã®æ§é ååç §ãæ€åºãã |
Visible=False |
é衚瀺ãšããæå³ã ãã§ãäžèŠãšã¯éããªã |
| åç §åŒãé·ã | 調æ»ã®åªå é äœã«ã¯äœ¿ããããå§çž®åŸå®¹éã§ã¯ãªã |
ä»ã®ååãçµç±ããå€éšåç
§ãINDIRECTãVBAã§çµã¿ç«ãŠãåç
§ãªã©ã¯ãåçŽãªæåæ€çŽ¢ã§ã¯ç¶²çŸ
ã§ããŸããããŸããçžå¯Ÿåç
§ã䜿ãååã¯ãåãã¢ã¯ãã£ãã·ãŒãã»ã»ã«ãåºæºã«æ¯èŒããŸãã
ð VBAã§Excelãªã³ã¯ãåæãã
察象ããã¯ãã¢ã¯ãã£ãã«ããŠå®è¡ããŸããçµæã¯VBEã®ã€ããã£ãšã€ããŠã£ã³ããŠã«è¡šç€ºãããŸãã
Public Sub ListExcelLinks()
Dim wb As Workbook
Dim links As Variant
Dim i As Long
Set wb = Application.ActiveWorkbook
If wb Is Nothing Then Exit Sub
links = wb.LinkSources(Type:=xlExcelLinks)
Debug.Print "Workbook: " & wb.FullName
If IsEmpty(links) Then
Debug.Print "xlExcelLinks: ãªã"
Exit Sub
End If
For i = LBound(links) To UBound(links)
Debug.Print CStr(links(i))
Next i
End Sub
Workbook.LinkSourcesã¯ãæå®ããçš®é¡ã®ãªã³ã¯ããªããã°Emptyãè¿ããŸããxlExcelLinksã空ã§ããPower QueryãOLEããã€ããŒãªã³ã¯ãªã©ãå«ãå€éšäŸåããã¹ãŠãªãããšãŸã§ã¯ç€ºããŸãããMicrosoft Learn
âïž äžèŠãšç¢ºèªããååã ããåé€ãã
ååãã»ã«æ°åŒã«èŠã€ãããªãã ãã§ã¯ãæªäœ¿çšãšã¯æå®ã§ããŸãããå¥ã®ååãå ¥åèŠåãæ¡ä»¶ä»ãæžåŒãã°ã©ããVBAãªã©ããå©çšãããŠããå¯èœæ§ããããŸãã
以äžã¯ãæç€ºããããã¯ãããå®å šäžèŽããååãäžä»¶ã ãåé€ããäŸã§ãã察象ããã¯åãšååã倿ŽããŠäœ¿çšããŸãã
Public Sub DeleteOneReviewedName()
Dim wb As Workbook
Dim nm As Name
Dim target As Name
Dim exactName As String
Set wb = Workbooks("CleanTarget.xlsx")
' æ£åžãçµæã®Nameåããæ£ç¢ºãªååãæå®ããã
exactName = "UnusedOther"
For Each nm In wb.Names
If StrComp(nm.Name, exactName, vbTextCompare) = 0 Then
Set target = nm
Exit For
End If
Next nm
If target Is Nothing Then
MsgBox "察象ã®ååãèŠã€ãããŸããã"
Exit Sub
End If
If MsgBox( _
"ããã¯: " & wb.Name & vbCrLf & _
"åå: " & target.Name & vbCrLf & _
"åç
§åŒ: " & target.RefersTo & vbCrLf & vbCrLf & _
"ãã®ååãåé€ããŸããïŒ", _
vbYesNo Or vbExclamation Or vbDefaultButton2) <> vbYes Then
Exit Sub
End If
target.Delete
MsgBox "åé€ããŸãããä¿ååã«åäœã確èªããŠãã ããã"
End Sub
ååã®äžæ¬åé€ã¯ãååãäœ¿ãæ°åŒãVBAãå°å·èšå®ãªã©ãå£ãå¯èœæ§ããããŸããå šã»ã«ãå€åæžã¿ã§ãå®å šãšã¯éããŸãããå¿ ãè€è£œãããã¡ã€ã«ã§äœæ¥ããä¿åååŸã«å¿ èŠãªæ©èœã確èªããŠãã ããã
ð ãªã³ã¯è§£é€ãšã®éã
| æäœ | çŽæ¥ã®å¯Ÿè±¡ | ããã ãã§ã¯ç¢ºèªã§ããªãããš |
|---|---|---|
| ã»ã«ã®å€å | æå®ããã»ã«ã®æ°åŒ | ååãä»ãªããžã§ã¯ãã®å€éšåç § |
| ååã®åé€ | æå®ããååå®çŸ© | ä»ã®å©çšç®æãé¢é£ããŒãã®æŽç |
| ãªã³ã¯è§£é€ | 察象ãœãŒã¹ã䜿ããªã³ã¯æ°åŒã®å€åãªã© | ãã¹ãŠã®æ¥ç¶ã»ååã»å©çšç®æã®æž æ |
SaveLinkValues=False |
å€éšãªã³ã¯å€ã®ä¿åèšå® | å€éšåç §ãã®ãã®ã®é€å» |
Workbook.BreakLinkãããªã³ã¯ãããæ°åŒãå€ãžå€æããAPIã§ããåååé€ãå šå€éšæ¥ç¶ã®æž æãšå矩ã§ã¯ãããŸãããMicrosoft Learn
ð¡ïž ã·ãŒãã³ããŒãç¹°ãè¿ãéçšã®äºé²ç
âïž ã·ãŒãã³ããŒãšå€ã»æžåŒã®è»¢èš
| æ¹æ³ | é·æ | 泚æç¹ |
|---|---|---|
| ã·ãŒãå šäœãã³ã㌠| ã¬ã€ã¢ãŠããã·ãŒãæ©èœãåŒãç¶ãããã | ååãå€éšåç §ãã·ãŒãã³ãŒããªã©ã確èªãå¿ èŠ |
| ç¯å²ãå€è²Œãä»ã | ã»ã«æ°åŒãæã¡èŸŒãŸãªã | åå¹ ãå°å·èšå®ãªã©ã¯å¥éèšå® |
| å€ãšæžåŒã貌ãä»ã | èŠãç®ãç¶æãããã | æžåŒã®ã³ããŒãç¡å®³ãšã¯éãããã¹ã¿ã€ã«ãæ¡ä»¶ä»ãæžåŒãç¢ºèª |
| 管çããããã³ãã¬ãŒããžå€ãè»¢èš | åºååŽã®ååã»æžåŒã»èšå®ã管çãããã | ãã³ãã¬ãŒãã®ä¿å®ãå¿ èŠ |
Microsoft Learnã¯ãããã¯éã§ã»ã«ãã³ããŒãããšã¹ã¿ã€ã«ãã³ããŒããããã¡ã€ã«å¢å€§ã«ã€ãªããåŸããšèª¬æããŠããŸããååãé€å»ããŠããæžåŒãªã©ãå¥ã®è¥å€§åèŠå ã«ãªãå¯èœæ§ããããŸããClean up an Excel workbook so that it uses less memoryãåç §ããŠãã ãããMicrosoft Learn
ðïž æšå¥šããèšèš
å€ã ããé åžãã垳祚ã§ã¯ãæ¬¡ã®æ§æã管çãããããªããŸãã
-
èšç®çšããã¯ãšé åžçšããã¯ãåããã
èšç®çšã®ååãå€éšåç §ããé åžçšã®æ§æãšããŠå¿ èŠãšãããåãåããŸãã -
é åžçšããã¯ã¯ã管çããããã³ãã¬ãŒãããæ¯åäœæããã
ååã®é åžããã¯ã次åã®ã³ããŒå ã«ããéçšãé¿ããäžèŠãªæ å ±ã®ç¶æ¿çµè·¯ãæžãããŸãã -
åºåç¯å²ã®å€ã ããæç€ºçã«è»¢èšããã
æžåŒãåå¹ ãå°å·èšå®ã¯ãã³ãã¬ãŒãåŽã§ç®¡çããŸãã -
ååã®åœåã»ã¹ã³ãŒãã»çšéãæ±ºããã
ããã¯å šäœã§å ±æããååãšãã·ãŒãåºæã®ååãåºå¥ããç«¶åæã®æå³å€æŽãé¿ããŸãã -
ã·ãŒãã³ããŒãå¿ èŠãªããã³ããŒåŸã®ç£æ»ãåŠçã«å«ããã
ååããªã³ã¯ãå°å·ãå ¥åèŠåãã°ã©ããVBAã®åäœã確èªããŸãã -
ä¿ååŸã®ææç©ã§å€å®ããã
ååä»¶æ°ãå€éšãªã³ã¯äžèЧããã¡ã€ã«ãµã€ãºãèšé²ããç°åžžæã¯ããŒãå¥å®¹éãæ¯èŒããŸãã
é åžç©ãåºå®ã¬ã€ã¢ãŠãã®å€ã ãã®åž³ç¥šãªãã管çããããã³ãã¬ãŒãã«å€ã転èšããæ¹åŒãæå¹ã§ããååãå€éšãªã³ã¯ãã³ããŒåŸã«é€å»ããåŠçãžã®äŸåãæžãããŸãã
ð åèè³æ
以äžã¯ããããMicrosoftãŸãã¯Ecma Internationalã®äžæ¬¡è³æã§ããMicrosoft Learnã®Open XML APIè³æã«ã¯ãISO/IEC 29500ã®è©²åœèŠçŽ ã®èª¬æãæ²èŒãããŠããŸãã
ð ååå®çŸ©ã»ã·ãŒãã³ããŒ
| è³æå | çºè¡å | URL |
|---|---|---|
| Names in formulas | Microsoft Support | åç § |
| Use the Name Manager in Excel | Microsoft Support | åç § |
| Why am I seeing the Name Conflict dialog box in Excel? | Microsoft Support | åç § |
| Worksheet.Copy method | Microsoft Learn | åç § |
| Workbook.Names property | Microsoft Learn | åç § |
| Worksheet.Names property | Microsoft Learn | åç § |
| Name object | Microsoft Learn | åç § |
| Names.Add method | Microsoft Learn | åç § |
| Name.RefersTo property | Microsoft Learn | åç § |
| Name.RefersToRange property | Microsoft Learn | åç § |
| Name.Visible property | Microsoft Learn | åç § |
ð å€éšãªã³ã¯ã»ä¿åã»è¥å€§å
| è³æå | çºè¡å | URL |
|---|---|---|
| Manage workbook links | Microsoft Support | åç § |
| Description of workbook link management and storage in Excel | Microsoft Support | åç § |
| Workbook.SaveLinkValues property | Microsoft Learn | åç § |
| Workbook.LinkSources method | Microsoft Learn | åç § |
| Workbook.BreakLink method | Microsoft Learn | åç § |
| Clean up an Excel workbook so that it uses less memory | Microsoft Learn | åç § |
ðŠ Open XML
| è³æå | çºè¡å | URL |
|---|---|---|
| Structure of a SpreadsheetML document | Microsoft Learn | åç § |
| Working with formulas | Microsoft Learn | åç § |
| DefinedName Class | Microsoft Learn | åç § |
| DefinedNames Class | Microsoft Learn | åç § |
| ExternalBook Class | Microsoft Learn | åç § |
| ExternalDefinedName Class | Microsoft Learn | åç § |
| SheetDataSet Class | Microsoft Learn | åç § |
| WorkbookProperties Class | Microsoft Learn | åç § |
| ECMA-376ïŒOffice Open XML file formats | Ecma International | èŠæ Œé åžããŒãž |
å ¬åŒè³æã§æªç¢ºèªã®éèŠäºé ã¯ãæªäœ¿çšåãå«ãã³ããŒå¯Ÿè±¡ã®å®å šãªéžææ¡ä»¶ãã¹ã³ãŒããåç §åŒã®èªå倿æ¡ä»¶ãåæã»åå¥ã³ããŒããã³GUIã»VBAéã®å®å šãªåäžæ§ãåååé€åŸã®é¢é£ããŒãã®èªåæŽçæ¡ä»¶ã§ãããããã¯å¯Ÿè±¡ç°å¢ãšå¯Ÿè±¡ãã¡ã€ã«ã§ç¢ºèªããäºé ãšããŠæ®ããŸãã