Страницы: 1 2 След.
RSS
Вставка текста из ячейки в объект Microsoft Word
 
Доброго времени суток!  
 
Очень нужна Ваша помощь!  
В листе Excel имеется объект Microsoft Word, а так же кнопка "вставить данные". Необходим макрос для переноса текста из определенной ячейки (например А1) в объект Microsoft Word.  
Необходимо для удобного редактирования текста пользователем.
Век живи, век учись - два века проживешь!
 
Без макроса не хотите?  
Выделить объект, в строке формул написать  
=$A$1  
Теперь в объекте текст из A1.
 
в таком случае:  
1. нельзя редактировать текст  
2. длина текста ограничена
Век живи, век учись - два века проживешь!
 
Russel, Вы выбрали очень тернистый и малопредсказуемый путь. Все встроенные объекты статичны, их обновление осуществляется через WinAPI. Не проще бы Вам из ложить конечную цель Вашей идеи, чтобы можно было предложить Вам альтернативные решения. С объектами вошкаться неохота... Времени жалко, неблагодарное это дело и в будующем врят ли пригодится.
 
Объясняю:    
На листе имеются ячейки, содержащие неприлично много текста, который неудобно редактировать, просматривать и т.п., поэтому при печати хочется выводить данные из таких ячеек в текстовых рамках (по поводу объектов MS Word понял что не стоит связываться), в которых удобно подредактировать текст для придания "красоты"
Век живи, век учись - два века проживешь!
 
Ну давайте выводить в Userform.Label. Размер шрифта регулируется, тип тоже. Размеры Box-a тоже можно регулировать. D таком случае можно все на событие  листа поставить. Будет как живая...
 
VovaK, можете в примере продемонстрировать?
 
Влад, а как редактировать будут в Label? Может есть смысл содержимое ячейки выводить в TextBox, а после редактирования сохранять в ячейку?
 
{quote}{login=Юрий М}{date=22.10.2009 03:32}{thema=}{post}Влад, а как редактировать будут в Label? Может есть смысл содержимое ячейки выводить в TextBox, а после редактирования сохранять в ячейку?{/post}{/quote}  
 
Юрий М, именно это мне и нужно! но как???
Век живи, век учись - два века проживешь!
 
Вот так, например:
 
{quote}{login=Юрий М}{date=22.10.2009 03:40}{thema=}{post}Вот так, например:{/post}{/quote}  
 
Здорово, но - 1. не печатается 2. нельзя поменять шрифт, форматирование  
 
Хотелось бы, чтобы перед печатью можно было "сделать красиво", в дальнейшем форматирование можно не сохранять.
Век живи, век учись - два века проживешь!
 
Не печатается содержимое ячейки? Нужно уточнение задачи.
 
Текст хранится в ячейках таблицы (типа БД), для печати конкретных данных, значения из определнных ячеек переносятся на новый лист в виде письма - отчета, при необходимости вносятся корректировки, форматируется текст - жирный шрифт, красные строки и т.п. После печати необходимо предусмотреть сохранение в БД измененных данных.
Век живи, век учись - два века проживешь!
 
Самое простое - делать большие по размерам ячейки и редактировать прямо в них, что не очень удобно, т.к. текст большой. Этот способ я смог реализовать, но поставлена задача сделать чтоб было удобно
Век живи, век учись - два века проживешь!
 
Ясно. Я бы использовал Мастер слияния в Word. Используем Книгу Excel как БД. Заполняем ячейки нужными блоками данных. Создаём в Word необходимый шаблон документа. Вставляем при помощи Мастера в нужных местах нужные поля. Форматируем. Для нужного адресата/клиента выбираем ту или иную строку из БД.
 
Мастер слияния вещь хорошая, но тоже не лучший вариант... (  
 
Ну что, никто не знает, как макросом кинуть текст в текстовую рамочку, а потом вытащить его обратно?
Век живи, век учись - два века проживешь!
 
Не пойму, чем не угодил TextBox на Форме? В него считываем данные, редактируем, если нужно. Сохраняем в исходную ячейку БД. А уже сам отчёт формируем на другом листе с использованием данных этой ячейки, где можно форматировать текст как угодно. Зачем Вам "Текстовая рамочка"?
 
Насчет Label я конечно погорячился, непонятно мне все таки желание Автора. Если есть Word зачем делать убогое подобие, почему нельзя выполнить документ целиком в Word. А идея высветить ячейку целиком, чтобы не расширять ее и не редактировать в неудобном поле ввода - мне понравилась. Russel я прошу Вас извинить меня, но возиться с OLEobjects из-за стремления что-то напечатать В Worde из Excel-я в лом, неокупаемый труд. А Вот эту примочку добить до совершенства интерес есть.  
 
Вываливается при двойном клике на любую ячейку на листе, Завершение редактирования - нажатие ENTER или перемещение курсора мыши за пределы формы (выводится сообщение, а то непонятна реакция). На этом идеи у меня кончились. Но может у кого есть - готов добавить.
 
VovaK, примочка интересная, найдет свое применение, сохранил на будущее. Будут по ней доработки - выкладывайте! :-)  
Конечно закрытие по Enter'у - не очень удобная вещь, лучше б новая строка началась (вставка "символ(10)"), а закрытие сделать по кнопке "Сохранить".  
 
Еще раз выкладываю пример того что смог сделать я с описанием
Век живи, век учись - два века проживешь!
 
Ну и думаю данная фишка будет полезна автору этого топика:  
http://www.planetaexcel.ru/forum.php?thread_id=10744
Век живи, век учись - два века проживешь!
 
VovaK, при вываливании формы, во избежании непредсказуемой реакции и прочих эксцессов - блокировать книгу до закрытия формы
Век живи, век учись - два века проживешь!
 
Последнее мое сообщение в топку, до закрытия формы и так нельзя ничего сделать )))
Век живи, век учись - два века проживешь!
 
Если Вам необходимо распечатать текст из ячейки. Давайте вызывать не OLE-объект на лист Excel а все приложение - скопируем туда ячейку. В нем вы отредактируете, распечатаете и затем удалите временный файл и закроете приложение. Как такой вариант.
 
Russel, мы с Владом напрасно теряем время, пытаясь Вам помочь, так как до сих пор не видно того, ЧТО должно получиться. Я понимаю, что нужно сформировать некий документ на основании имеющихся в т.н. БД информации. Эти блоки информации находятся каждый в своей ячейке и их необходимо разместить в нужном месте документа. С этим вообще никаких проблем не вижу. Кроме того должна быть возможность удобного редактирования с последующим сохранением содержимого этих блоков. С этим тоже, вроде разобрались. Покажите нам файл-пример с конечным документом, где используются (для краткости) 3-5 блоков текста. А то пока одни разговоры, а Ваши примеры ничего не проясняют.
 
Вот, смог я реализовать копирование текста в текстовую рамку - см. вложение.  
Теперь второй этап - Скопировать текст из рамочку в ячейку БД.
Век живи, век учись - два века проживешь!
 
Это всё понятно! НА ПЕЧАТЬ ЧТО и ОТКУДА выводить будете?
 
На печать будет выводиться несколько таких рамок на отдельном листе.  
Обнаружился минус моего решения - в рамку копируются только первые 250 символов :(((
Век живи, век учись - два века проживешь!
 
Russel, они так и буду эти рамки на листе? Я же Вас просил - покажите конечный результат.
 
Да, Юрий, так и будут - оформленные в виде письма. Рамка, которую я Вам показал - это текст письма, который и вызывает трудности. Остальные модули - шапка, заголовок, подписи и вся остальная дребедень проблем не вызывает.
Век живи, век учись - два века проживешь!
 
Вот теперь всё понятно (с этого и нужно было начать - "вот исходные данные - хочу ВОТ ТАК, но с возможностью сохранения"). Сейчас нужно собираться на работу. Если никто не отзовётся раньше - вечером сделаю.
Страницы: 1 2 След.
Читают тему
Наверх