Вы можете проверить, содержит ли строка, разбитая на слова, все символы в виде буквы. Вот пример:
string AddStars(string input)
{
var words = input.Split(' ');
var output = "";
foreach (var word in words)
{
output += word;
if (!word.ToCharArray().ToList().All(char.IsLetter))
output += "*";
output += " ";
}
return output.TrimEnd();
}
Только что попробовал это в непосредственном окне редактора VBA:
ActiveDocument.Variables.Add "foo", String(10000, ".")
? Len(ActiveDocument.Variables("foo"))
10000
Переменные документа сохраняются вместе с документом. Кажется, что они могут содержать до 65280 символов Юникода, как я только что узнал (проверено в Word 2003; Обновление: Это ограничение одинаково в Word 2007 и 2010).
Если вы боитесь приблизиться 60 КБ для ваших данных, я бы порекомендовал либо разделить их на несколько переменных, либо сжать их перед сохранением. Этот пост показывает некоторые варианты сделать это в VBA.
Он не совсем соответствует вашим требованиям, потому что не работает с Word 2003. Однако он все равно может быть вам интересен (в противном случае я рекомендую вам использовать переменные документа, как предлагает Томалак):
В Word 2007 (и более поздних версиях) вы может встраивать произвольные XML-документы в документ Word как Пользовательский XML .
Пример описан в этой статье на MSDN: Как добавить пользовательские XML-части в документы с помощью надстроек VSTO