{"text_format":"3","workbook":"xlsx","n_sheets":3,"sheets":["Excel VBA Chess","Turn History","Version"],"not_rendered":{"images":12,"macros":1,"defined_names":6},"read":"whole","date_system":"1900"}

{"sheet":"Excel VBA Chess","index":0,"n_rows":104,"n_cols":16,"rows_kept":104}
[null,"EXCEL VBA CHESS",{"$nulls":11},"Algebraic Notation"]
[null,"a","b","c","d","e","f","g","h",{"$nulls":4},"Turn","White","Black"]
[8,"BR","BKN","BB","BQ","BK","BB","BKN","BR",8,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A4=\"\",\"\",('Turn History'!A4)),OFFSET('Turn History'!A4,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A4=\"\",\"\",('Turn History'!A4)),OFFSET('Turn History'!A4,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B4=\"\",\"\",('Turn History'!B4)),OFFSET('Turn History'!B4,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B4=\"\",\"\",('Turn History'!B4)),OFFSET('Turn History'!B4,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C4=\"\",\"\",('Turn History'!C4)),OFFSET('Turn History'!C4,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C4=\"\",\"\",('Turn History'!C4)),OFFSET('Turn History'!C4,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[7,"BP","BP","BP","BP","BP","BP","BP","BP",7,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A5=\"\",\"\",('Turn History'!A5)),OFFSET('Turn History'!A5,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A5=\"\",\"\",('Turn History'!A5)),OFFSET('Turn History'!A5,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B5=\"\",\"\",('Turn History'!B5)),OFFSET('Turn History'!B5,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B5=\"\",\"\",('Turn History'!B5)),OFFSET('Turn History'!B5,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C5=\"\",\"\",('Turn History'!C5)),OFFSET('Turn History'!C5,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C5=\"\",\"\",('Turn History'!C5)),OFFSET('Turn History'!C5,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[6,{"$nulls":8},6,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A6=\"\",\"\",('Turn History'!A6)),OFFSET('Turn History'!A6,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A6=\"\",\"\",('Turn History'!A6)),OFFSET('Turn History'!A6,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B6=\"\",\"\",('Turn History'!B6)),OFFSET('Turn History'!B6,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B6=\"\",\"\",('Turn History'!B6)),OFFSET('Turn History'!B6,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C6=\"\",\"\",('Turn History'!C6)),OFFSET('Turn History'!C6,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C6=\"\",\"\",('Turn History'!C6)),OFFSET('Turn History'!C6,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[5,{"$nulls":8},5,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A7=\"\",\"\",('Turn History'!A7)),OFFSET('Turn History'!A7,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A7=\"\",\"\",('Turn History'!A7)),OFFSET('Turn History'!A7,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B7=\"\",\"\",('Turn History'!B7)),OFFSET('Turn History'!B7,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B7=\"\",\"\",('Turn History'!B7)),OFFSET('Turn History'!B7,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C7=\"\",\"\",('Turn History'!C7)),OFFSET('Turn History'!C7,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C7=\"\",\"\",('Turn History'!C7)),OFFSET('Turn History'!C7,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[4,{"$nulls":8},4,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A8=\"\",\"\",('Turn History'!A8)),OFFSET('Turn History'!A8,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A8=\"\",\"\",('Turn History'!A8)),OFFSET('Turn History'!A8,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B8=\"\",\"\",('Turn History'!B8)),OFFSET('Turn History'!B8,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B8=\"\",\"\",('Turn History'!B8)),OFFSET('Turn History'!B8,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C8=\"\",\"\",('Turn History'!C8)),OFFSET('Turn History'!C8,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C8=\"\",\"\",('Turn History'!C8)),OFFSET('Turn History'!C8,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[3,{"$nulls":8},3,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A9=\"\",\"\",('Turn History'!A9)),OFFSET('Turn History'!A9,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A9=\"\",\"\",('Turn History'!A9)),OFFSET('Turn History'!A9,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B9=\"\",\"\",('Turn History'!B9)),OFFSET('Turn History'!B9,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B9=\"\",\"\",('Turn History'!B9)),OFFSET('Turn History'!B9,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C9=\"\",\"\",('Turn History'!C9)),OFFSET('Turn History'!C9,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C9=\"\",\"\",('Turn History'!C9)),OFFSET('Turn History'!C9,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[2,"WP","WP","WP","WP","WP","WP","WP","WP",2,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A10=\"\",\"\",('Turn History'!A10)),OFFSET('Turn History'!A10,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A10=\"\",\"\",('Turn History'!A10)),OFFSET('Turn History'!A10,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B10=\"\",\"\",('Turn History'!B10)),OFFSET('Turn History'!B10,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B10=\"\",\"\",('Turn History'!B10)),OFFSET('Turn History'!B10,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C10=\"\",\"\",('Turn History'!C10)),OFFSET('Turn History'!C10,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C10=\"\",\"\",('Turn History'!C10)),OFFSET('Turn History'!C10,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[1,"WR","WKN","WB","WQ","WK","WB","WKN","WR",1,{"$nulls":3},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A11=\"\",\"\",('Turn History'!A11)),OFFSET('Turn History'!A11,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!A11=\"\",\"\",('Turn History'!A11)),OFFSET('Turn History'!A11,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B11=\"\",\"\",('Turn History'!B11)),OFFSET('Turn History'!B11,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!B11=\"\",\"\",('Turn History'!B11)),OFFSET('Turn History'!B11,MAX('Turn History'!$A:$A)-8,0)))","v":""},{"$f":"IF(IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C11=\"\",\"\",('Turn History'!C11)),OFFSET('Turn History'!C11,MAX('Turn History'!$A:$A)-8,0))=0,\"\",IF(MAX('Turn History'!$A:$A)<9,IF('Turn History'!C11=\"\",\"\",('Turn History'!C11)),OFFSET('Turn History'!C11,MAX('Turn History'!$A:$A)-8,0)))","v":""}]
[null,"a","b","c","d","e","f","g","h"]
[]
[{"$nulls":4},"Turn:",1]
[{"$nulls":4},"Player:","White"]
[{"$nulls":4},"Piece:","-"]
{"$rows_empty":83}
[null,"TAKEN PIECES"]
[]
[]
[]
[]
[null,"TAKEN PIECES: PAWN PROMOTION"]

{"sheet":"Turn History","index":1,"n_rows":15,"n_cols":5,"rows_kept":15}
["TURN HISTORY",null,null,"Link:","https://en.wikipedia.org/wiki/Algebraic_notation_(chess)"]
[]
["TURN","WHITE","BLACK",null,"KEY:"]
[{"$nulls":4},"K for King"]
[{"$nulls":4},"Q for Queen"]
[{"$nulls":4},"R for Rook"]
[{"$nulls":4},"B for Bishop"]
[{"$nulls":4},"N for Knight"]
[{"$nulls":4},"Blank for Pawn"]
[{"$nulls":4},"x for taking a piece"]
[{"$nulls":4},"+ for check"]
[{"$nulls":4},"++ for checkmate"]
[{"$nulls":4},"e.p. for en passant"]
[{"$nulls":4},"0-0 for kingside castling"]
[{"$nulls":4},"0-0-0 for queenside castling"]

{"sheet":"Version","index":2,"n_rows":20,"n_cols":4,"rows_kept":20}
[]
[null,"Date","Version","Description"]
[null,"2017-01-29",0.5,"Development. \nInitial board setup. Event Procedure setup for when a range is selected.\nColorIndex used to indicate selection (yellow) and possible moves (green).\nPawn, Rook, Knight, Bishop, Queen and King moves modelled using VBA classes. \nReset Board, Enable Events, Disable Events and Clear Moves functionality added."]
[null,"2017-01-31",0.6,"Development. \nColorIndex used to determine King in Check (red) and King's impossible moves (orange).\nCheck functionality added for King's interaction with Pawn a) during King's move b) during Pawn's move.\nCheck functionality added for King's interaction with Rook a) during King's move b) during Rook's move."]
[null,"2017-02-01",0.7,"Development.\nCheck functionality added for King's interaction with Knight a) during King's move b) during Knight's move.\nCheck functionality added for King's interaction with Bishop a) during King's move b) during Bishop's move.\nCheck functionality added for King's interaction with Queen a) during King's move b) during Queen's move.\nCheck functionality: King's movement interaction with opposing King handled.\nCheck functionality: Evaluate Checkmate functionality added for King."]
[null,"2017-02-03",0.8,"Development.\nCheck functionality: Evaluate \"Break Check\" moves either by taking piece or blocking path to King. Implemented for Pawn, Rook, Knight, Bishop and Queen in Event Procedure."]
[null,"2017-02-04",0.85,"Development.\nCheck functionality: Evaluate whether piece trying to move is in an \"absolute pin\" by opposing piece (whereby movement would lead to the friendly King being in Check)."]
[null,"2017-02-06",0.9,"Development.\nCheck functionality: Evaluate whether King's move to take an adjacent opposing piece results in Check."]
[null,"2017-02-06",0.95,"Development.\nShort and long castling introduced."]
[null,"2017-02-09",0.96,"Development.\nPiece images introduced. Macros created to center and position shape over specific cell, respond to image clicks, respond to board events, move shapes and reset board."]
[null,"2017-02-10",0.97,"Development.\nEn passant functionality introduced for single and double Pawns."]
[null,"2017-02-11",0.98,"Development.\nPawn promotion introduced giving choice of Queen, Bishop, Knight and Rook. Up to 8 promotions possible per side."]
[null,"2017-02-11",{"v":1,"d":"1.0"},"Final version."]
[null,"2017-02-13",1.01,"Final version.\nEn passant bug: \"object variable or with block variable not set\" fixed. TargetShape was not being set- code added to rectify."]
[null,"2018-06-26",1.02,"Final version.\nKing able to castle when in check: bug fixed."]
[null,"2020-02-07",1.03,"Final version.\nButton graphics updated."]
[null,"2020-11-24",1.04,"Final version.\nTurns altered to be in line with Algebraic notation (one turn comprises both White & Black moves)."]
[null,"2020-11-25",1.05,"Final version.\nTurn counter added using Algebraic notation: to include taking pieces (x), check (+), checkmate (++), en passant (e.p.), castling (0-0 and 0-0-0) and pawn promotion."]
[]
[null,"Contact:","tomhedge1981@gmail.com"]