結果セットを返すplpgsqlの関数を作ってExcelから呼び出したいのですが、

CREATE OR REPLACE FUNCTION f(date) RETURNS SETOF record AS '
DECLARE r record;
BEGIN
 FOR r IN
  SELECT sore,kore FROM t WHERE $1 <= sore and sore < $1+''1month''::interval
 LOOP
  RETURN NEXT r;
 END LOOP;
 RETURN;
END;' LANGUAGE 'plpgsql';

結果セットのカラムと型をExcelの中にぐじゃぐじゃ書かなくてはなりません

Selection.QueryTable.Sql = "SELECT * FROM f('2003-2-17') AS q(s date, k numeric);"

実際はもっとカラム数が多いのでタイヘンです。できれば、

Selection.QueryTable.Sql = "SELECT * FROM f('2003-2-17');"

だけで済ませたいのですが、いい方法はあるでしょうか? verは7.3.1です