>>380
なるほど…
Freeだとアクセス違反がでるし
Delete、Clearはそもそも行や列には作用しないと…

やっぱり、しこしこコードを書くしかないのかな
↓こんな感じで
procedure TForm1.mnuDeleteColClick(Sender: TObject);
var
i: Integer;
nDeleteBegin: Integer;
nDeleteEnd : Integer;
nDeleteCount: Integer;
nMoveCount : Integer;
grTemp: TGridRect;
begin
grTemp:=StringGrid1.Selection;
nDeleteBegin:=grTemp.Left;
nDeleteEnd :=grTemp.Right;
nDeleteCount:=nDeleteEnd-nDeleteBegin+1;
nMoveCount :=StringGrid1.ColCount-nDeleteEnd+1;
for i:=0 to nMoveCount-1 do
StringGrid1.Cols[nDeleteBegin+i].Assign(StringGrid1.Cols[nDeleteBegin+i+nDeleteCount]);
StringGrid1.ColCount:=StringGrid1.ColCount-nDeleteCount;
end;

…鈍臭。