Take a look at how the following code works to get some insight into how to handle a problem like this using CellTags. I am interpreting you question about opening and closeing a cell as wanting to hide the cell rather than in terms of opening and closing CellGroups. But the latter can be handled along similar lines.
CreateWindow[
DocumentNotebook[{
TextCell["Cell one", "Text", CellTags -> {"cell1"}],
TextCell["Cell two", "Text", CellTags -> {"cell2"}],
TextCell["Cell three", "Text", CellTags -> {"cell3"}],
TextCell[
Row[{
Button["Open",
Module[{nb},
nb = EvaluationNotebook[];
NotebookFind[nb, "cell2", All, CellTags,
AutoScroll -> False];
SetOptions[NotebookSelection[nb], CellOpen -> True]
]],
Button["Close",
Module[{nb},
nb = EvaluationNotebook[];
NotebookFind[nb, "cell2", All, CellTags,
AutoScroll -> False];
SetOptions[NotebookSelection[nb], CellOpen -> False]
]]
}
],
"Text"]
}
]
]
For a lot more detail on working with various sorts of tags take a look at the Mathematica conference talk I gave several years ago either at
http://scientificarts.com/worklife/conference2008.htmlor at
http://library.wolfram.com/infocenter/Conferences/7246/Hope this helps...