Obviously, this does not help with the out-of-view, but it will help with the collapsing columns. Buttons give the option of Don't move or size with cells.
To collapse the columns the following should work
column_hider "A", "C"
column_hider "D", "R"
Sheet1.Columns.Hidden = False
Worksheets("YOUR WORKSHEET NAME").Range(first_column & ":" & last_column).EntireColumn.Hidden = True
Then, all you have to do is connect your buttons to the relevant module, such as hideAtoC or hideDtoR.
Depending on how many controls there are, moving them becomes more difficult, but this will work with some obvious modifications.
With Worksheets("YOUR WORKSHEET NAME")
.Shapes(1).Left = ActiveCell.Left
This is a pretty basic illustration. The scenario appears more involved and would likely require an offset for button width because all it does is select a cell before aligning the button with it. This is a conceptual loop, but you get the idea (although it will suffer if the cell is on the leftmost visible column).
Dim offset As Long
offset = ActiveCell.Left
For i = 1 To Sheet1.Shapes.Count
Sheet1.Shapes(i).Left = offset - (Sheet1.Shapes(i).Width / 2)
offset = offset + Sheet1.Shapes(i).Width + 10