As the verse environment is based upon the basic list environment, the \compress part of another answer is valid here, too.
But there's still space added after the verse environment, that's why I subtract an additional length of \lastskip and \baselineskip at the end (one \baselineskip because the verse environment acts as an paragraph and you could actually begin another one on the next line) which adds up to 2\baselineskip.
This solution is still “ugly” as it is needed to type \compress as well as \vspace{-2\baselineskip} every time, so I defined a new environment, called tvserse.
A third (localized) solution is the definition of a new column type V that takes two (mandatory) arguments:
- the actual optional argument for the
verse environment (use {} for the non-usage of this argment), and
- the width of the underlying
p column.
The whole cell is now typeset as a verse.
If the array package is used an additional \leavevmode is needed in the first two cases.
Code
\documentclass{article}
\usepackage{verse}
\usepackage{array}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\newenvironment{tverse}[1][]{\compress\ifx\\#1\\\begin{verse}\else\begin{verse}[#1]\fi}{\end{verse}\vspace{-\lastskip}\vspace{-\baselineskip}\leavevmode}
\newcolumntype{V}[2]{%
>{%
\compress%
\ifx\\#1\\%
\begin{verse}%
\else%
\verse[#1]%
\fi%
}%
p{#2}%
<{%
\end{verse}%
\vspace{-\lastskip}%
\vspace{-\baselineskip}%
}%
}
\begin{document}
\begin{tabular}{p{30mm} | p{30mm} | p{30mm}}
\hline 1. & \compress \begin{verse} AAAA \\
BBBB \\
CCCC \end{verse} \vspace{-\lastskip}\vspace{-\baselineskip}\leavevmode & QUESTION \\ \hline
\end{tabular}
\begin{tabular}{p{30mm} | p{30mm} | p{30mm}}
\hline 1. & \begin{tverse} AAAA \\
BBBB \\
CCCC \end{tverse} & QUESTION \\ \hline
\end{tabular}
\begin{tabular}{p{30mm} | V{}{30mm} | p{30mm}}
\hline 1. & AAAA \\
BBBB \\
CCCC & QUESTION \\ \hline
\end{tabular}
\end{document}
Output
