Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение начальной точки координат и направления оси Y - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение начальной точки координат и направления оси Y (Макросы/Sub)
Изменение начальной точки координат и направления оси Y
cerber412 Дата: Четверг, 16.05.2019, 04:37 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 126
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Возник небольшой вопрос по начальной отметке координат - на листе экселя.

Имеется таблица с координатами точек.
И есть макрос - который за начальную отметку расстановки этих точек на листе - выбирает не верхний левый угол листа, а верхний левый угол фигуры "yAxis".

Скажите - как назначить для начала координат - не верхний левый угол фигуры "yAxis", а верхний левый угол фигуры "Овал 7", но так, чтобы ось Y здесь была бы направлена вверх ?

Пытался сам это сделать, но что-то у меня не получилось. Не хочет макрос - переназначать точку начала координат - с "yAxis", на другую фигуру.
К сообщению приложен файл: 6578658.xlsb(17.2 Kb)
 
Ответить
СообщениеЗдравствуйте.
Возник небольшой вопрос по начальной отметке координат - на листе экселя.

Имеется таблица с координатами точек.
И есть макрос - который за начальную отметку расстановки этих точек на листе - выбирает не верхний левый угол листа, а верхний левый угол фигуры "yAxis".

Скажите - как назначить для начала координат - не верхний левый угол фигуры "yAxis", а верхний левый угол фигуры "Овал 7", но так, чтобы ось Y здесь была бы направлена вверх ?

Пытался сам это сделать, но что-то у меня не получилось. Не хочет макрос - переназначать точку начала координат - с "yAxis", на другую фигуру.

Автор - cerber412
Дата добавления - 16.05.2019 в 04:37
bmv98rus Дата: Четверг, 16.05.2019, 11:45 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2165
Репутация: 368 ±
Замечаний: 20% ±

Excel 2013/2016
[vba]
Код
Option Explicit

Public Sub drawPoints()
    Dim xyTable As ListObject, xyData As Variant, iPoint As Long
    Dim x0 As Double, y0 As Double
    Dim xyPoint As ShapeNode, drawSheet As Worksheet, pPoint As Shape
    Set drawSheet = ActiveSheet
    With drawSheet.Shapes("Овал 7")
        x0 = .Left + .Width / 2
        y0 = .Top + .Height / 2
    End With
    Set xyTable = drawSheet.ListObjects("tpoints")
    xyData = xyTable.DataBodyRange.Value
    Set xyPoint = drawSheet.Shapes("yAxis").Nodes(1)
    For iPoint = 1 To UBound(xyData)
'        Set pPoint = drawSheet.Shapes.AddShape(msoShapeOval, _
'            xyPoint.Points(1, 1) - 0.5 + xyData(iPoint, 1), _
'            xyPoint.Points(1, 2) - 0.5 + xyData(iPoint, 2), 1, 1)
        Set pPoint = drawSheet.Shapes.AddShape(msoShapeOval, _
            x0 + xyData(iPoint, 1), _
            y0 - xyData(iPoint, 2), 1, 1)
        pPoint.Name = "myPoint" & CStr(iPoint)
    Next
End Sub
[/vba]


Замечательный медведь, процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 16.05.2019, 11:48
 
Ответить
Сообщение[vba]
Код
Option Explicit

Public Sub drawPoints()
    Dim xyTable As ListObject, xyData As Variant, iPoint As Long
    Dim x0 As Double, y0 As Double
    Dim xyPoint As ShapeNode, drawSheet As Worksheet, pPoint As Shape
    Set drawSheet = ActiveSheet
    With drawSheet.Shapes("Овал 7")
        x0 = .Left + .Width / 2
        y0 = .Top + .Height / 2
    End With
    Set xyTable = drawSheet.ListObjects("tpoints")
    xyData = xyTable.DataBodyRange.Value
    Set xyPoint = drawSheet.Shapes("yAxis").Nodes(1)
    For iPoint = 1 To UBound(xyData)
'        Set pPoint = drawSheet.Shapes.AddShape(msoShapeOval, _
'            xyPoint.Points(1, 1) - 0.5 + xyData(iPoint, 1), _
'            xyPoint.Points(1, 2) - 0.5 + xyData(iPoint, 2), 1, 1)
        Set pPoint = drawSheet.Shapes.AddShape(msoShapeOval, _
            x0 + xyData(iPoint, 1), _
            y0 - xyData(iPoint, 2), 1, 1)
        pPoint.Name = "myPoint" & CStr(iPoint)
    Next
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 16.05.2019 в 11:45
cerber412 Дата: Четверг, 16.05.2019, 19:26 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 126
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, спасибо.
 
Ответить
Сообщениеbmv98rus, спасибо.

Автор - cerber412
Дата добавления - 16.05.2019 в 19:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение начальной точки координат и направления оси Y (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!