Имя: Пароль:
IT
 
Вопрос знатокам Visual Basic по написанию макросов в Ворде
0 s-pc
 
06.08.11
19:56
Помогите, пожалуйста разобраться вот в этой инструкции - http://code128.narod.ru/
В частности, застрял на пункте 3.2. Вставка штрихкодов в файлы Microsoft Word (я не спец ни по VB, ни по написанию макросов в ворде).
Мне нужно чтобы просто по нажатию нужной кнопки в правом верхнем углу вордовского документа появлялся (формировался) штрихкод - вполне пойдет обычный EAN13 (для внутреннего пользования). Эта утилита и позволяет это делать (если выполнить пункты 3.2. инструкции)?
Если да, то .. можете чуток подробнее (пошагово) расписать, ЧТО все таки мне нужно для это сделать?
1 big
 
06.08.11
20:03
емэйл покажи свой. Есть примеры, а выслать некуда
2 s-pc
 
06.08.11
20:04
(1) tutan@bk.ru
3 big
 
06.08.11
20:08
(2) хмм... оказывется по сылке в (0) это тоже самое.


Собссно, надо изучать VBA. Тут в два тыка не обойдется.

з.ы. моделировать ситуацию нет никакого желания. Пардон.
4 Torquader
 
06.08.11
21:21
"Что может быть непонятного в этой формуле" (с)

Собственно, в шрифте или кодирование штрихами определённых знаков или просто две полоски - чёрная и белая.
Далее, нужно из кода штрихкода (тех цифр, которые он кодирует) собрать строку, которая описывает штрихи, которые нужно отобразить в ячейке - далее в ячейку вставляем это содержимое и выбираем шрифт, который выводит штрих-код.
Всё очень просто.
P.S. я в Excel штрих-код через объект Диаграмма рисовал - вот там действительно нужно попотеть.
5 дущ
 
06.08.11
22:01
Public Function ean13$(chaine$)
 'Cette fonction est r?gie par la Licence G?n?rale Publique Amoindrie GNU (GNU LGPL)
 'This function is governed by the GNU Lesser General Public License (GNU LGPL)
 'V 1.1.1
 'Param?tres : une chaine de 12 chiffres
 'Parameters : a 12 digits length string
 'Retour : * une chaine qui, affich?e avec la police EAN13.TTF, donne le code barre
 '         * une chaine vide si param?tre fourni incorrect
 'Return : * a string which give the bar code when it is dispayed with EAN13.TTF font
 '         * an empty string if the supplied parameter is no good
 Dim i%, checksum%, first%, CodeBarre$, tableA As Boolean
 ean13$ = ""
 'V?rifier qu'il y a 12 caract?res
 'Check for 12 characters
 If Len(chaine$) = 12 Then
   'Et que ce sont bien des chiffres
   'And they are really digits
   For i% = 1 To 12
     If Asc(Mid$(chaine$, i%, 1)) < 48 Or Asc(Mid$(chaine$, i%, 1)) > 57 Then
       i% = 0
       Exit For
     End If
   Next
   If i% = 13 Then
     'Calcul de la cl? de contr?le
     'Calculation of the checksum
     For i% = 12 To 1 Step -2
       checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
     Next
     checksum% = checksum% * 3
     For i% = 11 To 1 Step -2
       checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
     Next
     chaine$ = chaine$ & (10 - checksum% Mod 10) Mod 10
     'Le premier chiffre est pris tel quel, le deuxi?me vient de la table A
     'The first digit is taken just as it is, the second one come from table A
     CodeBarre$ = Left$(chaine$, 1) & Chr$(65 + Val(Mid$(chaine$, 2, 1)))
     first% = Val(Left$(chaine$, 1))
     For i% = 3 To 7
       tableA = False
        Select Case i%
        Case 3
          Select Case first%
          Case 0 To 3
            tableA = True
          End Select
        Case 4
          Select Case first%
          Case 0, 4, 7, 8
            tableA = True
          End Select
        Case 5
          Select Case first%
          Case 0, 1, 4, 5, 9
            tableA = True
          End Select
        Case 6
          Select Case first%
          Case 0, 2, 5, 6, 7
            tableA = True
          End Select
        Case 7
          Select Case first%
          Case 0, 3, 6, 8, 9
            tableA = True
          End Select
        End Select
      If tableA Then
        CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(chaine$, i%, 1)))
      Else
        CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(chaine$, i%, 1)))
      End If
    Next
     CodeBarre$ = CodeBarre$ & "*"   'Ajout s?parateur central / Add middle separator
     For i% = 8 To 13
       CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(chaine$, i%, 1)))
     Next
     CodeBarre$ = CodeBarre$ & "+"   'Ajout de la marque de fin / Add end mark
     ean13$ = CodeBarre$
   End If
 End If
End Function

Copyright http://grandzebu.net
фонт качай отсюда http://grandzebu.net/informatique/codbar/ean13.ttf