Major update. The code now adds "placeholders" for both connection point, aka, pin, text and pin numbers. Since the pin text leverages the connection point D cell, this implementation is specifically for adding named connection point rows.
Features:
1) Accepts zero connection points on any side
2) Allows manual resizing of shape, but will not size smaller than necessary to accommodate the pins.
3) Uses shape data property to control both size of shape and pin spacing.
4) Connection points may be dragged and text placeholders will track. No, deleting a connection point will not delete the placeholders. That must be done manually.
5) Adds a default reference designator. The numerical indication is merely the shape ID. So, doesnot use the auto number routines.
6) Definition of the pins per side and the initial pin spacing is still a manual entry into the main routine. A user form could be created to allow entry of these values. No intention to do that now. Once the shape is built, it is possible to modify the pin spacing via (3) above.
Not included: ability to hide the pin number or pin label text.
The code is partitions into 3 subroutines. The main subroutine initially calls the main shape construction. Then, later calls the subshape definition routine to create the placeholders for pin text.
I think this is a reasonably generic, universal shape.
Enjoy.
Wapperdude