Перейти к публикации

Помогите с макросом - передача заметки в буфер обмена и обратно


Рекомендованные сообщения

Уважаемые специалисты !

Помогите начинающему программисту написать простой макрос,

в доступных примерах ничего похожего не нашел, а может,

просто не понял. Файл swxJRNL.swj тоже не помог.

Задача:

- копируем текст выбранной заметки в буфер обмена

......

......

......

- вставляем из буфера текст заметки в чертеж на старое место

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах


- копируем текст выбранной заметки в буфер обмена

......

......

......

- вставляем из буфера текст заметки в чертеж на старое место

<{POST_SNAPBACK}>

Тут кроется какая-то неточность: Вы копируете текст или заметку? Зачем столь сложная процедура: "копирования и вставки обратно в тоже место"? Почему вы хотите это делать через буфер обмена?, а не скажем передачей содержимого заметки в переменную и возврат содержимого переменной в туже заметку или в другую, это уже как вам больше нравиться!

Файл swxJRNL.swj тоже не помог.

<{POST_SNAPBACK}>

Если вы чего-то стоящее хотите получить этот журнал, да и запись макросов вам сильно не помогут. В солиде очень плохо и туда пападает лишь малая часть того что реально вы делаете в солиде. Лучше справку по API прочитать там много примеров и проще разобраться.

копируем текст выбранной заметки в буфер обмена

<{POST_SNAPBACK}>

Вот есть такая реализация только тут солид вобще говоря ни причем, из солида можно взять значение заметки, а копирование и вставка в буфер будет выглядеть примерно так:

Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена ?

Ответ:

Автор ответа: Дмитрий Данелия

Dim sFileName As String, sText As String

Dim iFileNo As Integer

Private Sub Form_Load()

sFileName = "c:\config.sys"

iFileNo = FreeFile

Open sFileName For Input As iFileNo

sText = Input(LOF(iFileNo), iFileNo)

Close iFileNo

Clipboard.SetText sText

End Sub

' Получить текст из Буфера Обмена

Private Sub Form_Click()

Text1.Text = Clipboard.GetText

End Sub

Автор ответа: Шатрыкин Иван

Очистить буфер - Clipboard.Clear

Положить текст в буфер - Clipboard.SetText Text1.Text

Вставить текст из буфера - Text1.Text = Clipboard.GetText

Положить картинку в буфер - Clipboard.SetData Picture1.Picture

Вставить картинку из буфера - Picture1.Picture = Clipboard.GetData

Только тут похоже VBA не обойтись, тут полноценный Visual Basic нужен для работы с буфером обмена хотя могу ошибаться.
Ссылка на сообщение
Поделиться на других сайтах

Не совсем понятна постановка задачи... И еще, обьект Clipboard может в VB не совсем корректно работать с символами Unicode. У меня такое было, когда надо было програмно скопировать содержимое TextBox-a в буфер обмена, пришлось применять: SendKeys ("^C"). В принципе, вроде одно и тоже, а резудьтат был разный.

Ссылка на сообщение
Поделиться на других сайтах

И еще, обьект Clipboard может в VB не совсем корректно работать с символами Unicode.

<{POST_SNAPBACK}>

Полагаю что тут проблема не в Clipboard (по крайней мере не только в нем), извечная проблема ANSI в Unicode и наоборот и проблема с кодовыми страницами, по этому поводу думаю будет интересно почитать статью вот здесь: <noindex>http://www.microsoft.com/Rus/Msdn/Activ/MS...riables1_2.mspx</noindex>
Ссылка на сообщение
Поделиться на других сайтах

Полагаю что тут проблема не в Clipboard (по крайней мере не только в нем), извечная проблема ANSI в Unicode и наоборот

Я наверное не совсем точно выразился. Clipboard, я почти не применял. Так вспомнил, что была у меня года 4 назад эта проблема, при копировании в буфер имени файла чертежа, для вывода на печать в файл....
Ссылка на сообщение
Поделиться на других сайтах

Всем спасибо за помощь !

Тут кроется какая-то неточность: Вы копируете текст или заметку? Зачем столь сложная процедура: "копирования и вставки обратно в тоже место"? Почему вы хотите это делать через буфер обмена?, а не скажем передачей содержимого заметки в переменную и возврат содержимого переменной в туже заметку или в другую, это уже как вам больше нравиться!

Такая сложная процедура нужна мне, потому что текст заметки требуется отредактировать

во внешнем специальном редакторе. Понятно, что все это можно делать вручную -

выделил заметку, скопировал в буфер, запустил редактор, вставил из буфера и т.д.,

но захотелось уменьшить количество всех этих операций - макросы ведь придуманы

именно для этого ?

С буфером ничего не получилось, сделал по образцу из ответа Kelny - в макросе записываю текст

заметки в файл, запускаю свой редактор, который этот файл считывает, после окончания редактирования файл сохраняется и считывается обратно в заметку.

Ссылка на сообщение
Поделиться на других сайтах

Работать с буфером в принципе можно, нодо только объект иметь. Допустим, textbox1 of Userform1.

Тогда оттуда можно копмровать и туда можно вставлять.(Кстати, чисто для вашего случая можно там же и редактировать! А зачем вам еще лишний файл создавать и еще программу открывать!)

Или надо самому создать виртуальный новый объект.

Вот почитайте <noindex>http://www.cpearson.com/excel/clipboar.htm</noindex>

Я проверял, все работает... :smile:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • lexx174
    • Snake 60
      Иногда в этом нет необходимости, особенно когда это касается покупной детали, масса которой известна, а нарисована она схематически или упрощенно. Допустим если конструктор захочет дорисовать что-то более подробно, то масса такой детали измениться, а это будет не соответствовать действительности и не всегда уследишь за плотностью такой детали, поэтому мое ИМХО изменение массы вручную иногда полезно и имеет место быть.
    • Killerchik
      Я хочу сказать, что при указанном выше перекосе невозможно будет программными компенсациями добиться перпендикулярности оси шпинделя к поверхности стола и, как следствие, к поверхности детали, притянутой к столу. Как следствие мы получаем неисправимый перекос отверстий при расточке и столь же неисправимый перекос при обработке плоскостей торцом вращающегося инструмента: торцевыми фрезами, чашечными шлифовальными кругами, однозубыми фрезами летучками.
    • Kelny
      Если узел взвешен, то подгоните плотность, это будет лучше соответствовать взвешенному узлу. Заодно проверьте все входящие детали: правильно ли задан материал или плотность, нет ли ошибок в деталях при изготовлении.
    • Alexander.k
      Я новичок  моделировании, много не понимаю.    Мне нужно получить пересечение трёх выдавленных отверстий без без артефактов. Как правильно это сделать? Я попытался создать 3 эскиза по плоскостям.    И пытался выдавить. Не найдя нужного инструмента , выдавил по стеке (хотя понимаю, что это не правильно).   Естественно на пересечении появились  артефакты. Конечно можно было построить в углу шар который убрал бы артефакты. Но я уверен что делаю это не правильно и существует более простой способ. Если не сложно, подскажите пожалуйста .
    • Андрей67
      Здравствуйте! В каталогах производителей зубчатых ремней указан параметр Zmin для каждого типа ремня.     А вот как быть с минимальным охватом шкива, чтоб ремень не разрушился от максимальной нагрузки? Понятное дело, что чем больше охват тем лучше. Но должен же быть и минимум? К примеру, для профиля Т5 как знать этот параметр?
    • Guhl
      Там об этом и написано в последнем абзаце. Видим люфт, переходим в полузамкнутый, побороли люфт, переключаемся в замкнутый контур Люфты вызывают вибрацию, пожтому с ними и борятся.  Не, не, не Ты же сам сказал: я, мол, в прошлый раз бла-бла-бла, тыры-пыры А где он, этот прошлый раз? Это ж легко - взял и дал ссылку на комментарий Ох и фантазёр ты @lem_on А я тебе отвечу, не было его, этого "последнего раза", не было Пора про тебя песню сочинить Ты бы как предпочел - в миноре, аль в мажоре? Или марш сочинить, а?
    • Viktor2004
      Таблица компенсаций позволяет корректировать любую ось в любой точке в зависимости от положения остальных осей. Вот я создаю такую таблицу для компенсации Я буду вести индикатор вдоль оси Y, а компенсировать буду Иксом. Разворачиваю поворотную ось влево на 90 градусов и компенсациями выравниваю игрек за счет икса. Потом поворачиваю стол вправо на 90 градусов. А там мне нужны уже другие компенсации, не те что для минус 90. То есть таблицу я могу составить только для минус 90 либо для плюс 90. Потому что в данные компенсации я могу вносить только константы. Если бы можно было вносить формулы, эту задачу можно было бы решить
    • lem_on
      Так у тебя память как у рыбы, 3 секунды и забыл. Ну или дурака включил, что более вероятно. Так что живи с коричневым носом. Хоть нормальные люди тебя обходить будут. 
    • gudstartup
      ну я же говорю что вы основное не понимаете. функция борется не с люфтом люфт никуда не исчезает а с последствиями которые привносит люфт в полно замкнутый контур регулирования. с люфтом борется напрямую только компенсация его в полузамкнутом контуре.
×
×
  • Создать...