é£èŒç¬¬19åã®ç®ç
é£èŒç¬¬18åãšç¬¬19åã§ã¯ãExcel VBAã«ãããkintone REST APIã®æŽ»çšã«ã€ããŠç޹ä»ããŸãããµã€ããŠãºãæäŸãããã®APIã¯ãå瀟ã®ãµãŒãã¹kintoneã®æäœã®ããã®æ©èœãç¡åã§æäŸããŸããä»åã¯ããã®kintone REST APIã䜿çšããŠãkintoneã¢ããªããããŒã¿ãèªã¿åããæå ã®Excelã¯ãŒã¯ã·ãŒãã«åæ ããŠæŽ»çšãããµã³ãã«ãäœæããŸãïŒå³1ïŒã ä»åã¯ãAPIã䜿ã£ãŠã¢ããªããããŒã¿ãååŸããããŒã¿ããã¯ãŒã¯ã·ãŒããèªåçæãããµã³ãã«ãäœæããŠãããŸãããªããååŸãããããŒã¿ã¯ãµã³ãã«ãšããŠçšæããããããŒã§ããå®åšãããã®ã§ã¯ãããŸããã®ã§ã泚æãã ããã
âŒå®æãµã³ãã«ã®Excelãã¡ã€ã«
https://github.com/wateryinhare62/mynavi_excelvba_webservice
ãªããæ¬é£èŒã§ã¯åäœç¢ºèªãWindows 10 ProïŒ64bitïŒãMicrosoft 365ïŒExcel 16.0ãVBA 7.1ïŒã§è¡ã£ãŠããŸããæ§ããŒãžã§ã³ãåäœã®Excelã§è©Šãå Žåã«ã¯ã泚æãã ããã
ã¯ãŒã¯ã·ãŒãã®æºå
ããããã¯ãã¯ãŒã¯ã·ãŒããçšæããåºæ¬çãªãã¶ã€ã³ãè¡ã£ãŠãããŸããããä»åã¯ãã¯ãŒã¯ã·ãŒãã3å䜿ããŸããã·ãŒã1ã«é 眮ãã2ã€ã®ãã¿ã³ã䜿ã£ãŠãã·ãŒã2ã«ããAPIã¢ã¯ã»ã¹çšã®ããŒã¿ãçšããŠé¡§å®¢ãªã¹ããååŸãããã®ããŒã¿ãšã·ãŒã3ã®ã²ãªåã䜿ã£ãŠå顧客ã«åããã¯ãŒã¯ã·ãŒããçæããŸããé 眮ããã³æžã蟌ããã®ã¯ããããã以äžã®éãã§ãïŒã«ãã³å ã¯ã¯ãŒã¯ã·ãŒããã³ã³ãããŒã«ã®ååãªã©ïŒã
ã»ã·ãŒã1ïŒãªã¹ãã·ãŒãïŒListïŒïŒãã¿ã³ãååŸçµæãæ ŒçŽ
ããã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã«ïŒã»ã«ã®ããã¹ãïŒ
ãããããŒã¿ãååŸããããã¿ã³ïŒGetCommandButtonïŒ
ãããã¯ãŒã¯ã·ãŒããçæããããã¿ã³ïŒGenerateCommandButtonïŒ
ããååŸçµæãåçŽããããŒãã«ïŒé¡§å®¢ãªã¹ãïŒ
ã»ã·ãŒã2ïŒåºå®ããŒã¿ã®ã·ãŒãïŒDataïŒïŒkintoneã«ã¢ã¯ã»ã¹ããããã®æ
å ±
ããã¢ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã«ãªã©ïŒã»ã«ã®ããã¹ãïŒ
ãããµããã¡ã€ã³ãã¢ããªIDãAPIããŒã¯ã³ãèšèŒãã衚ïŒã»ã«ã®ããã¹ãïŒ
ã»ã·ãŒã3ïŒãã³ãã¬ãŒãã·ãŒãïŒTemplateïŒïŒçæããã¯ãŒã¯ã·ãŒãã®ã²ãªå
ããæé¢ãªã©ïŒã»ã«ã®ããã¹ãïŒ
ããäŒç€Ÿåãéšçœ²åãæ
åœè
åãæ¥ä»ãªã©ã®ããŒæååïŒã»ã«ã®ããã¹ãïŒ
äžèšã®ããã¹ãããã³ã³ã³ãããŒã«ããå³2ïœå³4ãåèã«æžã蟌ã¿ãé 眮ããŠãã ãããå ·äœçãªæé ã¯ã第6åãªã©ãåèã«ããŠãã ãããã¯ãŒã¯ã·ãŒãã®ååã¯ã¹ã¯ãªããããåç §ãããŸãã®ã§ãååã®ä»ãå¿ãã«æ³šæããŠãã ããã
ã·ãŒã1ïŒãªã¹ãã®ã¯ãŒã¯ã·ãŒãïŒListïŒ
1åç®ã®ã·ãŒãïŒãªã¹ãã®ã¯ãŒã¯ã·ãŒãïŒã«ã¯ããListããšããååãä»ããŠãããŸãã
ã»ã³ã³ãããŒã«ãé
眮ãã
ã³ã³ãããŒã«ïŒã³ãã³ããã¿ã³Ã2ïŒãã¯ãŒã¯ã·ãŒãäžéšã«é
眮ããŠãããããã£ãèšå®ããŸãããããã®ããããã£ã®å
容ã¯ã衚1ã®ãšããã§ãã
â²è¡š1ïŒã³ã³ãããŒã«ã«èšå®ããããããã£
| ã³ã³ãããŒã« | ãããã㣠| å€ |
|---|---|---|
| ãããŒã¿ãååŸããããã¿ã³ | Name | GetCommandButton |
| Caption | ããŒã¿ãååŸãã | |
| ãã¯ãŒã¯ã·ãŒããçæããããã¿ã³ | Name | GenerateCommandButton |
| Caption | ã¯ãŒã¯ã·ãŒããçæãã |
ã»ååŸçµæãåçŽããããŒãã«
ååŸçµæãåçŽããããŒãã«ã¯ã以äžã®æ§æãšããŸããããŒãã«ã«ããããšã§ãååŸåŸã«ãã£ã«ã¿ãªã©ã®æäœãå¯èœã«ãªããŸããããŒãã«ãšããã«ã¯ã以äžã®èŠåºããå
¥åããã»ã«ãéžæããããŒã âããŒãã«ãšããŠæžåŒèšå®ïŒœãéžæããŸãããã¶ã€ã³ã¯ã奜ã¿ã®ãã®ãéžãã§ãã ãããå
é è¡ãèŠåºãè¡ã«ããæå®ãå¿ããªãã§ãã ãããããŒãã«åã¯ãã顧客ãªã¹ãããšããŠãããŸãããªããããã§èšå®ããèŠåºãé
ç®ãããŒãšèŠãªããŠãã¢ããªããããŒã¿ã®ååŸãè¡ãããŸãã
ã¬ã³ãŒãçªå·ãäŒç€Ÿåãéšçœ²åãæ
åœè
åã顧客ã©ã³ã¯
ã·ãŒã2ïŒåºå®ããŒã¿ã®ã¯ãŒã¯ã·ãŒãïŒDataïŒ
åºå®ããŒã¿ã®ã¯ãŒã¯ã·ãŒãã«ã¯ããDataããšããååãä»ããŠãããŸãã
ã»åºå®ããŒã¿ãèšèŒãã衚
衚ã¯ã以äžã®æ§æãšããŸããæ®éã«ã»ã«ã®ããã¹ããšããŠé
眮ããŸããããŒã¿ã®äœçœ®ã¯ã¹ã¯ãªããã§æ±ºãæã¡ããŠããã®ã§ãé
眮ã倿Žããå Žåã«ã¯æ³šæããŠãã ããã
ã»ãNoãïŒçªå·ãããã°ã©ã äžã¯æå³ã¯ãããŸããïŒ
ã»ãé
ç®ãïŒé
ç®åãããã°ã©ã äžã¯æå³ã¯ãããŸããïŒ
ã»ãå
容ãïŒé
ç®ã®ããŒã¿ãããããã¹ã¯ãªããããååŸããŸãïŒ
ã·ãŒã3ïŒãã³ãã¬ãŒãã®ã¯ãŒã¯ã·ãŒãïŒTemplateïŒ
3åç®ã®ã¯ãŒã¯ã·ãŒãã«ã¯ããTemplateããšããååãä»ããŠãããŸããã¯ãŒã¯ã·ãŒãã®å 容èªäœã¯äœã§ããããã¹ã¯ãªããããæžãæããé ç®ãããŒæååãšããŠé 眮ããŠããã ãã§ããããã§ã¯ã顧客ã«éä»ããæ¡å ç¶ãã€ã¡ãŒãžããŠãäŒç€Ÿåãéšçœ²åãæ åœè åãšæ¥ä»ãé 眮ããããšã«ããŸãã
ããã§ãããã¯ãä¿åããŸããããã¯åã¯äœã§ãããã§ããã圢åŒããExcel ãã¯ãæå¹ãã㯠(*.xlsm)ãã«ããŠãã ããããã¯ããæå¹ã«ããŠãããªããšãVBAã®ã¹ã¯ãªãããå®è¡ã§ããªãããã§ãããã®ããšããé©åœãªã¿ã€ãã³ã°ã§ããã¯ãä¿åããŠãã ããã
ã¹ã¯ãªãããæžããŠãã
ãããããVisual Basic Editorã䜿ã£ãŠã以äžã®é çªã§ã¹ã¯ãªãããæžããŠãããŸããå·Šãã€ã³ã®ãMicrosoft Excel Objectsãã®ãSheet1 (List)ããããã«ã¯ãªãã¯ããŠéããã¡ã€ã«ã«ã以äžã®ã¹ã¯ãªãããèšè¿°ããŠãããŸãã
ã»å
±æãã倿°ãå®çŸ©ããã¹ã¯ãªãã
ã»APIã«ã¢ã¯ã»ã¹ããã¹ã¯ãªãã
ã»ãã¿ã³ã¯ãªãã¯ã§ããŒã¿ãèªã¿èŸŒãã¹ã¯ãªãã
ã»ãã¿ã³ã¯ãªãã¯ã§ã¯ãŒã¯ã·ãŒããçæããã¹ã¯ãªãã
NOTEVBA-JSON
kintone REST APIã¯ãçµæãJSONããŒã¿ã§è¿ããŸãããã®ããã«VBAããJSONããŒã¿ã䜿ããŸãã®ã§ããã®ããã«å¿ èŠãªã©ã€ãã©ãªãæºåããŸãã第3åãªã©ãšåæ§ã«ããVBA-JSONããšãããµãŒãããŒãã£ã®ã©ã€ãã©ãªã䜿çšããŸãã第3åã®èšäºãåç §ããŠããMicrosoft Scripting Runtimeããžã®åç §èšå®ãæå¹ã«ããããšãå«ããŠãVBA-JSONãæºåããŠãã ããã
å ±æãã倿°ãå®çŸ©ããã¹ã¯ãªãã
ãµããã¡ã€ã³ãAPIããŒã¯ã³ãšãã£ããå©çšè ããšã«ç°ãªãæ å ±ã¯å°çšã®ã¯ãŒã¯ã·ãŒãã«èšèŒããŠããããšã«ããŸãããããã§ã¯ãããããã®å€æ°ãå®çŸ©ããããã«æ ŒçŽããŠãããŸãããããã®å€æ°ã¯ãDataã¯ãŒã¯ã·ãŒãããååŸããŠå€ãèšå®ãããŸãããªãã倿°ã®å®çŸ©ãšã¯çŽæ¥ã®é¢ä¿ã¯ãªãã§ãããå®å šã®ããã«åé ã§Option Explicitæã«ãã£ãŠæªå®çŸ©ã®å€æ°ã䜿ããªãããã«ããŠããŸãïŒãªã¹ã1ïŒã
ãªã¹ã1å
±æãã倿°ãå®çŸ©
' æªå®çŸ©ã®å€æ°ã䜿ããªãããã«ãã
Option Explicit
' ãµããã¡ã€ã³ãä¿æ
Dim SubDomain As String
' ã¢ããªIDãä¿æ
Dim AppId As String
' APIããŒã¯ã³ãä¿æ
Dim ApiToken As String
APIã«ã¢ã¯ã»ã¹ããã¹ã¯ãªãã
APIã«ã¢ã¯ã»ã¹ããã¹ã¯ãªããã¯ãæ¡åŒµæ§ãèæ ®ããŠé¢æ°ãšããŠç¬ç«ãããŸããAPIãåŒã³åºã颿°KickWebServiceã¯ãåŒæ°ã«APIãã¹ãšã¯ãšãªãã©ã¡ãŒã¿ãåãåã£ãŠãçµæãšããŠã®JSONæååãè¿ããŸãïŒãªã¹ã2ïŒã
ãªã¹ã2KickWebService颿°
' APIãåŒã³åºãïŒåŒæ°ã¯APIã®çš®é¡ãšãã©ã¡ãŒã¿ãæ»ãå€ã¯JSONæååïŒ
Private Function KickWebService(ByVal Path As String, _
ByVal Param As String) As String
' (1)URLãäœæãã
Dim Url As String
Url = "https://" & SubDomain & ".cybozu.com/k/v1/" & Path & "?" & Param
' (2)ãªã¯ãšã¹ããéä¿¡ãã
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
With http
' (3)GETã¡ãœããã§éä¿¡ãã
.Open "GET", Url, False
' (4)ãªã¯ãšã¹ããããã«APIããŒã¯ã³ãå«ãã
.setRequestHeader "X-Cybozu-API-Token", ApiToken
.send
' (5)ãªã¯ãšã¹ãçµæãååŸãã
KickWebService = .responseText
End With
End Function
倿°Urlã«ããšã³ããã€ã³ããAPIãã¹ïŒpathïŒãã¯ãšãªãã©ã¡ãŒã¿ïŒparamïŒãã»ããããŸãïŒ1ïŒãHTTPã¢ã¯ã»ã¹ã«å¿ èŠãªMSXML2.XMLHTTPã¢ãžã¥ãŒã«ã®ãªããžã§ã¯ããäœæåŸïŒ2ïŒãHTTPã¡ãœãããšURLãæå®ããŠOpenã¡ãœãããåŒã³åºãïŒ3ïŒãå¿ èŠãªãªã¯ãšã¹ããã©ã¡ãŒã¿ãèšå®ããåŸãsendã¡ãœããã§å®éã«åŒã³åºããŸãïŒ4ïŒãåŒã³åºããçµæã¯ResponseTextããããã£ã§ååŸã§ããŸãïŒ5ïŒãããã空ãªãäœããã®ãšã©ãŒãçºçããŠããŸãããããããã®ãŸãŸé¢æ°ã®æ»ãå€ãšããŠè¿ããŸãã
ãã¿ã³ã¯ãªãã¯ã§ã¢ããªã®ããŒã¿ãèªã¿èŸŒãã¹ã¯ãªãã
次ã«ããã¿ã³ã¯ãªãã¯ã§ã¢ããªã®ããŒã¿ãèªã¿èŸŒãã¹ã¯ãªãããæžããŠãããŸãããããã®ã¹ã¯ãªããã¯ãããŒã¿ãååŸãããã¿ã³ãã¯ãªãã¯ããéã«åŒã³åºãããã€ãã³ããã³ãã©GetCommandButton_ClickãšããŠèšè¿°ããŸãïŒãªã¹ã3以éïŒã以äžã®æµãã§ãã¢ããªããããŒã¿ãååŸããŠçµæãã»ã«ã«æžã蟌ãã§ããŸãã
â åºå®ããŒã¿ãååŸããæžã蟌ãã»ã«äœçœ®ã決å®ãã
â¡APIãåŒã³åºããçµæãJSONæååã§ããã°ãã£ã¯ã·ã§ããªã«å€æãã
â¢ãã£ã¯ã·ã§ããªå
ã®é
åããåã¬ã³ãŒããåãåºããŠã¢ããªããŒã¿é
åã«æ ŒçŽãã
â£ã¢ããªããŒã¿é
åã®å
容ãããŒãã«ã«æžã蟌ã
以äžã¯ããªã¹ãã®è§£èª¬ã«ãªããŸããäžèšã®æµãã«åãããŠé©å®åºåã£ãŠããŸãã
ãªã¹ã3ã¢ããªããããŒã¿ãååŸããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®1ïŒ
' (1)åçš®åºå®ããŒã¿ãååŸãã
Dim DataWorksheet As Worksheet
Set DataWorksheet = Worksheets("Data")
SubDomain = DataWorksheet.Range("C4").Value
AppId = DataWorksheet.Range("C5").Value
ApiToken = DataWorksheet.Range("C6").Value
' (2)ããŒã¿ãæžã蟌ãã»ã«äœçœ®ã®èµ·ç¹ã決å®ãã
Dim Row As Integer, Col As Integer
Row = 6
Col = 1
â ã«çžåœããã¹ã¯ãªããã§ããïŒ1ïŒããã¯ããµããã¡ã€ã³ãã¢ããªIDãªã©ãDataã¯ãŒã¯ã·ãŒãããååŸããŠããŸããã»ã«äœçœ®ã¯æ±ºãæã¡ãšããŠããã®ã§ãå¿
èŠã«å¿ããŠä¿®æ£ããŠãã ãããçµæã¯ãããããã®å€æ°ã«æ ŒçŽããŸãã
ïŒ2ïŒããã¯ã倿°Rowã倿°Colã宣èšããŠåæåããŠããŸããããã¯ãã¢ããªã®ããŒã¿ãæžã蟌ãã»ã«äœçœ®ïŒããŒãã«ïŒã®èµ·ç¹ã§ãããããããŒãã«ã®äœçœ®ãå€ããå Žåã«ã¯ããããã倿ŽããŠãã ããã
ãªã¹ã4ã¢ããªããããŒã¿ãååŸããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®2ïŒ
' (3)ãã©ã¡ãŒã¿æååãæ§ç¯ãã
Dim Param As String
Param = "app=" & AppId
' (4)APIãåŒã³åºã
Dim Result As String
Result = KickWebService("records.json", Param)
' (5)JSONããŒã¿ãæ»ã£ãŠããªãå Žåã¯åŠçãçµäºãã
If Left(Result, 1) <> "[" And Left(Result, 1) <> "{" Then
Cells(Row, Col) = "ååŸçµæäžæ£"
Exit Sub
End If
' (6)JSONæååããã£ã¯ã·ã§ããªåœ¢åŒã«å€æãã
Dim Json As Object
Set Json = JsonConverter.ParseJson(Result)
' (7)recordsããŒããªããã°åŠçãçµäºãã
If Not Json.Exists("records") Then
Cells(Row, Col) = Json("message")
Exit Sub
End If
â¡ã«çžåœããã¹ã¯ãªããã§ãã
ïŒ3ïŒããã¯ãKickWebService颿°ã«æž¡ãã¯ãšãªãã©ã¡ãŒã¿ãçæããŠããŸããããã§ã¯ãã¢ããªIDãæå®ããã®ã¿ã®ãapp=AppIdããã¯ãšãªãã©ã¡ãŒã¿ãšããŠçæããŠããŸãã
ïŒ4ïŒããã¯ãçæããã¯ãšãªãã©ã¡ãŒã¿ã«åºã¥ããè€æ°ã¬ã³ãŒãã®ååŸã®ããã®APIãã¹"records.json"ãæå®ããAPIãåŒã³åºããŠããŸããçµæãJSONæååã§ãªãå Žåã«ã¯ããšã©ãŒãšããŠãã®æšãã»ã«ã«æžã蟌ãã§åŠçãäžæ¢ããŠããŸãïŒ5ïŒã
ïŒ6ïŒããã¯ãååŸããJSONæååããã£ã¯ã·ã§ããªåœ¢åŒã«å€æããrecordsããŒããªããã°åé¡ãçºçããŠãããšããŠãmessageããŒã®ãšã©ãŒã¡ãã»ãŒãžãã»ã«ã«æžã蟌ãã§åŠçãäžæ¢ããŠããŸãïŒ7ïŒã
ãªã¹ã5ã¢ããªããããŒã¿ãååŸããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®3ïŒ
' (8)ããŒã¿é
åãšèŠçŽ æ°ãåãåºã
Dim Items As Variant, ItemCount As Integer
Set Items = Json("records")
ItemCount = Items.Count
' (9)ããŒãã«ãšåãªã¹ããååŸããŠãã
Dim Table As Variant, ColumnList As Variant
Set Table = ActiveSheet.ListObjects("顧客ãªã¹ã")
Set ColumnList = Table.ListColumns
' (10)ã¢ããªããŒã¿é
åãåæåãã
Dim ItemList As Variant
ReDim ItemList(1 To ItemCount, 1 To ColumnList.Count)
' (11)ååŸããå
šã¬ã³ãŒãã«ã€ããŠåŠçãã
Dim Count As Integer
For Count = 1 To ItemCount
Dim Item As Variant
Set Item = Items(Count)
' (12)ããŒãã«ã®ååã«ã€ããŠåŠçãã
Dim Index As Integer
For Index = 1 To ColumnList.Count
Dim Key As String, Value As Variant
Key = ColumnList(Index)
' (13)ååãããŒã«ååšããã°ããŒã¿ãååŸãã
If Item.Exists(Key) Then
Set Value = Item(Key)
ItemList(Count, Index) = Value("value")
Else
ItemList(Count, Index) = "ããŒã¿ãªã"
End If
Next
Next
â¢ã«çžåœããã¹ã¯ãªããã§ããïŒ8ïŒããã¯ãJSONããŒã¿ããrecordsããŒã®å€ãé
åItemsãšããŠååŸããŠãã¬ã³ãŒãæ°ã倿°ItemCountã«æ ŒçŽããŠããŸãã
ïŒ9ïŒããã¯ãããŒãã«ããªããžã§ã¯ãTableãšããŠååŸããåãªã¹ããColumnListãšããŠååŸããŠããŸãããã®åãªã¹ãã¯ãJSONããŒã¿ããåé
ç®ãååŸããéã®ããŒãšããŠäœ¿çšããŸãã
ïŒ10ïŒããã¯ãã¬ã³ãŒãæ°ã«åºã¥ããã¢ããªããŒã¿é
åã®å€§ãããèšå®ããŠããŸããã¢ããªããŒã¿ãé
åã§ä¿æããã®ã¯ãã»ã«ãžã®æžã蟌ã¿ããŸãšããããšã§ãããã©ãŒãã³ã¹ã®æªåãé²ãããã§ãã
ïŒ11ïŒããã¯ãåã¬ã³ãŒãã«ã€ããŠã®åŠçã§ããåã¬ã³ãŒãã¯ãïŒ12ïŒããããŒãã«ã®ååã«ã€ããŠåŠçããŸããåŠçå
容ã¯ãããŒãã«ã®ååãããŒãšããŠã¬ã³ãŒãã«ååšããã確èªããååšããã°å€ãååŸããŠã¢ããªããŒã¿é
åã«æ ŒçŽãããšãããã®ã§ãïŒ13ïŒãååšããªããã°ããããŒã¿ãªãããã¢ããªããŒã¿é
åã«æ ŒçŽããŸãã
ãªã¹ã6ã¢ããªããããŒã¿ãååŸããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®4ïŒ
' (14)é
åãã»ã«ã«æžã蟌ã
Table.Resize Table.Range.Resize(ItemCount + 1)
Range(Cells(Row, Col), _
Cells(Row + ItemCount - 1, Col + ColumnList.Count - 1)).Value = ItemList
â£ã«çžåœããã¹ã¯ãªããã§ããïŒ14ïŒããã¯ãããŒãã«ã®è¡æ°ãååŸããã¬ã³ãŒãæ°ã«åãããŠèª¿æŽããã¢ããªããŒã¿é åã®å å®¹ãæžã蟌ãã§ããŸãã
ãã¿ã³ã¯ãªãã¯ã§ã¯ãŒã¯ã·ãŒããçæããã¹ã¯ãªãã
æåŸã«ããã¿ã³ã¯ãªãã¯ã§ã¯ãŒã¯ã·ãŒããçæããã¹ã¯ãªãããæžããŠãããŸãããããã®ã¹ã¯ãªããã¯ãã¯ãŒã¯ã·ãŒããçæãããã¿ã³ãã¯ãªãã¯ããéã«åŒã³åºãããã€ãã³ããã³ãã©GenerateCommandButton_ClickãšããŠèšè¿°ããŸãïŒãªã¹ã7以éïŒã以äžã®æµãã§ãããŒãã«ã®å 容ããã¯ãŒã¯ã·ãŒããçæããããŒã¿ãã»ã«ã«æžã蟌ãã§ããŸãã
â æ¢åã®çæãããã¯ãŒã¯ã·ãŒããåé€ãã
â¡ãã³ãã¬ãŒããè€è£œããŠå¿
èŠç®æãæžãæãã
以äžã¯ããªã¹ãã®è§£èª¬ã«ãªããŸããäžèšã®æµãã«åãããŠé©å®åºåã£ãŠããŸãã
ãªã¹ã7ã¯ãŒã¯ã·ãŒããçæããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®1ïŒ
' (1)ã¯ãŒã¯ã·ãŒãå逿ã®ç¢ºèªãã€ã¢ãã°ãé衚瀺ã«ãã
Application.DisplayAlerts = False
' (2)ãã³ãã¬ãŒãã®ã¯ãŒã¯ã·ãŒããååŸããŠãã
Dim TemplateWorksheet As Worksheet
Set TemplateWorksheet = Worksheets("Template")
' (3)æ¢åã®ã¯ãŒã¯ã·ãŒããåé€ãã
Dim Index As Integer
Index = TemplateWorksheet.Index + 1
While Index <= Worksheets.Count
Worksheets(Index).Delete
Wend
Application.DisplayAlerts = True
â ã«çžåœããã¹ã¯ãªããã§ããïŒ1ïŒã§ã¯ãã¯ãŒã¯ã·ãŒãã®å逿ã«è¡šç€ºããã確èªãã€ã¢ãã°ãé衚瀺ã«ããŠããŸããåé€ã®çµäºåŸã«ã¯ã衚瀺ãããããã«èšå®ãæ»ããŠããŸãã
ïŒ2ïŒã§ã¯ããã³ãã¬ãŒãã®ã¯ãŒã¯ã·ãŒããååŸããŠããŸãããã®ãã³ãã¬ãŒããè€è£œããæ°ãã«çæããã¯ãŒã¯ã·ãŒãã®ã²ãªåãšããŠããŸãã
ïŒ3ïŒããã¯ãæ¢åã®çæãããã¯ãŒã¯ã·ãŒããåé€ããŠããŸãããã³ãã¬ãŒãã®ã¯ãŒã¯ã·ãŒããã倧ããªã€ã³ããã¯ã¹ãæã€ã¯ãŒã¯ã·ãŒããå
šãŠåé€ããã ãã§ãã
ãªã¹ã7ã¯ãŒã¯ã·ãŒããçæããŠã»ã«ã«æžã蟌ãã¹ã¯ãªããïŒãã®1ïŒ
' (4)ããŒãã«ãšåãªã¹ããååŸããŠãã
Dim Table As Variant, ColumnList As Variant
Set Table = ActiveSheet.ListObjects("顧客ãªã¹ã")
Set ColumnList = Table.ListColumns
' (5)å
šãŠã®è¡ã«ã€ããŠåŠçãã
Dim RowIndex As Integer, ColIndex As Integer
For RowIndex = 1 To Table.DataBodyRange.Rows.Count
' (6)ãã£ã«ã¿ãŒãããŠããªãè¡ã®ã¿
If Not Table.DataBodyRange.Rows(RowIndex).Hidden Then
' (7)ãã³ãã¬ãŒãã·ãŒããã³ããŒããŠååãèšå®ãã
Dim NewWorksheet As Variant
TemplateWorksheet.Copy After:=TemplateWorksheet
Set NewWorksheet = ActiveSheet
NewWorksheet.Name = Table.DataBodyRange.Cells(RowIndex, 1)
' (8)ã³ããŒããã¯ãŒã¯ã·ãŒãã®å
å®¹ãæžãæãã
Dim Cell As Variant
For ColIndex = 1 To ColumnList.Count
Set Cell = NewWorksheet.Cells.Find(What:=ColumnList(ColIndex))
If Not Cell Is Nothing Then
Cell.Value = Table.DataBodyRange.Cells(RowIndex, ColIndex)
End If
Next
Set Cell = NewWorksheet.Cells.Find(What:="æ¥ä»")
If Not Cell Is Nothing Then
Cell.Value = Format(Now, "yyyy幎mmæddæ¥")
End If
End If
Next
' (9)巊端ã®ã¯ãŒã¯ã·ãŒããã¢ã¯ãã£ãã«ãã
Worksheets(1).Activate
â¡ã«çžåœããã¹ã¯ãªããã§ããïŒ4ïŒããã¯ãã¢ããªããŒã¿èªã¿èŸŒã¿æãšåæ§ã«ãããŒãã«ããªããžã§ã¯ãTableãšããŠååŸããåãªã¹ãããªããžã§ã¯ãColumnListãšããŠååŸããŠããŸããããŒãã«ã¯ã»ã«ã®ããŒã¿ãåç
§ããããã«ãåãªã¹ãã¯çæããã¯ãŒã¯ã·ãŒãã«ããããŒæååãæ€çŽ¢ããããã«ããããã䜿çšãããŸãã
ïŒ5ïŒããã¯ãããŒãã«ã®åè¡ã«å¯ŸããåŠçã§ããããŒãã«ã®åè¡ã¯ãDataBodyRangeããããã£ã§åç
§ããŸãã
ïŒ6ïŒã§ãå¯èŠãªè¡ã«å¯ŸããŠã®ã¿åŠçãè¡ãããšã«ããŠããŸããããã¯ãããŒãã«ã®ãã£ã«ã¿ã«ãã£ãŠè¡ãçµã蟌ãŸããŠãããšãã«ãé衚瀺ã®è¡ãåŠçããå€ãããã§ãã
ïŒ7ïŒã§ãã³ãã¬ãŒããCopyã¡ãœããã§ã³ããŒããŠãååïŒNameããããã£ïŒãããŒãã«ã®ç¬¬1åã®å
容ãšããŠããŸãã
ïŒ8ïŒããã¯ãã³ããŒããã¯ãŒã¯ã·ãŒãããååã«äžèŽããããŒæååãããã°ããããã¢ããªããŒã¿ã§çœ®ãæããŸããæ¥ä»ã ãã¯ãçŸå𿥿ããå¹Žææ¥ãã«æŽåœ¢ããŠçœ®ãæããŠããŸãã
æåŸã«ïŒ9ïŒã§ã¯ã巊端ã®ã¯ãŒã¯ã·ãŒãïŒListïŒãã¢ã¯ãã£ãã«ããŠããŸããããã¯ãCopyã¡ãœããã®å®è¡ã§ã¢ã¯ãã£ããªã·ãŒããã³ããŒãããã·ãŒãã«åãæ¿ããã®ã§ããããå
ã«æ»ãããã§ãã
ããã§ãã¹ã¯ãªããã®äœæã¯çµäºã§ããã¯ãŒã¯ã·ãŒãã®åœ¢ãæŽããŠåé ã®å³1ã®ããã«ãªãã°å®æã§ãã
ãŸãšã
ååãšä»åã¯ãCybozuã®kintone REST APIã䜿ã£ãŠãkintoneã¢ããªã®åãæ±ãã«ã€ããŠç޹ä»ããŸãããä»åã¯ãAPIã®æäŸããæãåºæ¬çãªéšåã®ã¿ã䜿ã£ãäŸã玹ä»ããŸããããã¢ããªã倿Žããããä»ã®APIã䜿ãããšã§æŽ»çšã®å¹ ãæ¡ããããã ãšæããŠããã ããã®ã§ã¯ãªãã§ããããã
WINGSãããžã§ã¯ã å±±å çŽè/å±±ç°ç¥¥å¯ç£ä¿®
ïŒWINGSãããžã§ã¯ãã«ã€ããŠïŒãã¯ãã«ã«å·çãããžã§ã¯ã(代衚山ç°ç¥¥å¯)ãæµ·å€èšäºã®ç¿»èš³ãããäž»ã«Webéçºåéã®æžç±ã»éèª/Webèšäºã®å·çãè¬æŒçãå¹ åºãæããããäžç·ã«å·çãã§ããæå¿ãåéäž



