Просмотр полной версии : VBA (Visual Basic for Applicaton)
Вообщем кто программирует на VBA (Visual Basic for Applicaton) в Office 2000,XP,2003 отзавитесь. Нужны доки по VBA (Visual Basic for Applicaton) по построению диаграмм и разработке приложений с помощью VBA (Visual Basic for Applicaton) для Excel. Можно на англицком. Нужен програмист который программирует на VBA для консультаций.
...по построению диаграмм и разработке приложений с помощью VBA (Visual Basic for Applicaton) для Excel...
Нет ничего проще: записывай макрос, читай код, понять его несложно, применяй к поставленной задаче.
Нужен програмист который программирует на VBA для консультаций.
За вознаграждение или бескорыстно? ;)
Нет ничего проще: записывай макрос, читай код, понять его несложно, применяй к поставленной задаче.
Это мало что дает, я это уже пробовал. Нужна подробная инфа со всеми тонкостями.
За вознаграждение или бескорыстно?
Если чел реально спец в VBA и нет ему равных в Чебоксарах, то за вознагрождение, а если программист широкого профиля и узкими знаниями, то бескорыстно. Поскольку сляпать простую вещь любой может, а вот по серьезнее со всеми тонкостями разработки уже еденицы.
Может кто нибудь видел в Чебоксарах литературу по VBA не менее чем с 1000 страниц. Если да, то где? Надо срочно.
Это мало что дает, я это уже пробовал. Нужна подробная инфа со всеми тонкостями.
Приведи пример конкретной задачи, которую тебе не удалось решить с помощью промотра кода макроса, помогу чем смогу.
Приведи пример конкретной задачи, которую тебе не удалось решить с помощью промотра кода макроса, помогу чем смогу.
Случайно не знаешь:
1) Как сделать чтобы UserForm в Excel при открытии файла запускалась автоматически и на весь экран монитора.
2) Как в Image загнать диаграмму. Забыл как все это делается.
Случайно не знаешь:
1) Как сделать чтобы UserForm в Excel при открытии файла запускалась автоматически и на весь экран монитора.
2) Как в Image загнать диаграмму. Забыл как все это делается.
1. в среде VBA в окне Projeсt находишь объект "Эта книга" и в его коде набираешь следующее:
Private Sub Workbook_Activate()
* UserForm1.Show
End Sub
Сохраняешь, запускаешь - форма отображается (макросы должны быть разрешены разумеется)
На всякий случай вот проект:
ftp://rygred.cheb.ru/Upload/VBA.xls
2. Допустим, диаграмму создаёшь в коде, пишешь вот эту строчку ActiveChart.CopyPicture и её изображение копируется в буфер, остаётся его оттуда вытащить и вставить в Image (объект Clipboard что-то в Excel'e не работает :-/).
1. в среде VBA в окне Projeсt находишь объект "Эта книга" и в его коде набираешь следующее:
Код:Private Sub Workbook_Activate()
UserForm1.Show
End Sub
Сохраняешь, запускаешь - форма отображается (макросы должны быть разрешены разумеется)
Форма то запускается при открытии это да, но у меня там есть кнопки которые выполняют определенную задачу. При нажатии на кнопку код выполняется без ошибок его резултат работы выходит на Лист1 и выскакивает ошибка вот здесь
Код:Private Sub Workbook_Activate()
-> UserForm1.Show
End Sub
В чем ошибка не понял. Если без UserForm1.Show запускаю форму вручную из VBA все работает. А как UserForm на весь экран развернуть или его масштаб менялся в зависимости от разрешения экрана.
2. Допустим, диаграмму создаёшь в коде, пишешь вот эту строчку ActiveChart.CopyPicture и её изображение копируется в буфер, остаётся его оттуда вытащить и вставить в Image (объект Clipboard что-то в Excel'e не работает ).
Этот метод мне не подходит так как я вид диаграммы меняю из выпадающего списка динамически. Захотел изменить вид диаграммы выбрал другой все изменилось. А твой метод только копирует изображене диаграммы. Нужно что-то типа внутри изменялось как будто типа через OLE-контейнер работаешь.
Форма то запускается при открытии это да, но у меня там есть кнопки которые выполняют определенную задачу. При нажатии на кнопку код выполняется без ошибок его резултат работы выходит на Лист1 и выскакивает ошибка вот здесь
Код:Private Sub Workbook_Activate()
-> * UserForm1.Show
End Sub
В чем ошибка не понял. Если без UserForm1.Show запускаю форму вручную из VBA *все работает. А как UserForm на весь экран развернуть или его масштаб менялся в зависимости от разрешения экрана.
Тогда попробуй так:
Private Sub Workbook_Open()
* UserForm1.Show
End Sub
Чтобы определить разрешение экрана используй WinAPI:
Option Explicit
*
* Private Type RECT
* * *Left As Long
* * *Top As Long
* * *Right As Long
* * *Bottom As Long
* End Type
*
* Private Declare Function GetDesktopWindow Lib _
* * *"user32" () As Long
* Private Declare Function GetWindowRect Lib "user32" _
* * *(ByVal hWnd As Long, lpRect As RECT) As Long
*
* Public Function ScreenWidth() As Single
* * *Dim R As RECT
* * *GetWindowRect GetDesktopWindow(), R
* * *ScreenWidth = R.Right * Screen.TwipsPerPixelX
* End Function
*
* Public Function ScreenHeight() As Single
* * *Dim R As RECT
* * *GetWindowRect GetDesktopWindow(), R
* * *ScreenHeight = R.Bottom * Screen.TwipsPerPixelY
* End Function
Правда объект Screen в VBA почему-то не работает, так что подставь вместо Screen.TwipsPerPixelX и Screen.TwipsPerPixelY, константы, значения которых посмотри, выполнив в VB
MsgBox Screen.TwipsPerPixelX
MsgBox Screen.TwipsPerPixelY
мне кажется, всё равно будет работать так как надо; узнав разрешение, устанавливаешь размеры формы под размеры экрана.
Этот метод мне не подходит так как я вид диаграммы меняю из выпадающего списка динамически. Захотел изменить вид диаграммы выбрал другой все изменилось. А твой метод только копирует изображене диаграммы. Нужно что-то типа внутри изменялось как будто типа через OLE-контейнер работаешь.
Почему же не подходит: пользователь выбирает вид диаграммы, она меняется на листе, затем копируешь её в буфер и вставляешь в Image, если пользователь опять изменит тип диаграммы - проделываешь эти действия снова.
Все что хотел сделал, нашел в книжках. Спасибо за помощь.
Работает на vBulletin® версия 3.7.2. Copyright ©2000-2008, Jelsoft Enterprises Ltd. Перевод: zCarot