PDA

Vollständige Version anzeigen : Abschnitt schützen in Word 2007


BA_LI
17.08.2009, 15:19
Hallo,

wie kann ich einen Abschnitt in Word 2007 schützen. In der Registerkarte Entwicklertools gibt es zwar Dokument schützen, finde dort jedoch keine Funktion um den Abschnitt (Abschnittsumbruch fortlaufend) zu schützen.

Bin echt am verzweifeln und hab das ganze auch schon mal gegoogelt.

Vielen Dank im Voraus.

Gruß
BA_LI

peppi
17.08.2009, 15:24
Hallo,

wenn Du Dokument schützen ausgewählt hast, kannst Du im zweiten Abschnitt der Taskpane auswählen, daß Formularfelder ausgefüllt werden dürfen, und dann findest Du darunter den Text Abschnitte als Link. Da mußt Du draufklicken und die entsprechenden Abschnitte aus- oder abwählen...
<br>

BA_LI
17.08.2009, 15:36
Thank you. :)

BA_LI
17.08.2009, 16:40
Gibt vielleicht noch eine Möglichkeit die AutoFormen (Shapes) zu enabeln?

Habe es damit versucht:

ActiveDocument.Sections(1).ProtectedForForms = True
ActiveDocument.Sections(2).ProtectedForForms = False
ActiveDocument.Protect(Word.WdProtectionType.wdAllowOnlyFormFields, False, "MyPassword")
ActiveDocument.CommandBars("Shapes").Protection = Microsoft.Office.Core.MsoBarProtection.msoBarNoProtection


Oder gibt es noch einen anderen Weg der zum Ziel führt?

peppi
17.08.2009, 18:04
Hallo,

sorry, aber ich verstehe nur Bahnhof... Wozu sind die Autoformen da??
<br>

BA_LI
17.08.2009, 19:21
Hi Peppi,

Autoformen sind die Legenden, Sprechblassen, Pfeile usw. In 2007 zu finden auf dem Reiter einfügen unter Formen. Die Formen sind jedoch disabled, wenn man den Schutz anwendet. :(

Ob es wohl einen Weg gibt, dass der Button enabled wird?

Vielen Dank...

Hotte
17.08.2009, 19:30
Hi,

kurz und kanpp - nein. Wenn Du den Dokumetnschutz anwendest - wenn auch nur für einzelne Abschnitte - bleibt trotzdem das gesamte Dokument geschützt - und damit alle entsprechenden Funktionen inaktiv.

Man könnte ggf. was mit Ribbons (also Symbolleisten in alt-word) udn VBa machen. Aber da komt es darauff an, was Du wie damit machen willst.

So einfach den Teil im Ribbon kannst Du nicht beeinflusen...

PapaSchlumpf
17.08.2009, 19:31
nein, das gehört zu den Einschränkungen des Formularschutzes.
(außer alles in VBA/XML nachzuprogrammieren....)

PS

Hotte
17.08.2009, 19:35
@PS: ich war schneller .....:grins:

BA_LI
17.08.2009, 19:41
Hallo Hotte,
schön wieder von Dir zu hören, war ja schon seit 2 Jahren nicht mehr on.

S... das habe ich befürchtet. F... Word...

Was ich noch probiert habe war:

ActiveDocument.Fields(1).Locked = False
ActiveDocument.Protect(Word.WdProtectionType.wdAllowOnlyFormFields, False, "MyPassword")


Das Feld wird nicht geschützt und kann gelöscht werden.
Wie kann ich ein Feld schützen und vor löschen schützen, geht das vielleicht?

Oder gibt es sogar eine Möglichkeit Tables zu disablen?

Vielen Dank...

Hotte
18.08.2009, 09:24
Hi,

... also Du kannst das alles nur über die Abschnitte hinbekommen. Anders wird das nicht möglich sein.

Was ist das denn für ein "Feld"? Denn so wie Du schützt können Formularfelder bearbeitet werden....

Auch mit Tabellen kanst Du das nicht machen.

BA_LI
18.08.2009, 10:14
Hallo mein lieber Hotte,

das Feld ist einfach nur die Überschrift, die ich schützen möchte da diese über einen Dialog generiert wird und in einer Variable gespeichert wird.

Im Moment wir die Überschrift in ein Bookmark-Range geschrieben.

Hat man vielleicht die Möglichkeit, noch auf das Range nach dem Befüllen zuzugreifen, um die Änderung vom Benutzer zu vergleichen?

Problem an der Geschichte ist jedoch, dass der Benutzer wahrscheinlich auch die Möglichkeit hat die Bookmarks zu löschen oder nicht?

Wen es noch interessiert, habe mir gestern mit nem StreamReader alle CommandBars rausgeschrieben:
Name;NameLocal
Standard;Standard
Formatting;Format
Tables and Borders;Tabellen und Rahmen
Database;Datenbank
Drawing;Zeichnen
Forms;Formular
Web;Web
XML Structure;XML-Struktur
Restrict Formatting and Editing;Formatierung und Bearbeitung einschränken
Styles;Formatvorlagen
Full Screen;Ganzer Bildschirm
Edit Picture;Grafik bearbeiten
Visual Basic;Visual Basic
Stop Recording;Aufzeichnung beenden
Mail Merge;Seriendruck
Master Document;Zentraldokument
Microsoft;Microsoft
Header and Footer;Kopf- und Fußzeile
Outlining;Gliederung
Print Preview;Seitenansicht
Word for Windows 2.0;Word für Windows 2.0
Read Mail;Nachricht lesen
Send Mail;E-Mail senden
Extended Formatting;Erweiterte Formatierung
AutoText;AutoText
WordArt;WordArt
3-D Settings;3D-Einstellungen
Shadow Settings;Schatteneinstellungen
Picture;Grafik
Drawing Canvas;Zeichenbereich
Organization Chart;Organigramm
Diagram;Diagramm
Reviewing;Überarbeiten
AutoSummarize;AutoZusammenfassen
Exit Design Mode;Entwurfsmodus beenden
Control Toolbox;Steuerelement-Toolbox
Text Box;Textfeld
Outlook Read Mail;Outlook-E-Mail lesen
Outlook Send Mail;Outlook-E-Mail senden
Function Key Display;Funktionstastenanzeige
Web Tools;Webtools
Word Count;Wörter zählen
Japanese Greetings;Japanische Grußformeln
Menu Bar;Menüleiste
&Legacy Keyboard Support;&Legacytastaturunterstützung
Refresh;Aktualisieren
Frames;Frames
E-mail;E-Mail
Full Screen Reading;Vollbild-Lesemodus
Document Layout;Dokumentlayout
Compare Side by Side;Nebeneinander vergleichen
Ink Drawing and Writing;Freihandzeichnung und -schrift
Ink Annotations;Freihandanmerkungen
Ink Comment;Freihandkommentar
Property Editor;Eigenschaften-Editor
Research;Recherchieren
Task Pane;Aufgabenbereich
Office Clipboard;Office-Zwischenablage
XML Source;XML-Quelle
XML Document;XML-Dokument
Signatures;Signaturen
Document Actions;Dokumentaktionen
Clip Art;ClipArt
Selection and Visibility;Auswahl und Sichtbarkeit
Document Management;Dokumentverwaltung
Document Updates;Dokumentaktualisierungen
Mail Merge Panes;Seriendruckbereiche
Fax Service;Faxdienst
Meeting Workspace;Besprechungsarbeitsbereich
Attachment Options;Anlagenoptionen
Drop Caps;Initial
Endnotes;Endnoten
Fields;Felder
Display Fields;Felder anzeigen
Field Display List Numbers;Feldanzeige für Listenzahlen
Form Fields;Formularfelder
Footnotes;Fußnoten
Frames;Positionsrahmen
Headings;Kopfzeilen
Linked Headings;Verknüpfte Überschriften
Script Anchor Popup;Skriptanchor-Popupmenü
Lists;Listen
Inline Picture;Inlinebild
Inline Canvas;Inlinezeichenbereich
Horizontal Line Popup;Popupmenü: Horizontale Linie
Tables;Tabellen
Table Cells;Tabellenzellen
Table Headings;Tabellenüberschriften
Table Lists;Tabellenlisten
Table Pictures;Tabellengrafiken
Table Text;Tabellentext
Whole Table;Ganze Tabelle
Linked Table;Verknüpfte Tabelle
Text;Text
Word Previewer;Word-Vorschau
Linked Text;Verknüpfter Text
Font Popup;Untermenü Schrift
Font Paragraph;Absatzschriftart
Format Inspector Popup in Normal Mode;Format Inspector Popup in Normal Mode
Format Inspector Popup in Compare Mode;Format Inspector Popup in Compare Mode
Spelling;Rechtschreibung
Grammar;Grammatik
Grammar (2);Grammatik (2)
Format consistency;Konsistenz formatieren
Background Proofing Status Bar;Statusleiste für Rechtschreibprüfung im Hintergrund
Track Changes;Änderungen nachverfolgen
Frame Properties;Frameeigenschaften
Hyperlink Context Menu;Hyperlink-Kontextmenü
AutoSignature Popup;AutoSignaturmenü
Field AutoText;AutoText-Feld
Document Map;Dokumentstruktur
Shapes;Formen
Curve;Krümmen
Curve Node;Knoten krümmen
Curve Segment;Kurvenabschnitt
Floating Picture;Unverankerte Grafik
Canvas Popup;Canvas Popup
OLE Object;OLE-Objekt
ActiveX Control;ActiveX-Steuerelement
WordArt Context Menu;WordArt-Kontextmenü
Rotate Mode;Drehungsmodus
Comment;Kommentar
Organization Chart Popup;Organization Chart Popup
Diagram;Diagramm
Connector;Verbindung
Track Changes Indicator;Überarbeitungsanzeige
Chinese Translation;Chinesische Schriftumwandlung
Address Block Popup;Address Block Popup
Greeting Line Popup;Greeting Line Popup
Inline ActiveX Control;Inline-ActiveX-Steuerelement
XML Structure Node Popup;XML Strukturknoten-Popup
XML Error Options;XML-Fehleroptionen
Ink Comment;Freihandkommentar
Business Card;Visitenkarte
Equation Popup;Formelpopup
Header Area Popup;Kopfzeilenbereich-Popup
Footer Area Popup;Fußzeilenbereich-Popup
Text;Text
Tables;Tabellen
Table Cells;Tabellenzellen
Table Lists;Tabellenlisten
Table Pictures;Tabellengrafiken
Table Text;Tabellentext
Whole Table;Ganze Tabelle
Linked Table;Verknüpfte Tabelle
Lists;Listen
Hyperlink Context Menu;Hyperlink-Kontextmenü
AutoShapes;AutoFormen
Callouts;Legenden
Flowchart;Flussdiagramm
Block Arrows;Blockpfeile
Stars & Banners;Sterne & Banner
Lines;Linien
Basic Shapes;Standardformen
Connectors;Verbindungen
Fill Color;Füllfarbe
Insert Shape;Form einfügen
Line Color;Linienfarbe
Drawing and Writing Pens;Zeichnungs- und Schreibstifte
Annotation Pens;Anmerkungsstifte
Drawing and Writing Pens;Zeichnungs- und Schreibstifte
Annotation Pens;Anmerkungsstifte
Align or Distribute;Ausrichten oder verteilen
Rotate or Flip;Drehen oder kippen
Order;Reihenfolge
Nudge;Präzisionsausrichtung
Borders;Rahmen
Font Color;Schriftfarbe
Shading Color;Schattierungsfarbe
Cell Alignment;Zellausrichtung
Text Wrapping;Textfluss
Clipboard;Zwischenablage
Envelope;Umschlag
System;System
Online Meeting;Onlinebesprechung
Status Bar;Statusleiste
Ribbon;Ribbon

BA_LI
19.08.2009, 14:25
Hallo Hotte,

ich binde Word als Object in meine VB.Net (2008)-App ein.

Habe vorerst eine Zwischenlösung gefunden, wie ich die erste Zeile auslesen kann bevor das Dokument geschlossen wird.

Erstmal zur Vorgeschichte: Ich fülle mittels eines FormDialogs die Überschrift in ein Bookmark in eine Vorlage. Der Benutzer darf die Vorlage editieren, jedoch nicht die Überschrift!

Hier der Code (Example in VB) zur Überprüfung, ob die Überschrift geändert wurde:

Private Sub appWord_DocumentBeforeClose(ByVal Doc As Microsoft.Office.Interop.Word.Document, ByRef Cancel As Boolean) Handles appWord.DocumentBeforeClose
Me.appWord.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
If Me.CorrectHeader() Then
Me.DocumentSave(True)
Else
MessageBox.Show(String.Format("Bitte korrigieren Sie die Überschrift in {0} um!", Me.DocName), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
Clipboard.SetText(Me.DocName)
Cancel = True
End If
End Sub
Private Function CorrectHeader() As Boolean
Dim FirstRow As String = Me.docWord.Range.Text.Split(Environment.NewLine()).First()
FirstRow = FirstRow.Replace("À, "")

If Not String.IsNullOrEmpty(FirstRow) AndAlso Me.DocName = FirstRow Then
Return True
End If
Return False
End Function


Ist zwar noch nicht ganz optimal, aber der Benutzer wird die Überschrift nie wieder ab ändern!