Excel VBAã«ãããWindowsã¯ãªããããŒãå±¥æŽãžã®ã»ã«å€é£ç¶ã³ããŒå®è£ ãã¯ããã¯
ç§ã¯VBAã®æŽ»çšçµéšãéããŠåŸãç¥èãæŽçããå ±æããç®çã§èšäºãäœæããŠããããã°ã©ãã³ã°æŽ2幎ã«ãªããšã³ãžãã¢ã§ããååã¯ãã¢ã¯ãã£ãããã¯ã«ç®æ¬¡ã·ãŒããèªåçæããå®è£ ãã¯ããã¯ã«ã€ããŠè©³ãã説æããŸãããä»åã¯ãWindowsã¯ãªããããŒãå±¥æŽã«ã»ã«ã®å€ãã³ããŒããå®è£ ãã¯ããã¯ã«ã€ããŠè§£èª¬ããŸãã
- 第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ãªããžã§ã¯ãã®åºç€ããå®è·µçãªæŽ»çšãã¯ããã¯ãŸã§
ç®æ¬¡
- ã¯ããã«
- Windowsã¯ãªããããŒãå±¥æŽãšã¯
- äºåæºå: åç §èšå®ã®è¿œå
- åºæ¬å®è£
- ã·ã§ãŒãã«ããããŒã§ã®åŒã³åºã
- ãªãã·ã§ã³æ©èœã®å®è£
- ãŸãšã
ã¯ããã«
Exceläœæ¥ã§ããããå Žé¢ãšããŠãã»ã«ã«å ¥åãããå€ãä»ã®ã¢ããªã±ãŒã·ã§ã³ã«è²Œãä»ãããããšããããŸãã
ããšãã°ãã¡ãŒã«ã®ãã³ãã¬ãŒããExcelã®ã»ã«ã«èšèŒããŠããå ŽåãèããŠã¿ãŸããããã»ã«å
æ¹è¡(Alt + Enter)ãå«ãããã¹ããã³ããŒããŠãGã¡ãŒã«ãªã©ã«å€è²Œãã€ã(Ctrl + Shift + V)ãããšã以äžã®ããã«å
é ãšæ«å°Ÿã«ããã«ã¯ã©ãŒããŒã·ã§ã³(")ãèªåçã«æ¿å
¥ãããŠããŸããŸãã
"ãäžè©±ã«ãªã£ãŠãããŸãã
ãããããé¡ãããããŸãã"
ããã«ã¯ã©ãŒããŒã·ã§ã³ãªãã§ã³ããŒããã«ã¯ãã»ã«å ãŸãã¯æ°åŒããŒã§ããã¹ããéžæããŠã³ããŒããå¿ èŠããããéåžžã«ç ©éã§ãã
ä»åå®è£ ãããã¯ãã䜿ãã°ãã»ã«ã«è¡šç€ºãããŠããå€ããããã«ã¯ã©ãŒããŒã·ã§ã³ãªãã§çŽæ¥ã¯ãªããããŒãã«ã³ããŒã§ããŸãã
Windowsã¯ãªããããŒãå±¥æŽãšã¯
Windowsã¯ãªããããŒãå±¥æŽã¯ãæç« ãããŒã¿ãã³ããŒããéã«ãã³ããŒããå 容ãèšé²ããŠåŸããéžãã§è²Œãä»ãããã䟿å©ãªæ©èœã§ãã
ããšãã°ããŠã§ããµã€ãããäœæãã³ããŒããæ¬¡ã«ã¡ãŒã«ããååãã³ããŒããå Žåãéåžžãªãååã ããæ®ããŸããããã®æ©èœã䜿ãã°äž¡æ¹ã®æ
å ±ãä¿æããå¿
èŠã«å¿ããŠã©ã¡ãã貌ãä»ããããšãã§ããŸããWindows + V ããŒãæŒããšéå»ã®ã³ããŒé
ç®äžèЧã衚瀺ãããããŠã¹ãããŒããŒãã§éžæããã ãã§ç°¡åã«éå»ã®ã³ããŒå
容ãåå©çšã§ããŸããé »ç¹ã«ã³ããŒ&ããŒã¹ããè¡ãäœæ¥ã§æéã®ç¯çŽã«ãªã䟿å©ãªããŒã«ã§ãã
ã¯ãªããããŒãå±¥æŽã®äœ¿ãæ¹
-
Win + VããŒãæŒã - éå»ã«ã³ããŒããé ç®ã®äžèЧã衚瀺ããã
- 貌ãä»ãããé ç®ãã¯ãªãã¯ãããšããã®å 容ã貌ãä»ãããã
ã¯ãªããããŒãå±¥æŽã®æå¹å
åããŠäœ¿ãå Žåã¯ãæ©èœãæå¹åããå¿
èŠããããŸãã Win + VããŒãæŒããšãããªã³ã«ããããšãããã¿ã³ã衚瀺ãããã®ã§ã¯ãªãã¯ããã ãã§æå¹åããããšãã§ããŸãã
ãã䜿ãé ç®ã®ãã³çã
é »ç¹ã«äœ¿ãããã¹ããç»åã¯ãã¯ãªããããŒãå±¥æŽå ã§ãã³çãããŠããããšãã§ããŸãã
-
Win + VããŒãæŒããŠã¯ãªããããŒãå±¥æŽãéã - ãã³çããããé ç®ã®å³äžã«è¡šç€ºããããã³ã¢ã€ã³ã³ãã¯ãªãã¯
ãã³çããããé ç®ã¯ã¯ãªããããŒãå±¥æŽã®äžéšã«åºå®ãããPCãåèµ·åããŠãæ¶ããŸããã
ã¯ãªããããŒãå±¥æŽã®å¶éäºé
- ä¿åã§ããé ç®æ°ã¯æå€§25åãŸã§
- ããã¹ããHTMLãç»åãä¿åå¯èœ(ãã¡ã€ã«ã¯ä¿åãããªã)
- PCãåèµ·åãããšå±¥æŽã¯ã¯ãªã¢ããã(ãã³çãããé ç®ã¯ä¿æããã)
- 4MB以äžã®ãµã€ãºã®é ç®ã¯ä¿åãããªã
äºåæºå: åç §èšå®ã®è¿œå
ãã®ãã¯ãã§ã¯ãDataObjectãšãããªããžã§ã¯ãã䜿çšããŠã¯ãªããããŒãã«ã¢ã¯ã»ã¹ããŸããDataObjectã䜿çšããã«ã¯ãVBAãšãã£ã¿ã§åç §èšå®ã远å ããå¿ èŠããããŸãã
åç §èšå®ã®æé
-
VBAãšãã£ã¿ãéã(Alt + F11)
-
ã¡ãã¥ãŒããŒãããããŒã«ãâãåç §èšå®ããã¯ãªãã¯

-
äžèЧãããMicrosoft Forms 2.0 Object Libraryããæ¢ããŠãã§ãã¯ãå ¥ãã

-
ãOKããã¿ã³ãã¯ãªãã¯
DataObjectãšã¯
DataObjectã¯ãã¯ãªããããŒããšããŒã¿ã®ããåããè¡ãããã®ãªããžã§ã¯ãã§ããéåžžã®VBAã®Application.CutCopyModeãSelection.Copyã¡ãœãããšã¯ç°ãªããExcelã®ã³ããŒã¢ãŒããçµç±ããã«çŽæ¥ã¯ãªããããŒãã«ããŒã¿ãéããŸãã
DataObjectã®äž»ãªã¡ãœããã¯ä»¥äžã®2ã€ã§ãã
| ã¡ãœãã | 説æ |
|---|---|
SetText |
ã¯ãªããããŒãã«éãããã¹ããèšå® |
PutInClipboard |
èšå®ããããã¹ããã¯ãªããããŒãã«ã³ã㌠|
åºæ¬å®è£
ãŸããæãã·ã³ãã«ãªå®è£ ããå§ããŸããéžæãã1ã€ã®ã»ã«ã®å€ãã¯ãªããããŒãã«ã³ããŒããåŠçã§ãã
Sub CopyCellValue()
' éžæã»ã«ã®æ°ã1ã€ã§ãªãå Žå
If Selection.Cells.Count <> 1 Then
MsgBox "ã³ããŒãããã»ã«ã1ã€ã ãéžæããŠãã ããã", vbExclamation, "ã»ã«éžæãšã©ãŒ"
Exit Sub
End If
' ã¯ãªããããŒãã«å€ãèšå®ãããªããžã§ã¯ã
Dim clip As New DataObject
' éžæã»ã«ã®å€ãã¯ãªããããŒãã«èšå®
clip.SetText Selection.Text
' ã¯ãªããããŒãã«å€ãã³ããŒ
clip.PutInClipboard
End Sub
ã³ãŒãã®è©³çŽ°è§£èª¬
1. ã»ã«éžææ°ã®ãã§ãã¯
If Selection.Cells.Count <> 1 Then
MsgBox "ã³ããŒãããã»ã«ã1ã€ã ãéžæããŠãã ããã", vbExclamation, "ã»ã«éžæãšã©ãŒ"
Exit Sub
End If
Selection.Cells.Countã¯ãçŸåšéžæãããŠããã»ã«ã®æ°ãè¿ããŸããã»ã«æ°ã1ã§ãªãå Žåã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠåŠçãçµäºããŸãã
Selection.Countãšã®éã
Selection.CountãšSelection.Cells.Countã¯ãéåžžã®ã»ã«éžæã§ã¯åãå€ãè¿ããŸãããå³åœ¢ãã°ã©ããªã©ãéžæãããŠããå Žåã«éããåºãŸããã»ã«æäœã«ç¹åããå Žåã¯ãSelection.Cells.Countã䜿ãããšã§ãã»ã«ä»¥å€ã®ãªããžã§ã¯ããéžæãããŠããå Žåãæ£ããå€å®ã§ããŸãã
2. DataObjectãªããžã§ã¯ãã®äœæ
Dim clip As New DataObject
NewããŒã¯ãŒãã䜿ã£ãŠãDataObjectã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸããããã«ãããclip倿°ãéããŠã¯ãªããããŒãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
3. ã¯ãªããããŒããžã®ããã¹ãèšå®
clip.SetText Selection.Text
SetTextã¡ãœããã§ãã¯ãªããããŒãã«éãããã¹ããèšå®ããŸããSelection.Textã¯ãéžæãããŠããã»ã«ã«è¡šç€ºãããŠããæååãååŸããŸãã
Selection.TextãšSelection.Valueã®éã
æ¥ä»ããŒã¿ãªã©ãåºæ¬çã«Valueã§ãã·ãªã¢ã«å€ã§ã¯ãªããæååãšããŠæ£ããã¯ãªããããŒãã«ã³ããŒãããŸããããããTextããããã£ã䜿çšããããšã§ãã»ã«ã«è¡šç€ºãããŠããå
容ã確å®ã«ååŸã§ããŸããValueã®åäœã¯ããŒã¿åãæžåŒèšå®ã«ãã£ãŠåŸ®åŠã«ç°ãªãå¯èœæ§ããããäºæããªãäžå
·åãçºçããªããšãéããŸããã
Textã¯ãã»ã«ã«è¡šç€ºãããŠããæååããååŸããæç¢ºãªç®çãæã€ããããã£ã§ãããã«ã¹ã¿ã æžåŒãè€éãªè¡šç€ºåœ¢åŒã§ãããŠãŒã¶ãŒãç®ã§èŠãŠããéãã®æååã確å®ã«ååŸã§ããŸãã
çµæãéãäŸ
ã»ã«ã®å€ãã12345.67ã§æžåŒèšå®ã«ããã12,345.67ãšãªã£ãŠããå Žå
| ãããã㣠| ååŸãããå 容 | å€ |
|---|---|---|
Value |
ã»ã«ã®å®éã®å€ | 12345.67 |
Text |
ã»ã«ã«è¡šç€ºãããŠããæåå |
12,345.67 (æžåŒèšå®ãåæ ) |
4. ã¯ãªããããŒããžã®ã³ããŒå®è¡
clip.PutInClipboard
PutInClipboardã¡ãœããã§ãå®éã«ã¯ãªããããŒãã«ããŒã¿ãéããŸãããã®åŠçã«ãããCtrl + VãWin + Vã§è²Œãä»ããã§ããããã«ãªããŸãã
ã·ã§ãŒãã«ããããŒã§ã®åŒã³åºã
ãã¯ããé »ç¹ã«äœ¿çšããå Žåãæ¯åãã¯ãã¡ãã¥ãŒããéžæããã®ã¯æéãããããŸããã·ã§ãŒãã«ããããŒãèšå®ããããšã§ãããŒããŒãæäœã ãã§çŽ æ©ããã¯ããå®è¡ã§ããããã«ãªããŸãã
ã·ã§ãŒãã«ããããŒã®èšå®æé
1. ãã¯ããã€ã¢ãã°ãéã
- Excelã§
Alt + F8ããŒãæŒã - ããã¯ãããã€ã¢ãã°ã衚瀺ããã
2. ãªãã·ã§ã³ç»é¢ãéã
- äžèЧãã
CopyCellValueãã¯ããéžæ - ããªãã·ã§ã³ããã¿ã³ãã¯ãªãã¯
3. ã·ã§ãŒãã«ããããŒãèšå®
- ãã·ã§ãŒãã«ãã ããŒãã®å ¥åæ¬ãã¯ãªãã¯
-
Shift + CããŒãæŒã(èªåçã«ãCtrl + Shift + Cããšè¡šç€ºããã) - ãOKããã¿ã³ãã¯ãªãã¯
ã·ã§ãŒãã«ããããŒã®äœ¿ãæ¹
èšå®å®äºåŸã¯ã以äžã®æé ã§ãã¯ããå®è¡ã§ããŸãã
- ã³ããŒãããã»ã«(ãŸãã¯è€æ°ã»ã«)ãéžæ
-
Ctrl + Shift + CããŒãæŒã - ã¯ãªããããŒãã«å€ãã³ããŒããã
ã·ã§ãŒãã«ããããŒéžæã®ãã€ã³ã
倧æåãšå°æåã®éã
ãã¯ãã®ã·ã§ãŒãã«ããããŒã¯ã以äžã®2çš®é¡ããããŸãã
| çš®é¡ | èšå®æ¹æ³ | å®è¡æ¹æ³ | äŸ |
|---|---|---|---|
| å°æå | å
¥åæ¬ã«cãšå
¥å |
Ctrl + c |
éåžžã®ã³ããŒãšç«¶åããããéæšå¥š |
| 倧æå | å
¥åæ¬ã«Shift + Cãšå
¥å |
Ctrl + Shift + C |
æ¢åæ©èœãšç«¶åãã«ãã |
倧æå(Shift䜵çš)ã䜿çšããããšã§ãExcelã®æšæºæ©èœãšç«¶åãã«ãããªããŸãã
æ¢åã·ã§ãŒãã«ãããšã®ç«¶åã«æ³šæ
Excelã«ã¯å€ãã®æšæºã·ã§ãŒãã«ããããŒããããŸããæ¢åã®æ©èœãäžæžãããªãããã«ã以äžã®ç¹ã«æ³šæããŠãã ããã
| ã㌠| æ¢åæ©èœ | æšå¥š |
|---|---|---|
Ctrl + C |
ã³ã㌠| â 䜿çšããªã |
Ctrl + V |
貌ãä»ã | â 䜿çšããªã |
Ctrl + S |
äžæžãä¿å | â 䜿çšããªã |
Ctrl + Shift + C |
(æªäœ¿çš) | â æšå¥š |
Ctrl + Shift + V |
( å€ã®è²Œãä»ã) | â³ å€ãããŒãžã§ã³ã§ã®ã¿ |
Ctrl + Shift + ã¢ã«ãã¡ãããã®çµã¿åããã¯ãExcelã§äœ¿çšãããŠããªããã®ãå€ãããã¯ãã®ã·ã§ãŒãã«ããããŒãšããŠé©ããŠããŸãã
泚æç¹
-
Ctrl + Shift + V㯠Microsoft 365ããã³Excel 2021以éã§ã¯å€ã®è²Œãä»ãæ©èœãšããŠäœ¿çšãããŠããŸããããã以åã®ããŒãžã§ã³(2019以å)ã§ã¯æšæºã§å²ãåœãŠãããŠããŸãã - ã·ã§ãŒãã«ããããŒãèšå®ããåã«ãã䜿ãã®ExcelããŒãžã§ã³ã§æ¢ã«äœ¿çšãããŠããªãã確èªããããšããå§ãããŸã
- ããŒãžã§ã³ã«ããéãããããããè€æ°ã®ç°å¢ã§äœ¿çšãããã¯ãã«ã¯ãããŸã䜿ãããªãããŒã®çµã¿åãããéžã¶ããšãæãŸããã§ã
ã·ã§ãŒãã«ããããŒãæ©èœããªãå Žå
èšå®ããã·ã§ãŒãã«ããããŒãåäœããªãå Žåã¯ã以äžã確èªããŠãã ããã
- ãã¯ããæå¹ã«ãªã£ãŠããã(
Alt + F8ã§ãã¯ãäžèЧã衚瀺ãããã確èª) - æ£ããããã¯ã§ãã¯ããå®è¡ããŠããã(å人çšãã¯ãããã¯ã«ä¿åããŠããå Žåã¯ãã©ã®ããã¯ã§ãåäœããŸã)
- ä»ã®ã¢ãã€ã³ããœãããŠã§ã¢ãåãã·ã§ãŒãã«ããããŒã䜿çšããŠããªãã
å人çšãã¯ãããã¯ãžã®ä¿å
ã·ã§ãŒãã«ããããŒããã¹ãŠã®Excelãã¡ã€ã«ã§äœ¿çšã§ããããã«ããã«ã¯ããã¯ãããå人çšãã¯ãããã¯ãã«ä¿åããå¿ èŠããããŸãã
å人çšãã¯ãããã¯ãšã¯
å人çšãã¯ãããã¯ã¯ãExcelãèªåçã«èªã¿èŸŒãç¹å¥ãªããã¯ã§ããããã«ä¿åãããã¯ãã¯ãã©ã®Excelãã¡ã€ã«ãéããŠããŠã䜿çšã§ããŸãã
å人çšãã¯ãããã¯ã«ã€ããŠã¯ã第24åã®èšäºãExcel VBAã§å¯èŠã»ã«ã掻çšãããã£ã«ã¿ãŒæäœãã¯ããã¯ãã§è§£èª¬ããŠããŸãã®ã§ããã²ã芧ãã ããã
å人çšãã¯ãããã¯ã®æ³šæç¹
- å人çšãã¯ãããã¯ã¯ãExcelãéããéã«ä¿åãæ±ããããŸããå¿ ããä¿åããéžæããŠãã ãã
- ä»ã®PCã§ã¯äœ¿çšã§ããŸãããå¥ã®PCã§ã䜿ãããå Žåã¯ããã¯ãããšã¯ã¹ããŒãããŠç§»åããå¿ èŠããããŸã
- å人çšãã¯ãããã¯ã¯éè¡šç€ºç¶æ ã§éãããŸããç·šéããå Žåã¯ãVBAãšãã£ã¿ããæäœããŠãã ãã
ãªãã·ã§ã³æ©èœã®å®è£
å®åã§ãã䟿å©ã«äœ¿ãããªãã·ã§ã³æ©èœã説æããŸããå¿ èŠãªæ©èœã ããéžãã§å®è£ ããŠãã ããã
ãªãã·ã§ã³1: ã°ã©ããå³åœ¢ãªã©ã®ã»ã«ä»¥å€ãéžæãããŠããå Žåã®åŠç
ç®ç
Excelã§ã¯ãã»ã«ä»¥å€ã«ãã°ã©ããå³åœ¢ãç»åãªã©ã®ãªããžã§ã¯ããéžæã§ããŸãããããã®ãªããžã§ã¯ããéžæãããç¶æ ã§ãã¯ããå®è¡ãããšããšã©ãŒãçºçããŸãããã®ãªãã·ã§ã³ã§ã¯ãã»ã«ãéžæãããŠããããäºåã«ãã§ãã¯ããé©åãªã¡ãã»ãŒãžã衚瀺ããŸãã
å®è£ ã³ãŒã
ã»ã«éžææ°ã®ãã§ãã¯ã®åã«ã以äžã®ã³ãŒãã远å ããŸãã
' éžæãããŠããã®ãã»ã«ã§ãªãå Žåã¯åŠçãã¹ããã
If TypeName(Selection) <> "Range" Then
' ã»ã«ä»¥å€(å³åœ¢ãã°ã©ããªã©)ãéžæãããŠããå Žåã¯ã¡ãã»ãŒãžã衚瀺ããŠçµäº
MsgBox "ã»ã«ãéžæãããŠããŸãããã»ã«ãéžæããŠããå®è¡ããŠãã ããã", _
vbExclamation, "éžæãšã©ãŒ"
Exit Sub
End If
ã³ãŒãã®è©³çŽ°è§£èª¬
TypeName颿°ã®åœ¹å²
TypeName(Selection)
TypeName颿°ã¯ããªããžã§ã¯ãã®ååãæååãšããŠè¿ã颿°ã§ããSelection(éžæãããŠãããªããžã§ã¯ã)ã«å¯ŸããŠäœ¿çšãããšã以äžã®ãããªå€ãè¿ãããŸãã
| éžæå¯Ÿè±¡ | TypeNameã®æ»ãå€ |
|---|---|
| ã»ã«ã»ã»ã«ç¯å² | "Range" |
| å³åœ¢(ãªãŒãã·ã§ã€ã) | "Shape" |
| ã°ã©ã | "ChartObject" |
| ç»å | "Picture" |
| ããã¹ãããã¯ã¹ | "TextBox" |
æ¡ä»¶å€å®ã®èãæ¹
If TypeName(Selection) <> "Range" Then
<>ã¯ãçãããªãããæå³ããæ¯èŒæŒç®åã§ããã€ãŸãããéžæãããŠãããªããžã§ã¯ãã®ååãRangeã§ãªãå Žåããšããæ¡ä»¶ã«ãªããŸãã
ãã®æ¡ä»¶ã«ãããã»ã«ä»¥å€ã®ãã¹ãŠã®ãªããžã§ã¯ããå€å®ã§ããŸããããããå³åœ¢ãã°ã©ããç»åãªã©ãåå¥ã«ãã§ãã¯ããå¿ èŠããªããã·ã³ãã«ã§å¹ççã§ãã
ãšã©ãŒã¡ãã»ãŒãžã®è¡šç€º
MsgBox "ã»ã«ãéžæãããŠããŸãããã»ã«ãéžæããŠããå®è¡ããŠãã ããã", _
vbExclamation, "éžæãšã©ãŒ"
vbExclamationã¯ãé»è²ãäžè§åœ¢ã«æå笊(!ããŒã¯)ã衚瀺ãããèŠåã¢ã€ã³ã³ã®å®æ°ã§ãããŠãŒã¶ãŒã«æ³šæãä¿ãããã«äœ¿çšããŸãã
è€æ°ãªããžã§ã¯ãã®åæéžæ
Excelã§ã¯ãCtrlããŒãæŒããªããã¯ãªãã¯ããããšã§ãè€æ°ã®ãªããžã§ã¯ããåæã«éžæã§ããŸããããšãã°ãã»ã«ãšå³åœ¢ãåæã«éžæããå ŽåãTypeName(Selection)ã¯DrawingObjectsãè¿ãããšããããŸãã
ãã®ã³ãŒãã§ã¯ãRange以å€ã®ãã¹ãŠã®ã±ãŒã¹ãé€å€ããããããã®ãããªå Žåãé©åã«åŠçãããŸãã
ãªãã·ã§ã³2: ã»ã«çµåã«å¯ŸããåŠç
ç®ç
Excelã§ç¯å²ãéžæããéãçµåã»ã«ãå«ãŸããããšããããŸããçµåã»ã«ãéžæããå Žåããã®çµåã»ã«å
šäœãSelectionã«å«ãŸããŸãããå®éã®å€ã¯å·Šäžã®ã»ã«ã«ã®ã¿ååšããŸãã
ãã®ãªãã·ã§ã³ã§ã¯ãçµåã»ã«ã«ééããå Žåãæåã®ã»ã«(å·Šäžã®ã»ã«)ã®å€ã®ã¿ãã³ããŒããŠã«ãŒããçµäºããããšã§ãç¡é§ãªåŠçãçããŸãã
å®è£ ã³ãŒã
For Eachã«ãŒãå ã«ã³ããŒåŠçãèšèŒããŸãã
Dim cell As Range
For Each cell In Selection.Cells
clip.SetText cell.Text
clip.PutInClipboard
' çµåã»ã«ã®å Žåã¯æåã®ã»ã«ã®ã¿ã³ããŒããŠçµäº
If cell.MergeCells Then Exit For
' åŸè¿°ã®è€æ°åŠçã®å®è¡ã®ã³ãŒã...
Next cell
ã³ãŒãã®è©³çŽ°è§£èª¬
MergeCellsããããã£
If cell.MergeCells Then Exit For
MergeCellsããããã£ã¯ããã®ã»ã«ãçµåã»ã«ã®äžéšã§ããå Žåã«Trueãè¿ããŸãã
çµåã»ã«ã®ç¹æ§ãšããŠã以äžã®ç¹ãçè§£ããŠããå¿ èŠããããŸãã
| é ç® | 説æ |
|---|---|
| å€ã®æ ŒçŽå Žæ | å·Šäžã®ã»ã«ã®ã¿ã«å€ãæ ŒçŽããã |
| ä»ã®ã»ã«ã®å€ | å³ãäžã®ã»ã«ã¯ç©º(å®éã«ã¯å€ããªã) |
| Selectionã®ç¯å² | çµåã»ã«å šäœãéžæç¯å²ã«å«ãŸãã |
åäœäŸ
ããšãã°ãA1:C1ãçµåãããŠããã»ã«ããããA1:C1ã®ç¯å²ãéžæããŠãã¯ããå®è¡ããå ŽåãèããŸãã
Exit Forã䜿ããªãå Žåã®åäœ
' A1ã»ã«: "ååå"ãã³ããŒ
' B1ã»ã«: 空ãã³ããŒ
' C1ã»ã«: 空ãã³ããŒ
çµåã»ã«ã®å€ã3åã³ããŒããããšã«ãªããç¡é§ãªåŠçãçºçããŸãã
Exit Forã䜿ã£ãå Žåã®åäœ
' A1ã»ã«: "ååå"ãã³ããŒ
' A1ãçµåã»ã«ãªã®ã§ãããã§ã«ãŒããçµäº
æåã®ã»ã«ã®å€ã®ã¿ãã³ããŒããŠåŠçãçµäºãããããå¹ççã§ãã
å šã»ã«åŠçãããå Žåã®æ³šæ
ãã®ã³ãŒãã§ã¯ãçµåã»ã«ãèŠã€ããæç¹ã§ã«ãŒããçµäºããŸãããã®ãããéžæç¯å²ã«çµåã»ã«ãšéåžžã»ã«ãæ··åšããå Žåãçµåã»ã«ããåŸãã®ã»ã«ã¯åŠçãããŸããã
ãã¹ãŠã®ã»ã«ãåŠçãããå Žåã¯ãåŸè¿°ããããªãã·ã§ã³5: è€æ°ã»ã«ãã¿ãåºåãã»æ¹è¡åºåãã§çµåãã®å®è£ ãåèã«ããŠãã ããããã¡ãã§ã¯ãçµåã»ã«ã®å·Šäžã»ã«ã®ã¿ãåŠç察象ãšããæ¹æ³ãæ¡çšããŠããŸãã
ãªãã·ã§ã³3: ãã¹ã¯ãŒãä¿è·ã·ãŒããžã®å¯Ÿå¿
ç®ç
ã·ãŒãããã¹ã¯ãŒãã§ä¿è·ãããŠããå Žåããã¯ãã§ã»ã«ã®å€ãèªã¿åãããšãã§ããªãå ŽåããããŸãããã®ãªãã·ã§ã³ã§ã¯ããã¹ã¯ãŒãå ¥åãã€ã¢ãã°ã衚瀺ããä¿è·ãäžæçã«è§£é€ããŠããã³ããŒåŠçãå®è¡ã§ããããã«ããŸãã
å®è£ ã³ãŒã
ãã¯ãã®å é ã«ä»¥äžã®ã³ãŒãã远å ããŸãã
On Error Resume Next
' ãŸããã¹ã¯ãŒããªãã§ä¿è·è§£é€ã詊ã¿ã
ActiveSheet.Unprotect Password:=""
' ãšã©ãŒãçºçããå Žåã¯ãã¹ã¯ãŒãä¿è·ãããŠãã
If Err.Number <> 0 Then
' ãšã©ãŒæ
å ±ãã¯ãªã¢ããŠæ¬¡ã®åŠçã«é²ã
Err.Clear
' ãã¹ã¯ãŒããèŠæ±ãããã€ã¢ãã°ã衚瀺
Dim protectPassword As String
protectPassword = InputBox("ã·ãŒãããã¹ã¯ãŒãã§ä¿è·ãããŠããŸãã" & vbCrLf & _
"ä¿è·ãè§£é€ãããã¹ã¯ãŒããå
¥åããŠãã ããã" & vbCrLf & _
"ãã£ã³ã»ã«ãéžæãããšåŠçãäžæ¢ããŸãã", "ãã¹ã¯ãŒãå
¥å")
' ãã£ã³ã»ã«ãããå Žå(空æååãè¿ããã)
If protectPassword = "" Then
MsgBox "åŠçãäžæ¢ããŸãã", vbInformation, "ãã£ã³ã»ã«"
Exit Sub
End If
' å
¥åããããã¹ã¯ãŒãã§ä¿è·è§£é€ã詊ã¿ã
ActiveSheet.Unprotect Password:=protectPassword
' ãã¹ã¯ãŒããéãå Žå(ãšã©ãŒãçºç)
If Err.Number <> 0 Then
MsgBox "ãã¹ã¯ãŒããæ£ãããªãããã·ãŒãä¿è·ãè§£é€ã§ããŸããã§ããã", _
vbExclamation, "ä¿è·è§£é€ãšã©ãŒ"
Exit Sub
End If
End If
ã³ãŒãã®è©³çŽ°è§£èª¬
On Error Resume Nextã®äœ¿ãæ¹
On Error Resume Next
ActiveSheet.Unprotect Password:=""
On Error Resume Nextã¯ããšã©ãŒãçºçããŠãåŠçãç¶ç¶ãããšã©ãŒãã³ããªã³ã°ã®æ¹æ³ã§ãã
éåžžãVBAã§ãšã©ãŒãçºçãããšåŠçã忢ããŸããããã®ã¹ããŒãã¡ã³ãã䜿ãããšã§ããšã©ãŒãçºçããŠã次ã®è¡ã«é²ãããšãã§ããŸãã
ããã§ã¯ããŸããã¹ã¯ãŒããªã(Password:="")ã§ã·ãŒãä¿è·ã®è§£é€ã詊ã¿ãŸããä¿è·ãããŠããªãã·ãŒãã®å Žåã¯ãã®åŠçã§æ£åžžã«é²ã¿ããã¹ã¯ãŒãä¿è·ãããŠããå Žåã¯ãšã©ãŒãçºçããŸãã
ãšã©ãŒçªå·ã«ããå€å®
If Err.Number <> 0 Then
Err.Clear
' ãã¹ã¯ãŒãå
¥ååŠç
End If
Err.Numberã¯ãçŽåã«çºçãããšã©ãŒã®çªå·ãè¿ãããããã£ã§ãã0ã¯ãšã©ãŒãçºçããŠããªãããšãæå³ããŸãã
-
Err.Number = 0: ã·ãŒãã¯ä¿è·ãããŠããªã(ãŸãã¯ä¿è·è§£é€ã«æå) -
Err.Number <> 0: ã·ãŒãããã¹ã¯ãŒãä¿è·ãããŠãã
Err.Clearã¡ãœããã§ããšã©ãŒæ
å ±ãã¯ãªã¢ããŠããæ¬¡ã®åŠçã«é²ã¿ãŸãããšã©ãŒæ
å ±ãã¯ãªã¢ããªããšã次ã®åŠçã§ãååã®ãšã©ãŒçªå·ãæ®ã£ããŸãŸã«ãªã£ãŠããŸããŸãã
InputBoxã«ãããã¹ã¯ãŒãå ¥å
Dim protectPassword As String
protectPassword = InputBox("ã·ãŒãããã¹ã¯ãŒãã§ä¿è·ãããŠããŸãã" & vbCrLf & _
"ä¿è·ãè§£é€ãããã¹ã¯ãŒããå
¥åããŠãã ããã" & vbCrLf & _
"ãã£ã³ã»ã«ãéžæãããšåŠçãäžæ¢ããŸãã", "ãã¹ã¯ãŒãå
¥å")
InputBox颿°ã¯ããŠãŒã¶ãŒã«æååã®å
¥åãæ±ãããã€ã¢ãã°ããã¯ã¹ã衚瀺ããŸãã
- æ»ãå€: ãŠãŒã¶ãŒãå ¥åããæåå
- ãã£ã³ã»ã«ãã¿ã³ãæŒããå Žå: 空æåå(
"")ãè¿ããã
vbCrLfã¯æ¹è¡ã³ãŒãã§ãã¡ãã»ãŒãžãè€æ°è¡ã«è¡šç€ºããããã«äœ¿çšããŠããŸãã
ãã£ã³ã»ã«æã®åŠç
If protectPassword = "" Then
MsgBox "åŠçãäžæ¢ããŸãã", vbInformation, "ãã£ã³ã»ã«"
Exit Sub
End If
InputBoxã§ãã£ã³ã»ã«ãã¿ã³ãæŒãããå Žåã空æååãè¿ãããŸãããã®å Žåã¯åŠçãäžæ¢ãããŠãŒã¶ãŒã«ã¡ãã»ãŒãžã衚瀺ããŸãã
ãã¹ã¯ãŒãã«ããä¿è·è§£é€
ActiveSheet.Unprotect Password:=protectPassword
If Err.Number <> 0 Then
MsgBox "ãã¹ã¯ãŒããæ£ãããªãããã·ãŒãä¿è·ãè§£é€ã§ããŸããã§ããã", _
vbExclamation, "ä¿è·è§£é€ãšã©ãŒ"
Exit Sub
End If
ãŠãŒã¶ãŒãå
¥åãããã¹ã¯ãŒãã§ä¿è·è§£é€ã詊ã¿ãŸããOn Error Resume NextããŸã æå¹ãªããããã¹ã¯ãŒããééã£ãŠããå Žåã§ããšã©ãŒã§åæ¢ãããErr.Numberã§å€å®ã§ããŸãã
ãã¹ã¯ãŒããæ£ãããªãå Žåã¯ããšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠåŠçãçµäºããŸãã
InputBoxã®æ³šæç¹
InputBoxã§ã¯ãäœãå
¥åããã«OKãã¿ã³ãæŒããå Žåã空æååãè¿ãããŸããã€ãŸããããã£ã³ã»ã«ããšããã¹ã¯ãŒããªãã§OKããåºå¥ã§ããŸããã
ããå³å¯ã«åŠçãããå Žåã¯ãApplication.InputBoxã¡ãœããã䜿çšããType:=2(æååå)ãæå®ãããšããã£ã³ã»ã«æã«Falseãè¿ããããããå€å¥ãå¯èœã«ãªããŸãã
ãªãã·ã§ã³4: è€æ°ã»ã«ãåå¥ã«ã³ããŒ
ç®ç
è€æ°ã®ã»ã«ãéžæããå Žåãåã»ã«ã®å€ãåå¥ã®é
ç®ãšããŠã¯ãªããããŒãå±¥æŽã«ä¿åããŸããããã«ãããWin + Vã§éå»ã®ã³ããŒå±¥æŽããä»»æã®å€ãéžæããŠè²Œãä»ããããããã«ãªããŸãã
å®è£ ã³ãŒã
åºæ¬å®è£ ã®ã³ããŒåŠçéšåã以äžã®ããã«å€æŽããŸãã
Dim cell As Range
For Each cell In Selection.Cells
clip.SetText cell.Text
clip.PutInClipboard
' ä»ã®åŠçã«å¶åŸ¡ãæž¡ããŠãã¯ãªããããŒãåŠçã確å®ã«å®äºããã
DoEvents
' 1ç§åŸ
æ©(ã¯ãªããããŒãå±¥æŽã«åå¥ã®é
ç®ãšããŠç»é²ããããã«å¿
èŠ)
Application.Wait (Now + TimeValue("0:00:01"))
Next cell
ã³ãŒãã®è©³çŽ°è§£èª¬
For Eachã«ããåã»ã«åŠç
Dim cell As Range
For Each cell In Selection.Cells
clip.SetText cell.Text
clip.PutInClipboard
' ... ãã®ä»ã®åŠç
Next cell
For Eachã«ãŒãã䜿ã£ãŠãéžæãããåã»ã«ã«å¯ŸããŠé çªã«åŠçãå®è¡ããŸããSelection.Cellsã¯ãéžæãããŠãããã¹ãŠã®ã»ã«ã®ã³ã¬ã¯ã·ã§ã³ãè¿ããŸãã
DoEventsã®åœ¹å²
DoEvents
DoEventsã¯ãVBAã®åŠçãäžæçã«äžæããWindowsã®ä»ã®åŠçã«å¶åŸ¡ãæž¡ãã¹ããŒãã¡ã³ãã§ããããã«ãããã¯ãªããããŒããžã®ã³ããŒåŠçã確å®ã«å®äºãããŸã§åŸ
æ©ã§ããŸãã
DoEventsãå
¥ããªããšãé£ç¶ããŠã¯ãªããããŒãã«å€ãéãéã«ãåã®åŠçãå®äºããåã«æ¬¡ã®åŠçãå§ãŸã£ãŠããŸããæ£ããã³ããŒãããªãå¯èœæ§ããããŸãã
1ç§åŸ æ©ãå¿ èŠãªçç±
Application.Wait (Now + TimeValue("0:00:01"))
ãããæãéèŠãªãã€ã³ãã§ããWindowsã¯ãªããããŒãå±¥æŽã«åå¥ã®é ç®ãšããŠç»é²ããããã«ã¯ãåã³ããŒæäœã®éã«äžå®ã®æéééã空ããå¿ èŠããããŸãã
Application.Waitã¡ãœããã¯ãæå®ããæå»ãŸã§åŠçãåŸ
æ©ãããŸãã
-
Now: çŸåšã®æ¥æãååŸ -
TimeValue("0:00:01"): 1ç§ã衚ãæå»å€ -
Now + TimeValue("0:00:01"): çŸåšãã1ç§åŸã®æå»
ãã®æžåŒã«ãããåã»ã«ã®ã³ããŒåŠçã®éã«ç¢ºå®ã«1ç§ã®åŸ æ©æéãèšããããšãã§ããŸãã
å®éã«æ€èšŒãããšããã以äžã®ãããªçµæã«ãªããŸããã
| åŸ æ©æé | çµæ |
|---|---|
| 0~0.8ç§ | äžéšã®å€ãæ¬ èœããããšããã |
| 1ç§ | ãã¹ãŠã®å€ã確å®ã«å±¥æŽã«ç»é²ããã |
åŠçæéãžã®æ³šæ
1ç§ã®åŸ æ©æéãå¿ èŠãªããã10åã®ã»ã«ãã³ããŒããå ŽåãåŠçå®äºãŸã§ã«çŽ10ç§ããããŸãã倧éã®ã»ã«ãéžæããç¶æ ã§å®è¡ãããšãåŠçæéãé·ããªãããšãçè§£ããäžã§äœ¿çšããŠãã ããã
åŠçæéãæ°ã«ãªãå Žåã¯ãåŸè¿°ããããªãã·ã§ã³8: 倧éã»ã«éžææã®ç¢ºèªããå®è£ ããããšããå§ãããŸãã
ãªãã·ã§ã³5: è€æ°ã»ã«ãã¿ãåºåãã»æ¹è¡åºåãã§çµå
ç®ç
è€æ°ã®ã»ã«ãéžæããå Žåãåã»ã«ã®å€ãåå¥ã«ã³ããŒããã®ã§ã¯ãªããã¿ãåºåã(vbTab)ãšæ¹è¡åºåã(vbCrLf)ã§çµåãã1ã€ã®ããã¹ããšããŠã³ããŒããŸããããã«ããã衚圢åŒã®ããŒã¿ããã®ãŸãŸä»ã®ã¢ããªã±ãŒã·ã§ã³ã«è²Œãä»ããããšãã§ããŸãã
ãã®åäœã¯ãExcelã®ã»ã«ãã³ããŒããŠãäžåºŠããã¹ããšãã£ã¿(ã¡ã¢åž³ãªã©)ã«è²Œãä»ãããã®å 容ãå床ã³ããŒãããæžåŒè§£é€ã³ããŒããšåãçµæã«ãªããŸããæžåŒãæ°åŒã§ã¯ãªããçŽç²ãªããã¹ãããŒã¿ãšããŠã³ããŒããããããä»ã®ã¢ããªã±ãŒã·ã§ã³ãžã®è²Œãä»ããã¹ã ãŒãºã«è¡ããŸãã
å®è£ ã³ãŒã
ãªãã·ã§ã³4ã®ã³ãŒãã以äžã®ããã«å€æŽããŸãã
On Error Resume Next
' è€æ°ã»ã«ã®å Žåãã¿ãåºåãã»æ¹è¡åºåãã§çµå
Dim result As String
result = "" ' çµæãæ ŒçŽããæåå倿°ãåæå
' åŠçããçµåã»ã«ã®ã¢ãã¬ã¹ãèšé²ããããã®ã³ã¬ã¯ã·ã§ã³
Dim processedRanges As New Collection
' çµåã»ã«ãéžæç¯å²ã®å·Šç«¯ããå§ãŸã£ãŠããããå€å®ãããã©ã°
Dim isColStart As Boolean
isColStart = False
' éžæç¯å²ã®åè¡ã«å¯ŸããŠåŠçãå®è¡
Dim row As Range
For Each row In Selection.Rows
' 1è¡åã®ããã¹ããæ ŒçŽãã倿°
Dim rowText As String
rowText = ""
' è¡å
ã®åã»ã«ã«å¯ŸããŠåŠçãå®è¡
Dim cell As Range
For Each cell In row.Cells
' åŠçæžã¿ãã©ãããå€å®ããçåœå€
Dim alreadyProcessed As Boolean
alreadyProcessed = False
' çµåã»ã«ç¯å²ã®å·Šäžã®ã»ã«ã®ã¢ãã¬ã¹ãåæå
Dim topLeftCell As Range
Set topLeftCell = Nothing
' çµåã»ã«ã®å Žåã®åŠç
If cell.MergeCells Then
' çµåã»ã«ç¯å²ã®å·Šäžã®ã»ã«ã®ã¢ãã¬ã¹ãååŸ
Set topLeftCell = cell.MergeArea.Cells(1, 1)
' ã³ã¬ã¯ã·ã§ã³ã«çµåã»ã«ç¯å²ã®å·Šäžã»ã«ã¢ãã¬ã¹ã远å
processedRanges.Add topLeftCell.Address, topLeftCell.Address
' åŠçæžã¿ã®çµåã»ã«ããã§ãã¯(éè€æã¯ãšã©ãŒãçºç)
If Err.Number <> 0 Then
alreadyProcessed = True
Err.Clear ' ãšã©ãŒç¶æ
ãã¯ãªã¢
End If
End If
' è¡ããã¹ãã空æ¬ã§ãªãããŸãã¯çµåã»ã«ã巊端ããå§ãŸã£ãŠããå Žå
If rowText <> "" Or isColStart Then
' ã¿ãæåã远å (ã»ã«éã®åºåã)
rowText = rowText & vbTab
' éžæç¯å²ã®2åç®ãšäžèŽããå Žå
If Selection.Column + 1 = topLeftCell.Column + 1 Then
isColStart = False ' çµåã»ã«éå§ãã©ã°ããªã
End if
Err.Clear ' ãšã©ãŒç¶æ
ãã¯ãªã¢
End If
' åŠçæžã¿çµåã»ã«ä»¥å€ãªãå€ãæ¿å
¥
If Not alreadyProcessed Then
rowText = rowText & cell.Text
successCount = successCount + 1 ' ã³ããŒããã»ã«ãã«ãŠã³ã
Else
' éžæç¯å²ã®éå§åãçµåæžã¿ã»ã«ã®éå§åãšäžèŽããå Žå
If Selection.Column = topLeftCell.Column Then
isColStart = True ' çµåã»ã«éå§ãã©ã°ããªã³
End if
End If
Next cell
' çµææååã空ã§ãªãå Žåã¯æ¹è¡ã远å (2è¡ç®ä»¥é)
If result <> "" Then result = result & vbCrLf
' è¡ããã¹ããçµææååã«è¿œå
result = result & rowText
Next row
clip.SetText result
clip.PutInClipboard
ã³ãŒãã®è©³çŽ°è§£èª¬
è¡ãšåã®äºéã«ãŒã
ãã®ã³ãŒãã§ã¯ãéžæç¯å²ãè¡ããšã«åŠçããããã«åè¡å ã®ã»ã«ãåŠçããäºéã«ãŒãæ§é ãæ¡çšããŠããŸãã
Dim row As Range
For Each row In Selection.Rows
Dim cell As Range
For Each cell In row.Cells
' ã»ã«ã®åŠç
Next cell
Next row
å€åŽã®ã«ãŒãã§åè¡ãååŸããå åŽã®ã«ãŒãã§ãã®è¡å ã®ã»ã«ã1ã€ãã€åŠçããŸããããã«ããã衚圢åŒã®ããŒã¿ãæ£ããæ±ãããšãã§ããŸãã
çµåã»ã«ã®éè€åŠçãé²ãä»çµã¿
çµåã»ã«ãéžæç¯å²ã«å«ãŸããå Žåãåãçµåã»ã«ã®åã»ã«ã«å¯ŸããŠã«ãŒããå®è¡ãããŸããããããå€ã¯å·Šäžã®ã»ã«ã«ããååšããªããããåãå€ãè€æ°ååŠçããªãããã«ããå¿ èŠããããŸãã
Dim processedRanges As New Collection
If cell.MergeCells Then
Set topLeftCell = cell.MergeArea.Cells(1, 1)
processedRanges.Add topLeftCell.Address, topLeftCell.Address
If Err.Number <> 0 Then
alreadyProcessed = True
Err.Clear
End If
End If
Collectionãªããžã§ã¯ãã¯ãåãããŒ(Key)ã§è€æ°å远å ããããšãããšãšã©ãŒãçºçããŸãããã®ç¹æ§ãå©çšããŠãçµåã»ã«ã®éè€åŠçãé²ãã§ããŸãã
- çµåã»ã«ã®å·Šäžã»ã«ã®ã¢ãã¬ã¹ãKeyãšããŠCollectionã«è¿œå
- åãçµåã»ã«ã«å床ééãããšãåãKeyã§è¿œå ã詊ã¿ãŠãšã©ãŒãçºç
- ãšã©ãŒãçºçããå Žåã¯ããã§ã«åŠçæžã¿ãšå€å®(
alreadyProcessed = True) - ãšã©ãŒç¶æ ãã¯ãªã¢ããŠæ¬¡ã®åŠçã«é²ã
ã¿ãåºåãã®è¿œå ã¿ã€ãã³ã°
ã»ã«éã®åºåããšããŠã¿ãæåã远å ããŸãã
If rowText <> "" Or isColStart Then
rowText = rowText & vbTab
End If
ãã ãã以äžã®æ¡ä»¶ã®ãããããæºããããå Žåã®ã¿è¿œå ããŸãã
-
rowText <> "": è¡ããã¹ãã空ã§ãªã(2åç®ä»¥éã®ã»ã«) -
isColStart: çµåã»ã«ãéžæç¯å²ã®å·Šç«¯ããå§ãŸã£ãŠãã
ãã®æ¡ä»¶ã«ãããè¡ã®æåã®ã»ã«ã®åã«ã¿ãã远å ãããããšãé²ããŸãã
çµåã»ã«ã巊端ããå§ãŸãå Žåã®åŠç
çµåã»ã«ãéžæç¯å²ã®å·Šç«¯(æåã®å)ããå§ãŸã£ãŠããå Žåãç¹å¥ãªåŠçãå¿ èŠã§ãã
If Selection.Column = topLeftCell.Column Then isColStart = True
ããšãã°ã以äžã®ãããªç¶æ³ãèããŸãã
| Aå | Bå | Cå |
|---|---|---|
| "å€1" | "å€2" | "å€3" |
| [瞊çµå] | "å€4" | "å€5" |
| [瞊çµå] | "å€6" | "å€7" |
A2:A3ã瞊ã«çµåãããŠããã»ã«ã§ãA1:C3ãéžæããŠããå ŽåãèããŸããA2ã»ã«ã«ã¯å€ããããŸãããA3ã»ã«ã¯çµåã»ã«ã®äžéšã§å€ãæã¡ãŸããã
ãã®ãããªçžŠã®çµåã»ã«ã®å Žåãå·Šäžã®å€(A2)ã®ã¿ãåŠçãããããA3ã®äœçœ®ã¯ç©ºçœãšãªããŸããéåžžãrowText <> ""ã®æ¡ä»¶ã«ããã空çœã»ã«ã®åã«ã¯ã¿ãã远å ããããå·Šè©°ããããŠããŸããŸãã
ããããA3ã®äœçœ®ã«ãã¿ããæ¿å
¥ããªããšãB3ãC3ã®å€ãå·Šã«ãããŠããŸããåã®äœçœ®é¢ä¿ã厩ããŠããŸããŸããisColStartãã©ã°ã«ãããçµåã»ã«ã®2è¡ç®ä»¥éã®äœçœ®ã«ãé©åã«ã¿ããæ¿å
¥ããŠãåã®ãããé²ãããšãã§ããŸãã
çµåã»ã«åŠçã®çµäºå€å®
çµåã»ã«ã®åŠçãçµäºããã¿ã€ãã³ã°ã§isColStartãã©ã°ãFalseã«æ»ããŸãã
If Selection.Column + 1 = topLeftCell.Column + 1 Then isColStart = False
-
Selection.Column: éžæç¯å²ã®éå§åçªå· -
topLeftCell.Column + 1: çµåã»ã«ã®å·Šäžã»ã«ã®æ¬¡ã®åçªå·
éžæç¯å²ã®2åç®ããçµåã»ã«ã®å·Šäžã»ã«ã®æ¬¡ã®åãšäžèŽããå Žåãçµåã»ã«ã®åãæãããšå€å®ãããã©ã°ããªãã«ããŸããããã«ãããæ¬¡ã®åããã¯éåžžã®ã¿ãæ¿å ¥ããžãã¯ã«æ»ããŸãã
topLeftCell倿°ã®åæåã®éèŠæ§
åã»ã«ã®åŠçéå§æã«ãtopLeftCell倿°ãNothingã«åæåããŠããŸãã
Dim topLeftCell As Range
Set topLeftCell = Nothing
ãã®åæåãè¡ãçç±ã¯ãååã®ã«ãŒãã§èšå®ãããçµåã»ã«æ å ±ãæ®ã£ããŸãŸã«ãªãã®ãé²ãããã§ããéåžžã®ã»ã«(éçµåã»ã«)ãåŠçããéã«ãååã®çµåã»ã«æ å ±ã誀ã£ãŠåç §ããªãããã«ããå¿ èŠããããŸãã
æ¹è¡ã®è¿œå
åè¡ã®ããã¹ããçµææååã«è¿œå ããéã2è¡ç®ä»¥éã«ã¯æ¹è¡ã³ãŒã(vbCrLf)ã远å ããŸãã
If result <> "" Then result = result & vbCrLf
result = result & rowText
result <> ""ã®æ¡ä»¶ã«ãããæåã®è¡ã®åã«ã¯æ¹è¡ã远å ãããŸããã
Is Nothingãã§ãã¯ãçç¥ããçç±
' éžæç¯å²ã®2åç®ãšäžèŽããå Žå
If Selection.Column + 1 = topLeftCell.Column + 1 Then
isColStart = False ' çµåã»ã«éå§ãã©ã°ããªã
End if
Err.Clear ' ãšã©ãŒç¶æ
ãã¯ãªã¢
éåžžããªããžã§ã¯ã倿°ã䜿çšããåã«ã¯If topLeftCell Is Nothing Thenã§ãã§ãã¯ããããšãæšå¥šãããŸãããããããã®ã³ãŒãã§ã¯æå³çã«ãã§ãã¯ãçç¥ããŠããŸãã
çç±ã¯ä»¥äžã®éãã§ãã
-
On Error Resume Nextãæå¹:
topLeftCellãNothingã®å ŽåãtopLeftCell.Columnã«ã¢ã¯ã»ã¹ãããšãšã©ãŒãçºçããŸãããOn Error Resume Nextã«ããåŠçã¯ç¶ç¶ãããŸã -
ãšã©ãŒåŸã®åŠçãäžèŠ: ãšã©ãŒãçºçããŠããåå²åŠçãã¡ãã»ãŒãžè¡šç€ºãªã©ã®ç¹å¥ãªåŠçãäžèŠã§ãåã«
Err.Clearã§ãšã©ãŒç¶æ ãã¯ãªã¢ããã ãã§æžã¿ãŸã -
ã³ãŒãã®ç°¡æœæ§ãšå¯èªæ§: ãã¹ãŠã®ç®æã§
Is Nothingãã§ãã¯ãå ¥ãããšãAndæ¡ä»¶ã®è¿œå ããã¹ããå¢ããã³ãŒããåé·ã§èªã¿ã«ãããªããŸã
Is Nothingãã§ãã¯ãå ¥ããå Žåã®æ¯èŒ
ããIs Nothingãã§ãã¯ãå³å¯ã«è¡ãå Žåã以äžã®ãããªã³ãŒãã«ãªããŸãã
' Is Nothingãã§ãã¯ãå
¥ããå Žå(ãã¹ããæ·±ããªã)
If rowText <> "" Or isColStart Then
rowText = rowText & vbTab
If Not topLeftCell Is Nothing Then
If Selection.Column + 1 = topLeftCell.Column + 1 Then
isColStart = False
End If
End If
End If
' ãŸãã¯ãAndæ¡ä»¶ã§è€éã«ãªã
If rowText <> "" Or isColStart Then
rowText = rowText & vbTab
If Not topLeftCell Is Nothing And Selection.Column + 1 = topLeftCell.Column + 1 Then
isColStart = False
End If
End If
ãã®ããã«ããã¹ããæ·±ããªã£ãããæ¡ä»¶åŒãè€éã«ãªã£ããããŠãã³ãŒãã®å¯èªæ§ãäœäžããŸãã
äžæ¹ãOn Error Resume NextãšErr.Clearãçµã¿åãããããšã§ãã·ã³ãã«ã§èªã¿ãããã³ãŒããç¶æã§ããŸãã
vbTabãšvbCrLfã®èª¬æ
-
vbTab: ã¿ãæå(ASCIIã³ãŒã9)ã衚ã宿°ãããŒããŒãã®TabããŒãæŒãããšãã®æå -
vbCrLf: æ¹è¡ã³ãŒã(Carriage ReturnãšLine Feedã®çµã¿åãã)ã衚ã宿°ãWindowsã®æšæºçãªæ¹è¡ã³ãŒã
ãããã®å®æ°ã䜿ãããšã§ãç¹æ®æåãåãããããèšè¿°ã§ããŸãã
ãªãã·ã§ã³6: ã¹ãã«ç¯å²ãžã®å¯Ÿå¿
ç®ç
Excel 365ãªã©ã§ã¯ãåçé åæ°åŒ(ã¹ãã«)ãšããæ©èœããããŸãã1ã€ã®æ°åŒãè€æ°ã®ã»ã«ã«çµæãèªåçã«å±éããæ©èœã§ããã®çµæã»ã«ããã¹ãã«ç¯å²ããšåŒã³ãŸãã
ã¹ãã«ç¯å²ã®ã»ã«ã«ã¯ãéåžžãšã¯ç°ãªãç¹æ§ããããcell.Textãcell.Valueã«ã¢ã¯ã»ã¹ãããšãšã©ãŒãçºçããããšããããŸãããã®ãªãã·ã§ã³ã§ã¯ããšã©ãŒãçºçããŠãåŠçãç¶ç¶ã§ããããã«ããŸãã
å®è£ æ¹æ³
ãã®ãªãã·ã§ã³ã§ã¯ãæ°ãã«ã³ãŒãã远å ããå¿
èŠã¯ãããŸããããªãã·ã§ã³3ã®ãã¹ã¯ãŒãä¿è·åŠçã§èšå®ããOn Error Resume Nextããæå³çã«ç¶ç¶ãããããšã§å®çŸããŸãã
éåžžããšã©ãŒãã³ããªã³ã°ã§ã¯åŠçã®åºåãããšã«On Error GoTo 0ãèšè¿°ããŠããšã©ãŒãã³ããªã³ã°ãå
ã«æ»ããŸãã
On Error Resume Next
' ãšã©ãŒãçºçããå¯èœæ§ã®ããåŠç
On Error GoTo 0 ' ãšã©ãŒãã³ããªã³ã°ãéåžžã«æ»ã
ããããä»åã®ã³ãŒãã§ã¯ã以äžã®çç±ããæå³çã«On Error GoTo 0ãèšè¿°ãããOn Error Resume Nextãç¶ç¶ãããŠããŸãã
ãªãOn Error Resume Nextãç¶ç¶ãããã®ã
1. ã¹ãã«ã»ã«ãžã®ã¢ã¯ã»ã¹æã«ãšã©ãŒãçºçããå¯èœæ§
ã¹ãã«ç¯å²ã®ã»ã«ã«å¯ŸããŠcell.Textã§å€ãååŸããéããšã©ãŒãçºçããããšããããŸããããããå€ãã®å Žåã¯æ£åžžã«å€ãååŸã§ããããããšã©ãŒãçºçããŠãåŠçãäžæããã«ç¶ç¶ããå¿
èŠããããŸãã
2. çµåã»ã«å€å®æã®ãšã©ãŒ
ãªãã·ã§ã³5ã®å®è£
ã§ãtopLeftCell.Columnã«ã¢ã¯ã»ã¹ããéãtopLeftCellãNothingã®å Žåã«ãšã©ãŒãçºçããŸãããããããããã®ãšã©ãŒãçºçããŠãåŠçãç¶ç¶ããå¿
èŠããããŸãã
3. åŠçå šäœãäžæãããªã
ã«ãŒãå ã§ãšã©ãŒãçºçããŠãããã®ã»ã«ãã¹ãããããŠæ¬¡ã®ã»ã«ã®åŠçã«é²ã¿ããããããšã©ãŒãã³ããªã³ã°ãç¶ç¶ãããå¿ èŠããããŸãã
On Error Resume Nextã®äœ¿çšäžã®æ³šæ
On Error Resume Nextã¯äŸ¿å©ãªæ©èœã§ãããäœ¿ãæ¹ãééãããšé倧ãªãã°ã®åå ã«ãªããŸãã
ãæ³šæç¹ã
- ãšã©ãŒãçºçããŠãæ°ã¥ããªãå¯èœæ§ããã
- äºæããªããšã©ãŒãç¡èŠãããŠããŸã
- ãããã°ãå°é£ã«ãªã
ãé©åãªäœ¿çšäŸã
- çºçãããšã©ãŒã®çš®é¡ãäºæž¬ã§ããå Žå
- ãšã©ãŒãçºçããŠãåŠçãç¶ç¶ãããæç¢ºãªçç±ãããå Žå
- ãšã©ãŒçºçåŸã«é©åãªåŠç(Err.Clearãªã©)ãè¡ãå Žå
ãã®ã³ãŒãã§ã¯ãã¹ãã«ã»ã«ãç¹æ®ãªã»ã«ãžã®ã¢ã¯ã»ã¹ãšããéå®çãªç¶æ³ã§ã®ã¿äœ¿çšããŠããããã€ååŠçåŸã«é©åã«ãšã©ãŒç¶æ ã管çããŠãããããåé¡ãããŸããã
ãªãã·ã§ã³7: å®äºã¡ãã»ãŒãžã®è¿œå
ç®ç
ãã¯ãã®å®è¡çµæããŠãŒã¶ãŒã«éç¥ããäœåã®ã»ã«ãã³ããŒããããã衚瀺ããŸããããã«ãããåŠçãæ£åžžã«å®äºããããšã確èªã§ããŸãã
å®è£ ã³ãŒã
ã³ããŒåŠçã®å®äºåŸã«ã以äžã®ã³ãŒãã远å ããŸãã
' ã¹ããŒã¿ã¹ããŒã«å®äºã¡ãã»ãŒãžã衚瀺
Application.StatusBar = successCount & " åã®ã»ã«ãã³ããŒããŸããã"
' 2ç§é衚瀺(çŸåšæå» + 2ç§åŸãŸã§åŸ
æ©)
Application.Wait (Now + TimeValue("0:00:02"))
' ã¹ããŒã¿ã¹ããŒãã¯ãªã¢(éåžžã®è¡šç€ºã«æ»ã)
Application.StatusBar = False
ã³ãŒãã®è©³çŽ°è§£èª¬
ã¹ããŒã¿ã¹ããŒãžã®è¡šç€º
Application.StatusBar = successCount & " åã®ã»ã«ãã³ããŒããŸããã"
Application.StatusBarããããã£ã«æååãèšå®ãããšãExcelç»é¢ã®å·Šäžã«ããã¹ããŒã¿ã¹ããŒã«ã¡ãã»ãŒãžã衚瀺ã§ããŸãã
&æŒç®åã§ãæ°å€(successCount)ãšæååãçµåããŠè¡šç€ºããŸãã
衚瀺æéã®å¶åŸ¡
Application.Wait (Now + TimeValue("0:00:02"))
Application.Waitã¡ãœããã§2ç§éåŸ
æ©ããŸããããã«ããããŠãŒã¶ãŒãã¡ãã»ãŒãžãèªãæéã確ä¿ã§ããŸãã
ã¹ããŒã¿ã¹ããŒã®ã¯ãªã¢
Application.StatusBar = False
Application.StatusBarã«Falseãèšå®ãããšãã¹ããŒã¿ã¹ããŒãéåžžã®è¡šç€º(ãæºåå®äºããªã©)ã«æ»ããŸãã
ã¹ããŒã¿ã¹ããŒã«èšå®ããã¡ãã»ãŒãžã¯ãã¯ãªã¢ãããŸã§è¡šç€ºããç¶ãããããå¿
ãFalseãèšå®ããŠã¯ãªã¢ããå¿
èŠããããŸãã
ã¡ãã»ãŒãžããã¯ã¹ãšã®æ¯èŒ
å®äºã¡ãã»ãŒãžã衚瀺ããæ¹æ³ãšããŠãMsgBoxãäœ¿ãæ¹æ³ããããŸãã
MsgBox successCount & " åã®ã»ã«ãã¯ãªããããŒãå±¥æŽã«ã³ããŒããŸããã", vbInformation
| æ¹æ³ | ã¡ãªãã | ãã¡ãªãã |
|---|---|---|
| ã¹ããŒã¿ã¹ã㌠| ãŠãŒã¶ãŒããã¿ã³ãæŒãå¿
èŠããªã äœæ¥ã®éªéã«ãªããªã äžå®æéåŸã«èªåçã«æ¶ãã |
èŠéãå¯èœæ§ããã è©³çŽ°ãªæ å ±ã衚瀺ãã«ãã |
| ã¡ãã»ãŒãžããã¯ã¹ | 確å®ã«ãŠãŒã¶ãŒã®æ³šæãåŒã è©³çŽ°ãªæ å ±ã衚瀺ã§ãã |
ãŠãŒã¶ãŒãOKãã¿ã³ãæŒãå¿
èŠããã é »ç¹ã«äœ¿ããšç ©ããã |
é »ç¹ã«äœ¿çšãããã¯ãã®å Žåã¯ãã¹ããŒã¿ã¹ããŒã䜿ã£ãéç¥ã®æ¹ãé©ããŠããŸããéèŠãªãšã©ãŒã¡ãã»ãŒãžã«ã¯ãMsgBoxã䜿çšãããšããã§ãããã
ã¹ããŒã¿ã¹ããŒã®è¡šç€ºäœçœ®
ã¹ããŒã¿ã¹ããŒã¯ãExcelç»é¢ã®æäžéšãå·ŠåŽã«è¡šç€ºãããŸããéåžžã¯ãæºåå®äºãããããŒãž: 1/1ããªã©ã®æ å ±ã衚瀺ãããŠããå Žæã§ãã
ã¹ããŒã¿ã¹ããŒãé衚瀺ã«ãªã£ãŠããå Žåã¯ã衚瀺ã¿ãã®ãã¹ããŒã¿ã¹ããŒãã«ãã§ãã¯ãå ¥ããããšã§è¡šç€ºã§ããŸãã
ãªãã·ã§ã³8: 倧éã»ã«éžææã®ç¢ºèª
ç®ç
è€æ°ã»ã«ã®ã³ããŒã«ã¯1ã»ã«ããã1ç§ã®åŸ æ©æéãå¿ èŠãªããã倧éã®ã»ã«ãéžæããå ŽåãåŠçæéãé·ããªããŸãã誀ã£ãŠå€§éã®ã»ã«ãéžæããŠãã¯ããå®è¡ããå Žåã«åããäºåã«ç¢ºèªãã€ã¢ãã°ã衚瀺ããŸãã
ãã®ãªãã·ã§ã³ã¯ããªãã·ã§ã³4ã®ãè€æ°ã»ã«ãåå¥ã«ã³ããŒããå®è£ ããŠããå Žåã«ã®ã¿æå¹ã§ãããªãã·ã§ã³5ã®ãã¿ãåºåãã»æ¹è¡åºåãã§çµåããå®è£ ããŠããå Žåã¯ã1åã®ã³ããŒã§å®äºããããããã®ãªãã·ã§ã³ã¯äžèŠã§ãã
å®è£ ã³ãŒã
For Eachã«ãŒãã®åã«ãéžæã»ã«æ°ã®ãã§ãã¯ã远å ããŸãã
' 倧éã»ã«éžææã®ç¢ºèª(äŸ: 10å以äž)
' åŠçæéãé·ããªãå ŽåããŠãŒã¶ãŒã«ç¢ºèªãæ±ãã
If Selection.Cells.Count > 10 Then
' 確èªãã€ã¢ãã°ã®çµæãæ ŒçŽãã倿°
Dim confirmResult As VbMsgBoxResult
' 確èªã¡ãã»ãŒãžã衚瀺(ã¯ã/ããããã¿ã³)
confirmResult = MsgBox(Selection.Cells.Count & " åã®ã»ã«ãéžæãããŠããŸãã" & vbCrLf & _
"åŠçã«ã¯çŽ " & Selection.Cells.Count & " ç§ããããŸãã" & vbCrLf & _
"ç¶è¡ããŸãã?", vbQuestion + vbYesNo, "確èª")
' ããããããéžæãããå Žå
If confirmResult = vbNo Then
' åŠçãäžæ¢ããæšã®ã¡ãã»ãŒãžã衚瀺
MsgBox "åŠçãäžæ¢ããŸããã", vbInformation, "äžæ¢"
Exit Sub
End If
End If
ã³ãŒãã®è©³çŽ°è§£èª¬
ã»ã«æ°ã®ãããå€èšå®
If Selection.Cells.Count > 10 Then
ããã§ã¯10åããããå€ãšããŠèšå®ããŠããŸããããã®å€ã¯äœ¿çšç¶æ³ã«å¿ããŠèª¿æŽããŠãã ããã
| ãããå€ | åŠçæé | æšå¥šçšé |
|---|---|---|
| 5å | 5ç§ | é »ç¹ã«äœ¿çšããå Žå |
| 10å | 10ç§ | æšæºçãªäœ¿çš |
| 20å | 20ç§ | 倧éã³ããŒãæ³å®ããå Žå |
確èªãã€ã¢ãã°ã®è¡šç€º
Dim confirmResult As VbMsgBoxResult
confirmResult = MsgBox(Selection.Cells.Count & " åã®ã»ã«ãéžæãããŠããŸãã" & vbCrLf & _
"åŠçã«ã¯çŽ " & Selection.Cells.Count & " ç§ããããŸãã" & vbCrLf & _
"ç¶è¡ããŸãã?", vbQuestion + vbYesNo, "確èª")
VbMsgBoxResultåã¯ãMsgBox颿°ã®æ»ãå€ãæ ŒçŽããããã®åã§ãããã®åã䜿ãããšã§ããŠãŒã¶ãŒãã©ã®ãã¿ã³ãæŒããããå€å®ã§ããŸãã
vbQuestion + vbYesNoã«ãããã¯ãŠãªããŒã¯ã®ã¢ã€ã³ã³ãšãã¯ãããããããã®ãã¿ã³ã衚瀺ãããŸãã
-
vbQuestion: ã¯ãŠãªããŒã¯ã¢ã€ã³ã³(?)ã衚瀺 -
vbYesNo: ãã¯ãããšãããããã®ãã¿ã³ã衚瀺
ãŠãŒã¶ãŒã®éžæã«ããåå²
If confirmResult = vbNo Then
MsgBox "åŠçãäžæ¢ããŸããã", vbInformation, "äžæ¢"
Exit Sub
End If
ãŠãŒã¶ãŒãããããããéžæããå ŽåãconfirmResultã«ã¯vbNoãšãã宿°å€ãæ ŒçŽãããŸãããã®å Žåã¯åŠçãäžæ¢ããã¡ãã»ãŒãžã衚瀺ããŸãã
ãã¯ãããéžæããå Žåã¯ãconfirmResultã«vbYesãæ ŒçŽãããIfæ¡ä»¶ãFalseãšãªãããã®ãŸãŸåŠçãç¶è¡ãããŸãã
ããè©³çŽ°ãªæ å ±ã®è¡šç€º
確èªã¡ãã»ãŒãžããã詳ããããããšãã§ããŸãã
' æšå®åŠçæéãèšç®(1ã»ã«ããã1ç§)
Dim estimatedTime As Long
estimatedTime = Selection.Cells.Count
' æéãåãšç§ã®åœ¢åŒã§è¡šç€ºããããã®æåå
Dim timeMessage As String
If estimatedTime < 60 Then
' 60ç§æªæºã®å Žåã¯ç§ã ã衚瀺
timeMessage = estimatedTime & " ç§"
Else
' 60ç§ä»¥äžã®å Žåã¯ãâåâç§ãã®åœ¢åŒã§è¡šç€º
timeMessage = estimatedTime \ 60 & " å " & estimatedTime Mod 60 & " ç§"
End If
' èšç®ããæéã¡ãã»ãŒãžãå«ã確èªãã€ã¢ãã°ã衚瀺
confirmResult = MsgBox(Selection.Cells.Count & " åã®ã»ã«ãéžæãããŠããŸãã" & vbCrLf & _
"åŠçã«ã¯çŽ " & timeMessage & " ããããŸãã" & vbCrLf & _
"ç¶è¡ããŸãã?", vbQuestion + vbYesNo, "確èª")
ãã®å®è£ ã§ã¯ã60ç§ä»¥äžãããå Žåã¯ãâåâç§ããšãã圢åŒã§è¡šç€ºããŸãã
-
\æŒç®å: æŽæ°é€ç®(åãæ±ãã) -
ModæŒç®å: å°äœ(äœããæ±ãã)
ããšãã°ã65ç§ã®å Žå
-
65 \ 60 = 1(65ã60ã§å²ã£ãå) -
65 Mod 60 = 5(65ã60ã§å²ã£ãäœã) - çµæ: ã1å5ç§ã
ãªãã·ã§ã³ãšã®çµã¿åããã«æ³šæ
ãã®ãªãã·ã§ã³8ã¯ããªãã·ã§ã³4ã®ãè€æ°ã»ã«ãåå¥ã«ã³ããŒããå®è£ ããŠããå Žåã«æå¹ã§ãã
ãªãã·ã§ã³5ã®ãã¿ãåºåãã»æ¹è¡åºåãã§çµåããå®è£ ããŠããå Žåã¯ãã»ã«æ°ã«é¢ããã1åã®ã³ããŒã§å®äºããããããã®ãªãã·ã§ã³ã¯äžèŠã§ãã
äž¡æ¹ã®ãªãã·ã§ã³ãå®è£ ããå Žåã¯ãã©ã¡ãã®åŠçãå®è¡ãããããŠãŒã¶ãŒã«éžæãããä»çµã¿ã远å ããå¿ èŠããããŸãã
ãŸãšã
ä»å解説ããWindowsã¯ãªããããŒãå±¥æŽãžã®ã»ã«å€é£ç¶ã³ããŒå®è£ ãã¯ããã¯ã¯ããã»ã«å æ¹è¡ãå«ãããã¹ããä»ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¹ã ãŒãºã«è²Œãä»ãããããè€æ°ã®ã»ã«å€ãå¹ççã«ã¯ãªããããŒãå±¥æŽã«ä¿åãããããšãã£ãå®åã«ããã課é¡ãäœç³»çãã€ç¢ºå®ã«è§£æ±ºããå®çšçãªææ³ã§ãã
éåžžã®ã³ããŒæäœã§ã¯ã»ã«å æ¹è¡ãå«ãããã¹ãã«ããã«ã¯ã©ãŒããŒã·ã§ã³ãèªåä»äžãããæ°åŒããŒã§ã®æåéžæãå¿ èŠãšããç ©éãã«å¯ŸããSelection.Textããããã£ãšDataObjectã®çµã¿åããã«ãã衚瀺éãã®å€ãçŽæ¥ååŸã§ããŸããå®è£ æã«ç¹ã«éèŠãªã®ã¯ãMicrosoft Forms 2.0 Object Libraryã®åç §èšå®ã«ããåºç€æ§ç¯ã§ãã
ãŸããã¿ãåºåãã»æ¹è¡åºåãã«ãã衚圢åŒããŒã¿ã®äžæ¬ã³ããŒãçµåã»ã«ãžã®é©åãªå¯Ÿå¿ããã¹ã¯ãŒãä¿è·ã·ãŒããã¹ãã«ç¯å²ãžã®å ç¢ãªãšã©ãŒãã³ããªã³ã°ãšãã£ãå®è£ ãã¿ãŒã³ã«ããã倿§ãªæ¥åã·ãŒã³ã«å¯Ÿå¿ããçºå±çãªããŒã«ãšããŠæé·ãããããšãå¯èœã§ã倧éã»ã«éžææã®ç¢ºèªãã€ã¢ãã°ãã¹ããŒã¿ã¹ããŒéç¥ãšãã£ããŠãŒã¶ããªãã£åäžæ©èœãšã®çµã¿åããã«ãããå®åã§å®å¿ããŠäœ¿ããå®æåºŠã®é«ãæ¥åæ¯æŽãã¯ããšããŠæŽ»çšã§ããŸãã
次åã¯ããã£ã«ã¿åŸã®å¯èŠã»ã«ã®åç¯å²ãååŸãã颿°ã®å®è£ ãã¯ããã¯ã«ã€ããŠè§£èª¬ããŠããäºå®ã§ãïŒãã²ãæåŸ ãã ãã!




