PDA

Показать полную графическую версию : Задача пo Word


paul_8
18-12-2012, 23:26
Кто знает как сделать так: Ворд должен проверять правильность заполнения кроссворда, вывод об ошибке или успешном результате на ваш вкус.

Iska
19-12-2012, 00:07
paul_8, и в чём проблема?

paul_8
19-12-2012, 00:48
Iska, В том и проблема, что мы вводим ответы кроссвордов, а Ворд должен проверять верны ли ответы!

Iska
19-12-2012, 01:45
Куда именно вводим ответы?

Amiranchik
19-12-2012, 15:09
Мда, paul_8, вы как-то запутанно это всё объясняете, давайте ещё раз по-порядку.

paul_8
20-12-2012, 01:14
Amiranchik, в каждую ячейку вводится буква слова..

Amiranchik
20-12-2012, 01:24
paul_8, такую задачу, проделать легче и при этом грамотнее в MS Excel-е а не в MS Word-e, по крайней мере стандартными средствами.

Iska
20-12-2012, 05:12
paul_8, я не вижу на скриншоте ячеек. Вижу криво нарисованную сетку.

Выкладывайте образец документа.

paul_8
21-12-2012, 21:28
Amiranchik, Iska, Помогите пожалуйста решить эту олимпиадную задачу.. Конечно в Эксэле легче... Но задание нужно решить в Ворде, на рисунке в таблице, и таблицу нужно использовать!!

Iska
22-12-2012, 05:05
задание нужно решить в Ворде, на рисунке в таблице, и таблицу нужно использовать!! »
Повторяю:
Выкладывайте образец документа. »

paul_8
22-12-2012, 20:28
оIska, образец не выкладываю так как задания у меня нет.. В документе просто таблица в виде кроссворда вот и все... что сложного??

Iska
23-12-2012, 08:20
Ух… Третий раз говорю: выложите этот документ с таблицей.

paul_8
23-12-2012, 15:37
Вот

Iska
23-12-2012, 16:30
Держите:
Option Explicit

Sub ScanCrossword()
Dim objDictionary As Object
Dim objCell As Cell


Set objDictionary = CreateObject("Scripting.Dictionary")

With objDictionary
' 1-я строка
.Add 1, CreateObject("Scripting.Dictionary")

With .Item(1)
.Add 1, "Д"
.Add 2, "Е"
.Add 3, "Р"
.Add 4, "Е"
.Add 5, "В"
.Add 6, "О"
End With

' 2-я строка
.Add 2, CreateObject("Scripting.Dictionary")

With .Item(2)
.Add 1, "Е"
End With

' 3-я строка
.Add 3, CreateObject("Scripting.Dictionary")

With .Item(3)
.Add 1, "К"
End With
End With

If ThisDocument.Tables.Count > 0 Then
For Each objCell In ThisDocument.Tables.Item(1).Range.Cells
With objCell
If UCase(Left(.Range.Text, Len(.Range.Text) - 2)) <> UCase(objDictionary.Item(.RowIndex).Item(.ColumnIndex)) Then
MsgBox "Ошибка"

Exit Sub
End If
End With
Next

MsgBox "Успешный результат"
Else
MsgBox "Кто-то взял да и удалил кроссворд вместо его заполнения"
End If
End Sub

paul_8
23-12-2012, 21:06
Iska, куда вставлять код?

Iska
23-12-2012, 21:41
В Ваш документ.

Открыть документ. Нажать Alt-F11. Вставить код в модуль «ThisDocument» этого самого документа. Я не знаю, какой у Вас конкретно Office, 2007 или 2010.

Управление макросами с помощью редактора Visual Basic - Поддержка - Office.com (http://office.microsoft.com/ru-ru/help/HA001042959.aspx)
Getting Started with VBA in Word 2010 (http://msdn.microsoft.com/en-us/library/office/ff604039(v=office.14).aspx)

paul_8
23-12-2012, 21:58
Iska, конечно спасибо, но должен быть способ сделать проверку попроще! Ведь на олимпиаде запрещалось использовать VBA!!!

Iska
23-12-2012, 23:10
но должен быть способ сделать проверку попроще! Ведь на олимпиаде запрещалось использовать VBA!!! »
Как узнаете — расскажете нам?




© OSzone.net 2001-2012