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

Макрос. Хочу создать


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

В модуле.

дома создавал hide/show в модуле, писал имя формы-точку-а он ничего не предлагал выбрать. Просто вспоминая бейсик, там в свойствах проекта можно было выбрать первую форму, в дельфи каждую под форму нужно декларировать чтоб увидеть. Тут как-то всё еще проще.

На работе всё получилось.

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


Да, надо показывать(show) нужную в данный момент форму, а остальные прятать (hide). Форма которая должна появляться первой "прописывается" в модуле

Насколько я понял модальных форм у вас не будет.

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

дома создавал hide/show в модуле, писал имя формы-точку-а он ничего не предлагал выбрать. Просто вспоминая бейсик, там в свойствах проекта можно было выбрать первую форму, в дельфи каждую под форму нужно декларировать чтоб увидеть. Тут как-то всё еще проще.

На работе всё получилось.

hide/show - это только спрятать/показать, а требуется еще и загрузка формы! :

---

This example uses the Load statement to load a Form object. To try this example, paste the code into the Declarations section of a Form object, and then press F5 and click the Form object.

Sub Form_Click ()

Dim Answer, Msg ' Declare variable.

Unload Form1 ' Unload form.

Msg = "Form1 has been unloaded. Choose Yes to load and "

Msg = Msg & "display the form. Choose No to load the form "

Msg = Msg & "and leave it invisible."

Answer = MsgBox(Msg, 4) ' Get user response.

If Answer = 6 Then ' Evaluate answer.

Show ' If Yes, show form.

Else

Load Form1 ' If No, just load it.

Msg = "Form1 is now loaded. Choose OK to display it."

MsgBox Msg ' Display message.

Show ' Show form.

End If

End Sub

---

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

hide/show - это только спрятать/показать, а требуется еще и загрузка формы! :

Для полноты картины.

При использовании метода Show, если форма не была загружена, форма всегда сначала автоматом загружается, а потом отображается. То есть, как бы вполняется Load + Show.

Поэтому, для загрузки и отображения формы часто можно использовать просто Show без специальной загрузки.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Всем привет.

Решил понять работу макросов (потребность в создании макроса).

Надо считать строку, и дописать в нее какую-то инфо, НО с сохранением старой, в определенном порядке.

Для примера выбрал обозначение крепежа по ГОСТ.

Поясню:

Есть запись:

Болт М 6 х 8 ГОСТ 7798-70

Надо:

Болт М6-6gх8.58.016 ГОСТ7798-70

с учетом ненужных пробелов.

Макрос мне написал:

Range("C3").Select

ActiveCell.FormulaR1C1 = "'Болт М6-6gх8.58.016 ГОСТ7798-70"

Range("C4").Select

End Sub

Он действует только на эту строку и только эту форму записи.

Что делать дальше - :confused_1:

Посоветуйте книгу доступную для "чайника" для выполнения моей задачи, что-ли.

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

Всем привет.

Решил понять работу макросов (потребность в создании макроса).

Надо считать строку, и дописать в нее какую-то инфо, НО с сохранением старой, в определенном порядке.

Для примера выбрал обозначение крепежа по ГОСТ.

Поясню:

Есть запись:

Болт М 6 х 8 ГОСТ 7798-70

Надо:

Болт М6-6gх8.58.016 ГОСТ7798-70

с учетом ненужных пробелов.

Макрос мне написал:

Range("C3").Select

ActiveCell.FormulaR1C1 = "'Болт М6-6gх8.58.016 ГОСТ7798-70"

Range("C4").Select

End Sub

Он действует только на эту строку и только эту форму записи.

Что делать дальше - :confused_1:

Посоветуйте книгу доступную для "чайника" для выполнения моей задачи, что-ли.

Приобретите одну из книг Гарнаева. Для начинающих самое то.
Ссылка на сообщение
Поделиться на других сайтах

Решил понять работу макросов (потребность в создании макроса).

Для этого придется научится разбираться в программировании в целом, вероятно вам надо будет сначала ознакомится с каким нибудь языком програмирования. Советую занятся бейсиком, т.к. он изначально разрабатывлася как язык для обучения и к тому же используется для написания макросов под MSOficce.

В интернете достаточно много статей и учебных пособий по нему с примерами и исходными кодами.

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

В интернете достаточно много статей и учебных пособий по нему с примерами и исходными кодами.

Примеров подходящих не нашел, а так азы изучаю.

Некоторые моменты мне понятны, но вот мозгов немного не хватает.

Например как из 1 ячейки считать всю надпись, и дописать то, что надо только после определенной инфо, которая тоже меняется?

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

Примеров подходящих не нашел, а так азы изучаю.

...

Это удивительно - примеров по VB - тысячи...

Посмотрите специализированные сайты по VB и VBA.

Например тут:

<noindex>http://bbs.vbstreets.ru/</noindex>

<noindex>http://www.sql.ru/forum/actualtopics.aspx?bid=22</noindex>

<noindex>http://www.google.ru/custom?hl=ru&inla...%E5%ED%ED%EE%EC</noindex>

Можно еще сделать поиск по фразе типа "VBA в Excel"...

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

Например как из 1 ячейки считать всю надпись, и дописать то, что надо только после определенной инфо, которая тоже меняется?

Я опишу алгоритм словами а Вы уже сами переведети в программный код, заодно и потренеруетесь.

Во первых у вас должен быть массив "определенной инфо, которая тоже меняется" где перечисленны все возможные варианты - назовем его "Массив".

Берем надпись из ячейки

Смотрим есть ли вхождение в надпись элемента Массива (сначала первого, потом второго и так далее)

Если есть то

..................разделяем надпись на две части: первая -все что до вхождения, вторая - все остальное.

..................записываем в ячейку = первая часть + то что надо дописать + вторая часть

..................выходим

Если нету то переходим на след элемент массива.

Если все элементы масива перебраны то выходим.

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

Я опишу алгоритм словами а Вы уже сами переведети в программный код, заодно и потренеруетесь.

Во первых у вас ...

Вот мой ранний пример(набросок), когда я этим занимался:

to_kobold.zip

Исполняемый файл: `XLS_v3_WS2007.exe`. Если какие ошибки будут, то надо иметь VB и запускать файл `SP_XLS_WS2007.vbp` (можно прямо из ТС).

А так, весь код в файлах " *.bas "...

Ну и желательно изучить работу этой программки в пошаговом режиме(`F8`).

А также изучить систему адресации к ячейкам таблицы Excel...

Например:

"Public Sub ExpExcel()

'======================================================= иициализация Excel

If xl Is Nothing Then

Set xl = CreateObject("Excel.Application")

Else

Set xl = GetObject(, "Excel.Application")

End If

xl.Visible = True

fileTMPL = "C:\Program Files\SolidWorks\data\templates\SpA4_1.xlt" ' проверка есть ли шаблон

'''' fileTMPL = "F:\Program Files\SolidWorks\data\templates\SpA4_1.xlt"

If Dir(fileTMPL) <> "" Then

Set wb = xl.Workbooks.Add(fileTMPL)

Else

Set wb = xl.Workbooks.Add

MsgBox "Файл шаблона не найден!", , "Error587!"

Set xl = Nothing

Exit Sub

End If ' нет шаблона - завершение работы!

On Error Resume Next

Set ws = wb.Worksheets("Sheet1")

Set ws = wb.Worksheets("Лист1")

'======================================================= иициализация Excel END

'======================================================= запсиь в Excel

ws.Range("B1").Value = "Comp Name from FM" <<<<====заполнение ячеек Excel`a

ws.Range("C1").Value = "Configuration"

ws.Range("D1").Value = "File of compоnent"

ws.Range("E1").Value = "Quantity"

ws.Range("F1").Value = "Pid"

............

"

Чтобы считать значение ячейки, нужно указать ее адрес (например "B1") и выполнить:

val1=ws.Range("B1").Value <= считывание

val1=val1+".Изменено!"

ws.Range("B1").Value = val1 <= заполнение ячейки...

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • clavr
      все так и было до 2024 версии. размеры не импортировались. теперь вот в 2024 так нельзя. может где-то в настройках поменять что нужно? все перерыл, пока не нашел
    • arsenev
      Первый свободный номер инструмента   int list $toolnumblist = extract(folder('TOOL'), 'Tool.Number.Value') int $newToolNumb = 1 while member( $toolnumblist, $newToolNumb) {     $newToolNumb = $newToolNumb + 1 } Message Info 'Первый свободный номер инструмента - ' + $newToolNumb     Инструменты с повторяющимися номерами   int list $toolnumbers = extract(folder('tool'),'Number.Value') int $i = remove_duplicates($toolnumbers) string $op = '' foreach $n in $toolnumbers {     string list $names = extract(filter(folder('tool'),'this.Number.Value == "' + $n + '"'),'Name')     if size($names) > 1 {         $op = $op + 'Инструменты с повторяющимся номером T ' + $n + CRLF         foreach $name in $names {             $op = $op + $name + CRLF         }         $op = $op + CRLF     } } message info $op     Удаление выбранного   Макрос, который проверяет тип объекта, а затем позволяет выбрать один и удалять выбранные части. Я связал это с ctrl+d.   string list $rootTypes = {'toolpath','featureset','pattern','boundary','model'} string list $selectedTypes = {} foreach $rt in $rootTypes {     if entity_exists(entity($rt,'')) {         entity $ent = entity($rt,'')         if number_selected($ent.RootType, $ent.Name) > 0 {             int $i = add_last($selectedTypes,$rt)         }     } } if size($selectedTypes) <= 0 {     return } int $index = -1 if size($selectedTypes) == 1 {     $index = 0 } else {     $index = input choice $selectedTypes 'Wich Type to remove?' } if $index != -1 {     String $cmd = 'DELETE ' + $selectedTypes[$index] + ' "' + entity($selectedTypes[$index],'').Name + '" SELECTED'         DoCommand $cmd }
    • PETR_1
      Можно переназначить правую и центральную (колесо) кнопки с помощью бесплатной программы X-Mouse Button Control (есть портабельная версия). Это переназначение будет работать только для компаса.
    • Kelny
      Может изменяемый вами размер импортирован из модели?  Обычно переносилось удержанием левой кнопки мыши, а если сделать двойной клик, то нужно потом выбрать новый объект уже без удержания кнопок мыши.
    • Kelny
      Отключить галочки режима большой сборки. Инструменты-Параметры...-Настройки пользователя-Сборки
    • brigval
      Если не прописали, значит считается, что производственный процесс их изготовления гарантирует качество, достаточное для присвоения литеры. Можно и так посмотреть.   Между прочим, пред вынесением Решения о присвоении литеры проходит "испытания" весь комплект  КД. Разрешат вам не предъявлять часть КД на проверку? Спросите у НК.   И все-таки, если есть Решение о присвоении литеры, надо прочитать, что там сказано. Как сформулировано. Возможно, это снимет все вопросы.
    • cepr
      Есть в Компасе возможность построения зубчатого колеса с углом профиля не 20гр., а 25гр?
    • shishov32
      В ТУ не прописали про испытания КМЧ и упаковки, отсюда все пошло. 
    • clavr
      подскажите: как в солиде 2024 в чертеже перепривязать точку размера к другому элементу? раньше достаточно было выделить размер, точку привязке и удерживая ПКМ перенести к другому элементу. теперь это не работает   По справке сделать не получается( просто быстрые привязке не подсвечиваются https://help.solidworks.com/2024/russian/SolidWorks/sldworks/c_moving_dimension_leadersOH.htm  
    • BSV1
      КМЧ бывают разные. Если КМЧ состоит из одних стандартных болтов, например, то может испытания и не требуются. Если же КМЧ состоит из изделий собственной разработки, то почему их не надо испытывать? Что касается упаковки, то есть ГОСты на тару. Например: 80071.pdf ГОСТ Р 53775-2010 Упаковка. Испытание на штабелирование при статической нагрузке ГОСТ 18211-2018. Упаковка транспортная. Метод испытания на сжатие  gost-9142-2014.pdf  Есть еще испытания изделий в упаковке, которые подразумевают, в том числе, и испытание самой упаковки. Проверяться изделия в упаковке могут на транспортную тряску, удары, падения, климат. При этом упаковка должна обеспечить сохранность изделия. Есть еще вопросы консервации. Как же без испытаний?   Странный у вас нормоконтролер.    
×
×
  • Создать...