Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2013, 10:48   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию Подсказки в Ворде

Здравствуйте, как в Ворде можно организовать подсказки, типа как в Вебе, навёл на выделенное неким образом место в тексте - высветилась подсказка??
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.02.2013, 17:28   #2
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

предположение: отслеживать координаты мыши и рисовать/перемещать автофигуры(?) в зависимости от них
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 25.02.2013, 18:17   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

nerv, а как отслеживать координаты мыши?
Скрипт вне форума Ответить с цитированием
Старый 25.02.2013, 18:35   #4
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

как отслеживать координаты мыши - и самое главное, что это как бы было запущено всегда и не жрало много ресурсов??
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.02.2013, 23:29   #5
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
а как отслеживать координаты мыши?
win api

Цитата:
как отслеживать координаты мыши - и самое главное, что это как бы было запущено всегда и не жрало много ресурсов??
судя по всему через таймеры

Вообще, ворд для этого не предназначен. Не удосужились разработчики соответствующие события дать. Видимо, посчитали, что программисту vba они ни к чему.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 26.02.2013, 05:33   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

win api
судя по всему через таймеры
есть пример кода?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 26.02.2013, 11:06   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

http://www.planetaexcel.ru/forum/ind...ID=1&TID=46176
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 26.02.2013, 11:11   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

лучше не гадать а спросить:
Всем доброго дня скажите, пожалуйста, можно ли решить такую задачу
1. есть эксель файл со сметой на товар
2. напротив каждого товара надо поставить типа его картинки. Все это сделать несложно
Только когда картинку вставляешь, она ставится широкой, т.е. клеточка сама широкая
пример:
http://s020.radikal.ru/i717/1302/fe/e422af05271ft.jpg

а можно ли ужать клеточку до нормальных размеров и чтобы при этом, когда наводишь мышкой на этот рисунок чтобы он увеличивался?
примерно, чтобы это выглядело так
http://s019.radikal.ru/i634/1302/44/05c1f245416bt.jpg
Подобное часто на сайтах встречается наводишь мышкой на очень маленькую картинку и она увеличивается.
надеюсь я вопрос понятно спросил;=))

О чём речь???, спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 26.02.2013, 11:21   #9
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

если речь о файле безопасность ставлю низкую - не запускается код, где в этом коде
соль нужная мне?
Код:
' ZVI:2008-09-12 http://www.planetaexcel.ru/forum.php?thread_id=5777
Option Explicit
Const Масштаб = 2     ' <--- Менять масштаб здесь
Const Скорость = 2    ' Скорость анимации
Dim DoStop As Boolean
Dim InZoom As Boolean
Type POINTAPI
  x As Long
  y As Long
End Type
Private Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINTAPI) As Long

' Запуск цикла
Private Sub RunRangeFromPoint()
  Dim obj As Object, OldPic As String, NewPic As String
  Dim cpos As POINTAPI
  InZoom = False
  On Error Resume Next
  With ActiveWindow
    Do
      If Not InZoom Then
        GetCursorPos cpos
        Set obj = .RangeFromPoint(cpos.x, cpos.y)
        Select Case TypeName(obj)
          Case "Picture":
                      NewPic = obj.Name
                      If OldPic <> NewPic Then Call ScalePic(OldPic, NewPic)
                      OldPic = NewPic
          Case Else:
                      Call ScalePic(OldPic)
                      OldPic = ""
        End Select
        DoEvents
      End If
    Loop Until DoStop
  End With
  Call ScalePic(OldPic)
  Application.StatusBar = ""
  Set obj = Nothing
End Sub

' Изменение масштаба рисунков: предыдущего (уменьшить) и нового (увеличить)
Private Sub ScalePic(OldPic As String, Optional NewPic As String)
  Dim i As Double, j As Double, w As Double, h As Double
  InZoom = True
  If Len(OldPic) > 0 Then
    ' Вернуть масштаб предыдущего рисунка
      With ActiveSheet.Shapes(OldPic)
        w = .Width
        h = .Height
        j = w / Масштаб
        While .Width > j
          .ScaleHeight 1 - 2 * Скорость / 100, msoFalse
          .ScaleWidth 1 - 2 * Скорость / 100, msoFalse
          DoEvents
        Wend
        .Width = w / Масштаб
        .Height = h / Масштаб
        .ZOrder msoSendToBack
      End With
    If Len(NewPic) = 0 Then Application.StatusBar = "Picture processing"
  End If
  If Len(NewPic) > 0 Then
    ' Установить масштаб текущего рисунка
    With ActiveSheet.Shapes(NewPic)
      w = .Width
      h = .Height
      j = w * Масштаб
      .ZOrder msoBringToFront
      While .Width < j
        .ScaleHeight 1 + Скорость / 100, msoFalse
        .ScaleWidth 1 + Скорость / 100, msoFalse
        DoEvents
      Wend
      .Width = w * Масштаб
      .Height = h * Масштаб
    End With
    Application.StatusBar = "Picture processing: " & NewPic
  End If
  InZoom = False
End Sub

' Кнопка Вкл/Откл
Sub StartStop()
  Dim i
  DoStop = Not DoStop
  For i = 1 To 10
    DoEvents
  Next
  If DoStop = False Then RunRangeFromPoint
End Sub

' Инициализация при згрузке
Private Sub Auto_Open()
  DoStop = True
End Sub
Ципихович Эндрю вне форума Ответить с цитированием
Старый 08.03.2013, 13:23   #10
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

всё очень просто
Код:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "AUTOTEXTLIST  Проба \t ""Я твоя подсказка"" ", PreserveFormatting:=True
осталось одно стереть весь автотекст - это как?
Там есть столбец в контекстном меню при наведении на поле и нажатии правой кнопки мыши
Страница
Авиаопочтой
………
Можно избавиться от этого столбца?
и желательно программно
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсказки alexey_kip Visual C++ 1 15.04.2012 13:25
в Ворде talismanv90 Паскаль, Turbo Pascal, PascalABC.NET 1 07.06.2010 00:05
Фрагмент в Ворде Syltan Microsoft Office Word 14 01.11.2009 18:54
закладки в ворде delphi7 Помощь студентам 9 17.07.2009 11:10
Подсказки Demien Общие вопросы Delphi 5 15.11.2007 16:51