AMissico перечислил несколько очень хороших решений. Я хотел бы добавить один, который работал для меня:
В C # (ExcelDNA / VSTO) или VBA вы можете сделать что-то вроде:
var app = (Application) ExcelDnaUtil.Application;
app.ActiveCell.AddComment("This is an editable cell");
Очевидным недостатком было бы то, что пользователь мог видеть этот комментарий - в моем случае он работал очень хорошо, потому что я мог предоставить пользователю полезную диагностику, а также проанализировать тот же текст, чтобы получить метаданные, которые я хотел.
Вы также можете скрыть комментарий, используя:
app.DisplayCommentIndicator = XlCommentDisplayMode.xlNoIndicator;
Однако обратите внимание, что это скрывает все комментарии, а не только тот, который вы добавили. Чтобы перебрать комментарии на листе, вы можете использовать следующее:
var comments = ((Worksheet)app.ActiveSheet).Comments;
foreach(Comment comment in comments)
{
var text = comment.Text();
// do something...
}