Skip to content

Instantly share code, notes, and snippets.

View Surrogate-TM's full-sized avatar
🪗

Surrogate ™ Surrogate-TM

🪗
View GitHub Profile

Лечение "пятого колеса" в трафарете от immortal

Dim mSh As Shape, subSH As Shape, cln As String, clv As String
Sub bvv()
Set mSh = ActivePage.Shapes(1)
For Each subSH In mSh.Shapes
    If subSH.Type = visTypeShape Then FixFormula subSH
Next
MsgBox "TheEnd!!!"
End Sub
@Surrogate-TM
Surrogate-TM / ShapeSheet_Info.md
Last active November 29, 2023 08:08
Сборник полезный ссылок про таблицу свойств Visio

В данной заметке я привожу ряд полезных ссылок описывающих, что же такое таблица свойств (a.k.a. ShapeSheet) в MS Visio.

Официальные справочные материалы MS

Visio 2013/2016/2019/2021. ShapeSheet reference
Актуальная онлайн-версия документации не изменяестя начиная с версии Visio 2013!
Visio 2010. ShapeSheet reference
Онлайн-версия документации для версии Visio 2010
Visio 2007. ShapeSheet reference
Онлайн-версия документации для версии Visio 2007
Visio 2003. ShapeSheet reference
Онлайн-версия документации для версии Visio 2003

@Surrogate-TM
Surrogate-TM / fas.md
Last active August 30, 2023 08:26
Звонки спаммеров на мой номер

30.08.2023 11:07 С номера +7(499) 648-70-23 позвонил "капитан полиции Юрий Николаевич". Сказал, что на меня возбуждено уголовное дело по статье "мошенничество". Что уже арестовали сотрудников какого-то банка, которые выводили деньги через мой счет. Стал интересоваться давал ли я доступ к своим персональным данным на территории страны в течении последних 6 месяцев

29.08.2023 07:40 С номера +79910324751 звонила девушка. Представилась сотрудником агентства по минимизации долговой нагрузки. Спрашивала, моя долговая нагрузка превышает 250.000 рублей…

13.07.2023 11:01
Позвонила девушка с номера 89646238720 (принадлежит оператору Билайн), представилась сотрудником оператора Мегафон. Стала предлагать подключение к домашнему интернету/ТВ от Мегафон. По быстрому переключила на старшего менеджера Андрея, который стал выведывать мой адрес.

@Surrogate-TM
Surrogate-TM / CopySectionsUSA.md
Last active June 7, 2023 20:16
Копирование свойств из разделов User-defined cells, Shape Data и Actions

Цель

Код выполняет копирование содержимого разделов от одной фигуры к другой.
image
Переносятся разделы:

  • User-defined cells [U];
  • Shape Data (aka Custom properties) [S];
  • Actions [A].

Как применить

Последовательность действий

@Surrogate-TM
Surrogate-TM / open_group.md
Last active June 6, 2023 14:41
Открытие в дополнительном окне содержимого группы выделенной фигуры

Цель

Код должен открыть группу, выделенной фигуры рядом с основным окном документа.

Нюансы выполнения

Код может примениться к одиночной выделенной фигуре!
Для корректной работы были добавлены следующие этапы проверки:

  1. если пользователь нажал кнопку предварительно ничего не выделив, то выдается сообщение с просьбой выделить фигуру;
  2. если изначально выделено более одной фигуры: то фигура которая была выбрана первой остается, выделение остальных фигур отменяется (далее производится проверка, является ли сохранившая выделение фигура группой);
  3. если пользователь выделил фигуру не являющуюся группой, то выдается сообщение с просьбой выделить фигуру-группу.

Лучше пользователю лишний раз увидеть предупреждение, чем долго и упорно нажимать кнопки без результата (т.к. нет объекта для выполнения команд [1 этап] или к выделеному объекту данная команда не может быть применена [3 этап]).

@Surrogate-TM
Surrogate-TM / MakeGeometryAbsolute.md
Last active June 1, 2023 12:49
Замена формул в ячейках зависящих от длины/ширины фигур на их абсолютные значения в милиметрах.

Замена формул на значения в разделе Geometry

По долгу службы пришлось в разделах Geometry заменить формулы в ячейках содержащие относительные значения (вроде Width*0.5) на их абсолютные значения в милиметрах.

Sub MakeGeometryAbsolute()
Dim src As Shape    ' Declare Selected Shape variable
Dim gs_s%   ' Declare Geometry section quanaity variable
Dim S%    ' Declare Geometry section counter variable
Dim R%    ' Declare Row in Geometry section counter variable
Dim gsr%    ' Declare current rowtype value variable
Dim gr% ' Declare row quanaity variable
@Surrogate-TM
Surrogate-TM / ModifyGeometry.md
Last active May 31, 2023 09:58
Работа с разделом Geometry.

К этому разбору кода меня подтолкнула тема Аналог "копирки" в висио для создание фигур, взаимодействие.
Цель: научиться добавлять в целевую фигуру дополнительные разделы Geometry (visSectionFirstComponent), как в фигуре-образце.

Нижеследующий код получен при записи макрорекордером (добавлены комментарии/убраны UNDO).

Sub ModifyGeometry()
' Add new Geomtry section +1
    Application.ActiveWindow.Shape.AddSection visSectionFirstComponent + 1  ' Add new Geometry Section for Line
    Application.ActiveWindow.Shape.AddRow visSectionFirstComponent + 1, visRowComponent, visTagComponent  ' Add default settings Geometry
    Application.ActiveWindow.Shape.AddRow visSectionFirstComponent + 1, visRowVertex, visTagLineTo  ' Add default tag LineTo
@Surrogate-TM
Surrogate-TM / enelux.md
Last active January 19, 2024 20:25
Обсуждение "очередной итерации"

Контактор управляет группой автоматов

image

Требуется изменить условное обозначение контактора ?
Раньше был похож на обозначение рубильника внутри пунктирного прямоугольника. Теперь небольшой прямоугольник с диагональным отрезком внутри.

Развернуть спойлер Требуется изменить условное обозначение автомата ? _Раньше не было треугольника_.

В фигуру Аппарат можно добавить возможность переместить за желтую точку и притянуть ее к другому аппарату.

@Surrogate-TM
Surrogate-TM / GOST_2.104-2006.md
Last active April 21, 2023 21:28
Вопросы по оформлению документов по ЕСКД (ГОСТ 2.104-2006)

Чертежи, форма 1

image

  • Дополнительные надписи графы (24)-(25) должны быть на первом листе раздела
  • Дополнительные надписи графы (27)-(29) должны быть на первом листе раздела
  • Дополнительная надпись графа (34) должна быть на первом листе раздела
  • Дополнительная надпись графа (30) должна быть на первом листе раздела
  • Дополнительные надписи графы (24)-(25) должны быть на последующих листах раздела
  • Дополнительные надписи графы (27)-(29) должны быть на последующих листах раздела
  • Дополнительная надпись графа (34) должна быть на последующих листах раздела

Эта статья первоначально опубликована в блоге Геннадия Туманова (a.k.a. Croc) (19 января 2020).

image

Описание задачи. Шейп имеет два поля данных. Оба - фиксированные списки. Причем второй список зависит от того, какое значение выбрано в первом списке. По-существу, получается двух уровневый список в Shape Data.

Prop1 = value1; value 2; value 3 - первый список
Prop2= value1.1; value1.2; value1.3 - при Prop1 = value1
Prop2= value2.1; value2.2; value2.3 - при Prop1 = value2