ࡱ> 463oM bjbj==.WWl6 +6 E1j000000$2 4j000  rHh76 }80! 10E1V95 95 ,1h/ =!"#$% M bjbj==.WWl959555555 6 6666 +6 66jC6C6C6C6C6C6C6C6C6E6E6E6E6E6E6 8 *:E65C6C6C6C6C6E6 i<@< StandardCJ_HaJmH sH tH BA@B Absatz-StandardschriftartrOr AnswerWeightJ5@B*CJEHKHOJQJaJehfHphq rPOP BlankWord-5OJQJehfHq rJOJ Feedback 7^7B*CJOJQJmH phsH @Ob@ LeftPair ^CJOJQJmH sH RoBR MultipleChoiceQ x@&5OJQJmH sH XOBX WrongAnswer  & Fx!B*CJOJQJaJmH phsH <OAR< RightAnswer  & F B* phZO"Z RightPair!$q-DM ^qa$CJOJQJmH sH 4o1R4 ShortAnswerQ  & F4o14 MissingWordQ  & F.o1". MatchingQ  & F@o1@ TrueStatement  & F B* phBo1B FalseStatement  & F B*ph0o1R0 NumericalQ  & F  z0Johannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dotJohannes GschnaidnerXC:\Dokumente und Einstellungen\mosv55\Anwendungsdaten\Microsoft\Vorlagen\GIFT-Fragen.dot0rF %1\B k9]4XX6Hs5fh hh^h`hH.h P^`Po(hH..h ^`o(hH...h x^`xo(hH.... h  ^`o(hH ..... h  X@ ^ `Xo(hH ...... h  ^ `o(hH....... h 8x^`8o(hH........ h `H^``o(hH......... hh^h`OJQJo(o^`OJQJ^Jo(hHopp^p`OJQJo(hH@ @ ^@ `OJQJo(hH^`OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hH^`OJQJ^Jo(hHoPP^P`OJQJo(hHh hh^h`hH.h P^`Po(hH..h ^`o(hH...h x^`xo(hH.... h  ^`o(hH ..... h  X@ ^ `Xo(hH ...... h  ^ `o(hH....... h 8x^`8o(hH........ h `H^``o(hH.........h hh^h`OJQJo(oh pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(9]Hs%19]0r^<                 V. . V. . V. . V . . V . . V . . V . . V . . V . . V. . V. . V. . V . .  MoodleMoodle1K+1K+1K+1K+1K+0 (  StatementAdd True StatementGIFT.AddTrueStatement(p(??????????(  StatementAdd False StatementGIFT.AddFalseStatement( p((  MatchingQAdd Matching QGIFT.AddMatchingQ(  NumericalQAdd Numerical QGIFT.AddNumericalQ(  ShortAnswerQAdd Short Answer QGIFT.AddShortAnswerQb(  MissingWordQAdd Missing Word QGIFT.AddMissingWordQ1( BlankMark Blank WordGIFT.MarkBlankWord(wwwwwwzzz z z z z z zz p(p( MultipleChoiceQAdd Multiple Choice QGIFT.AddMultipleChoiceQ(     𪪪 𪪪p(w7?????( AnswerMark True AnswerGIFT.MarkTrueAnswer(***"" ""* """"     p(( WeightsSet Answer WeightsGIFT.SetAnswerWeightsh( Weights(Remove Answer Weights from The Selection(GIFT.RemoveAnswerWeightsFromTheSelection( p(?( FeedbackAdd Question FeedbackGIFT.AddQuestionFeedback( ExportExport to GIFTGIFT.ExportToGIFT Project.GIFT.AddFalseStatementProject.GIFT.AddMatchingQProject.GIFT.AddMissingWordQProject.GIFT.AddMultipleChoiceQProject.GIFT.AddNumericalQ Project.GIFT.AddQuestionFeedbackProject.GIFT.AddShortAnswerQProject.GIFT.AddTrueStatementProject.GIFT.ExportToGIFTProject.GIFT.MarkBlankWordProject.GIFT.MarkTrueAnswer0Project.GIFT.RemoveAnswerWeightsFromTheSelectionProject.GIFT.SetAnswerWeights PROJECT.GIFT.ADDMATCHINGQPROJECT.GIFT.EXPORTTOGIFTPROJECT.GIFT.ADDNUMERICALQPROJECT.GIFT.MARKBLANKWORD PROJECT.GIFT.MARKTRUEANSWER PROJECT.GIFT.ADDMISSINGWORDQ PROJECT.GIFT.ADDSHORTANSWERQ PROJECT.GIFT.ADDTRUESTATEMENT PROJECT.GIFT.SETANSWERWEIGHTSPROJECT.GIFT.ADDFALSESTATEMENTPROJECT.GIFT.ADDMULTIPLECHOICEQ PROJECT.GIFT.ADDQUESTIONFEEDBACK0PROJECT.GIFT.REMOVEANSWERWEIGHTSFROMTHESELECTION@|#P@UnknownGz Times New Roman5Symbol3& z Arial7&  Verdana?5 z Courier New;Wingdings"háFˡf0dy5k3QHP Mikko RusamaJohannes Gschnaidner iH@H Standard$CJ OJPJQJ_HaJ mH sH tH BA@B Absatz-StandardschriftartOh+'0 , H T ` lxss Mikko RusamaoikkikkGIFT-Fragen.dotJohannes Gschnaidner925aMicrosoft Word 9.0r@xA@@o @K%!՜.+,0 hp|  HUT  TitelTitle  !"$%&'()*,-./0125:89<=>]@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\;^_`abcdefghijklmnpqrstuvwxyz{|}~Root Entry Fg0!71Table*:WordDocument.SummaryInformation(#DocumentSummaryInformation8+Macros6/! !0!VBA 6/! 0 0!ThisDocument   !"#$%&'()*+,-./12345678:;<=@ABCDEGDrwJ#<j)C|>E Fq~uyFE +8pxq~uyFE +8pj)C|>EME(SLSS6"N0{00020906-0000-0000-C000-000000000046}(%H@h % %Xp@@0@E$*\Rffff*034541bfc94xAttribute VB_Name = "ThisDocument" Bas0{00020P906-0C$0046} |GlobalSpacFalse dCreatablPredeclaIdTru BExposeTemplateDerivBustomizD2rU 0Qy)4a`rU @n__SRP_2__SRP_3 BGIFT ?@__SRP_4 X@E*\R1*#d4$*\Rffff*064540bfc6*\R1*#17b*\R1*#c1*\R1*#c6*\R1*#1e*\R1*#a4*\R1*#129*\R1*#d4*\R1*#d9*\R1*#d6*\R1*#c1*\R1*#c6*\R0*#1*\R0*#14*\R1*#60*\R1*#123*\R1*#124*\R1*#43*\R0*#12*\R0*#f*\R0*#e*\R1*#d4*\R1*#b5*\R1*#d6*\R1*#be*\R1*#c1*\R1*#c6>*\G{000204EF-0000-0000-C000-000000000046}#4.0#9#..\..\..\..\..\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*#f*\R1*#d4*\R1*#d6*\R1*#d7*\R1*#129n  & @ \H \ ` bh X ( `0 ,  d b0 d f ^h   (D 2 L0D H ^P V 0 8 $@ $h   ,  @  ` Zh   B 0 8 fH   D \E PF P`E HE RhH  ? > N >@    C ,  0 H *`    &   &@ h $  &  $<? wBxME 0L> LLLLLLLLL*LL*LLLL*LLL<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<H37H PH"8H&`H*H ,H 08H 4@XH6@:H>H@(HDPHH0HJxHNHFeedbackN AnswerWeight P`k$$l p `>@h ****@X def@H def+ `kX ::I x ****I se s@h ck+ ` ) esti%  `X2,kX  !id x s fo) %  `4k  +i  que  `,,k@  6id ` rt a) nswe% 0 `  @id d quI  8)( 8**%  ` HHL@ e de@ 8**@ ****@ ****  `J  x ` P )p ki U%  ` )  G%I ****I ****  ` `I" )%StandardL {HH(H$xH(H.(H 2HH 8hhH<HBHFHLXH  PHhP   0 x P``(@  `X@x 8 0 x((%r @xl @\ @L MultipleChoiceQ RightAnswer WrongAnswer MatchingQLeftPair RightPair TrueStatementFalseStatement ShortAnswerQ NumericalQ MissingWordQ BlankWordMoodle_Questions_9Copyright 2004 SoberIT, Helsinki University of Technology}8 {T} {F} = # ~  -> ~% # `H0@< `hR@x @t @d @``@P @@ @(0 @ (@~" @x @t @Xd @T @D @(2r@Xl @p\ @L @< 0@pXhHRX:V^\df@x @v @d @T @D @4 @$ @ @ @ @Z (hjl8Zn%`(D%hp @ @ @  0``fz x@8 @@( 6R$0.@ @H @ @ ` @_  @ @ @ @ @( @X @ @p @x @h @X @H @`8 @( @ @0 @H @x @ @ @ @ *,24 @ 8(!h x @!p! X!P 8 !`z R60. X@ d @` @P @ @ @ 0 @ @  V$(&24*@ @ @! @ @ @X @ @! @ ,@ "(""# #8#`#X""p"`z"X"P#R@"d @` @P @@ @#0 @# @ x#8#@ ``#@# @ @ $$p$*r$0.6@$l @$\ @L @< %%%,r @@%l @%\ @L @< p&&&$r @&l @'\ @L @< '''0r@x@(l @(\ @L &J@< .rH3d@X7l )))`,`)))R@0)x @H)t @p lx)``%`)@)\ @)L @)< @*, @ * @8* @P* @h* @* @* @* @* @* @* @+| @(+l @@+\ @X+L @p+< @+, @+ @+ @+ @+ @, @, @0, @H, @ @ @ -H---p---8-`dx`- - t`-H-@p 4%l-`%-d@.\ AD@ .L R@< @, .(/p/X/@2(/./.`z /.H/@t p@/`x%(/@/` @/P @/@ @/0 @0 @0 @00 @H0 @`0 @x0 @0 @0 @0 @0 @0 @1p @ 1` @81P @P1@ @h10 @1 @1 @1 @1 @1 @1 @2 @(2 @ @ @ 2 3333P333`dx832 t-p3 3ph3`%P3@3` @3P @@ @0 @, @5444X54p5R>@(5x H@5h eh@X Ro@5H F@D 1.@4 J@0`ehX5r A@5 al@ H.h6P6~nt1@6x d@t ӡ`"@7H(0(@p7\ @L @< 5 X > 2X > &    F@ >  > (8HXhx >"  8'Hj2X*    8@H :P  8      )8 H *TP D3  F"82$@x >",$ @"@,$Hx B"0$ "(T$0 " H^X`  6"(@$0p 8x"@$ " >(8@AP8hx : " %% "(@ H X `h Zp X ^( V "30q 0q@ 0qp 0q 0q \ p"  8 ." *  :  "`B  +"        ((0 HX `(h     F F 8H"   * D  F D >-X p 0  p  2'` P  + "F D &8H G  !  !  ! 8! pX!  '!   !!!" "  "F F G " (" @" P" h"$x" "   " "." " 5" # ( # H# `# h#.# # 5# # .#  $ 0$ 4H$ $ $ $ *$.$  $  % * %.P% h% &% %.%  %$% &(&  $0&ZX& ,x& && &!& &&  '   ' :'B X' `' p' x' ' '' '`'' @'!(( 0(" H( P(`(h(p( x(((((( ( :(B)  )  8)D @) ) )  >)-)  )* 0 * $6P* px*   **+.+ H+  P+  `+ 'h+  p+   ++,. ,P, `,  'h,  (, ., ,  ,  ,,F- 0- )P-p-  $x-8|- S-- ..  0. @.H. 2P. 4.B ..+. ./ / 0%/  2/"0  (0 80 0+H0  x00  0 0  0"0"0  1 1 (1 z<81  1 H1 2 2 <(2  22 2"2 2 2 T33  `3h3  p3  33 3dI3 04@4  &H4 p4x4 L4B  4 4  ,4(5 "H5 p5 f5 566 L6" `6 h6 p6 x6!66 6 :6" 6967 707"87 P7 X7 H`7" 727 7 78!8 8(8 008"  `8h8p8888 8888 <8"* 9H9 h99999  `9  0: P::p: : : ::;; ; ;(;0;@; H; 2P; ;; ;; ;  &;<(< 0<8<X< x<< <  < < 2<< ,= 0= JH= =  ===x= PH> > > > > > > > >>>> >" ? <DP(? H?*CX? >`? ??? ?"  ? 0?   @ 0@ @@P@X@X`@ @ @ @ *@A (A0A8A@A HA"  hA >pAA AA 0A(B @BXB pBB B B FB"  B BC C(0C XC DhC C C H The MIT License Copyright (c) 2005 Mikko RusamaU Permission is hereby granted, free of charge, to any person obtaining a copy of thisraV software and associated documentation files (the "Software"), to deal in the SoftwareZ without restriction, including without limitation the rights to use, copy, modify, merge,[ publish, distribute, sublicense, and/or sell copies of the Software, and to permit personsQ to whom the Software is furnished to do so, subject to the following conditions:Y The above copyright notice and this permission notice shall be included in all copies or& substantial portions of the Software.^ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING[ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND] NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,_ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,X OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. GIFT Converter Changes and Debugging4+ Author: Mikko Rusama (mikko.rusama@iki.fi)W A macro for converting a Word document with questions to the native GIFT questionnaireP format supported by Moodle (www.moodle.org). Questions are defined as different* Word styles; style definitions are below. Supported question types are: 1. Multiple Choice Question 2. Matching Question 3. Short Answer Question% 4. True-False Question (statements) 5. Numerical Question: 6. Missing Word Question (only 1 right answer supported)T Question feedback is also supported as well as weighted answers for Multiple Choice Questions.; Copyright 2004- SoberIT, Helsinki University of Technology Changes:_ 8.10.2004 Fixed decimal converter bug. Bug replaced commas with dots in the question choices.8********************************************************H Style definitions. The styles defined below are used in the conversion.8******************************************************** General purpose styles.]Feedback] AnswerWeight ~!B@% Styles for multiple choice questions]MultipleChoiceQ] RightAnswer(] WrongAnswerP# Styles for matching pair questions] MatchingQ8]LeftPairx] RightPair` Styles for true-false questions] TrueStatement]FalseStatement Style for short answer question] ShortAnswerQ Style for numerical question] NumericalQ Style for missing word question] MissingWordQ] BlankWord8********************************************************+ General constants and variable definitions8******************************************************** saves the current question type]@ Prefix for the filename]Moodle_Questions_]9Copyright 2004 SoberIT, Helsinki University of Technologyh8******************************************************** GIFT question tags8********************************************************] {]}]{T}]{F}(]=]#P]~] -> 0]~%x]#X8 Main method. Converts the Word document to GIFT format.1Make sure the document is saved before continuing R!T:Please save your original Word document before continuing! XGIFT converter. :A@V ^$\.Z Z(` Cancel pressed -> Exit Z!b  StatusBar = "Not saved"|kk2Converting to Moodle's GIFT format, please wait...'d2 Before conversion, document is checked for errors fA@h make the conversionA@j remove all styles Save the document in text ^$\ l9 8 Zyyyymmdd$.txt9C@bqhd`,Please fix the errors before the conversion. nErrorA@Vko? Add Multiple Choice Question to the end of the active document $Insert Multiple Choice Question hereA@rox 8 Add Matching Question to the end of the active document  $Insert Matching Question hereA@ro 9 Add Numerical Question to the end of the active document` 0Insert Numerical Question hereA@rox < Add Short Answer Question to the end of the active document .!Insert Short Answer Question HereA@ro  Add Missing Word Question 2EInsert Missing Word Question Here. Remember to select the blank word!A@roh Add feedback   ~!!  ~!!  ~!! "6Insert feedback of the previous choice or answer here.  ~%!A@d 'Feedback is choice or answer specific. 6Place the cursor on top of the right or wrong answer.  XA@Vk o 0 Add a true statement of the true-false question` *1True-false question: insert a TRUE statement hereA@ro 1 Add a false statement of the true-false question ,2True-false question: insert a FALSE statement hereA@ro Marks the right answer ~!! "  ~!( ~!! e " ~!(kxop4 Add a new paragraph with a specified style and text Inserted text is selected  R!.   C@C@ C@ 9 dC@C@HqoS Special Characters ~ = # { } control the operation of the Moodle's GIFT filter andR cannot be used as a normal text within questions. However, if you want to use oneX of these characters, for example to show a mathematical formula in a question, you needP to escape the control characters, i.e. putting a backslash (\) before a control character. R!! ~\~ C@ =\= C@ #\# C@ {\{ C@ }\} C@qoU Moodle requires a dot (.) as a decimal separator. Thus, all comma separators need to be converted. ,.  !B@o(( Remove all formatting from the documentH ~B@o4 Count the number of paragraphs having the specified style in the defined range](   R%. !'store end point' !C@9d5(d9 99 7b !  xd  ') Increment Counter.kPHq@ 'i0? Checks every paragraph in the document and defines Moodle tags@ accordingly. Empty paragraphs are deleted as well as paragraphs2 that are specified with an unknown/illegal style.@]A@ escape all special characters'7 indicates whether the question end point should be set7 Check each paragraph at a time and specify needed tags  R! Delete empty paragraphs !  !B@ delete all empty paragraphsQuestion style found   !!!  !!! $ !!! 0 !!! .e !!!'66 Save the question type I A new question has been found, the previous question need to be "closed" G !!A@j !!'' < !A@ True statement found   !!! * !!! , !!! 2 !!! 4e !!!'6  !!A@ !!'kh 6 * @ !A@ 6 ,e B !A@ 6 2e !A@k' Wrong answer found !!! "e  Weighted answer found  !$ L !A@d no answer weights are specified H !A@k Right answer found !!! e  Weighted answer found  !$ L !A@ ' Answer of the numerical question found 6 0e F !A@ - Answer of the multiple choice question foundd D !A@k# left pair of the matching question !!! &e D !A@ J !A@$ right pair of the matching question !!! (e Do nothing para.Range.Style = STYLE_NORMAL Question feedback !!! e N !A@d  Delete all undefined styles !B@k Check if the end of document !! R!! % Make sure the last line is not empty !  !B@ e !!A@kHk@ o(3 Check if the specified style is found in the range !C@9d5(d9 99 C@q:MsgBox "Style: " & aStyle & " Found: " & aRange.Find.Found !!'i(* Removes answer weights from the selectionP ~!C@ 99d5(d99 C@qo Checks the questionnaire.3 Returns true if everyhing is fine, otherwise false] ''7 indicates whether the question end point should be set''67 Check each paragraph at a time and specify needed tags  R! Check if empty paragraph !  !B@ delete all empty paragraphs 6G !!!'6j  !!!  !!! $ !!! 0 !!! .e  !!'  $' Gyj. Exit if error is foundk !!'' !!!'6  !!! * !!! , !!! 2 !!! 4e  !!'  $' Gyj. Exit if error is found !!'k !!!'6  !!$' Gyj* Exit if error is found !!' NOT_KNOWN'6'  !!!  6 0e  Exit if error is found !$Gzjk Check if the end of document  !! R!!  !!  R!!$'k@ Gyj& Exit if error is found  'fi, Checks whether the chosen question is valid. Returns true if the question is OK, otherwise ]   R%. aRange.SelectMsgBox "See Range for specifying question type." & questionType & vbCr & ' "Start: " & startPoint & " End: " & endPoint' no errors  6  6 0 6 ., Check that there are right anwers specified   $'  B@H!Error, no correct answer defined. XA@V'k MATCHING QUESTION 6 $e Count the number of pairs (  $' &  $' Too few pairs  B@H&Error, pairs are not correctly defined (There must be atleast 3 mathching pairs. XError!A@V'A Error -> the number of left and right pairs is different or zero  e B@H&Error, pairs are not correctly defined 0The number of left and right pairs is not equal. XError!A@V'k 6 2e 4  $'  B@H;There must be exactly one answer specified as a blank word. XError!A@V'k  6 * 6 ,e UNDEFINED QUESTION TYPEd B@HUndefined question type: 6 Illegal question deleted. XError!A@V B@k  MsgBox questionType & "=" & isOk 'i E Check the numeric answer. Note, not checking all valid GIFT formats. ' By default OK& Search for the error margin separator: !B@ !! $ B@H!Is this a right numerical answer?  Your answer:   Error?$V'  G'jk8 i0 F Inserts text before the specified range. A new paragraph is inserted.   9 dC@ C@qo3 Inserts text having trailing VbCr before the range   R%.   >C@ 9 C@qoB Inserts text at the end of the paragraph before the trailing VbCr ! (  insert text before cr  dC@ 9 C@qo) Inserts text at the end of the paragraph    C@C@ C@ 9 dC@C@Hqpoh5 Set the answer weights of multiple choice questions.0  aStyle, startPoint, endPoint)]p    ~!!  ~%!!'''   ~B@   ~!!  ~!! " ~!!  ~!! b Delete empty paragraphs ~%!  ~%!B@5 delete all empty paragraphs  Remove old answer weights ~!! e ~!C@ 99d5(d99 C@qk , Count the number of right and wrong answers ~!!   ' ~!! "e  ' k` ~%!! R!! ~%!!'xd  ~B@  ~%!!'k   R%.  B@HNo right answer specified. XError!A@Vd@ % Calculate the right and wrong scoresd $' D MODIFY the default scoring principle for wrong answers if necessary '   A@kxdp+Place the cursor on the the question title of the Multiple Choice Question XError!A@VJ Find the previous paragraph having the style of multiple choice question. ~!C@9d 9999C@qXkPoH Marks the blank word  ~%! 4 B@Hd?7RTrim(ActiveDocument.Words(1)).Style = STYLE_BLANK_WORD 4 (k8?o0? Find all the *Set aRange = Selection.Paragraphs(1).RangeActiveDocument.Content !' !C@ 49 7 ~!!   R!! ~!!b5{=C@}C@# .Move Unit:=wdParagraph, Count:=1 C@q==q=o= Insert answer weightsx 7 Check each paragraph at a time and specify needed tags  ! Check if empty paragraph !  !B@ delete all empty paragraphs !! e  !A@  !! "e  !A@ k`< oH<@ Inserts text at the end of the chapter before the trailing VbCr  !' "%'$ $ B@   $ R%.&  &(=Moodle requires that the decimal separator is dot, not comma. &A@o(;]Standard ; ~!B@DD! Version 0.8a, Updated 25.01.2006E Debugging: Johannes Gschnaidner (Johannes.Gschnaidner@muehlbauer.de)hlbaEE by Johannes GschnaidnernnD'8 8 '8E ~%! ~%! R%.B 25.01.2006 Changed GIFT-Question Headder to work with Moodle 1.5+J 25.01.2006 Corrected STYLE_NORMAL = "Standard" to use with MS Office 2000V 25.01.2006 Fixed errors in 'ClearFormating' without 'Find' to use with MS Office 2000DI 25.01.2006 Correct Selection of Blank Text End -1 causes too short Blank(GPG 2 '2G Reset Question Counter  Increment Question Counter  Increment Question CounterG $6 $6 // question:  8 name:  6 $6 $6:: 6::[html] !B@ia $6 $6 // question:  8 name:  6 $6 $6:: 6::[html] !B@r8H  Add start of question commentsHL 25.01.2006 Removed enumberation from the question styles (Moodle 1.5+ GIFT)XH'Attribute VB_Name = "GIFT" ' The MIT Li censeHCopyright (c) 2005 Mikko R`usamaDJPermission is hereby granted, free of charge, to any pers0obtaining a cm)thisWsof tware/d associaR documentatrfiles (t"S1")gdeal 8in ,without re*sc#,cl udDlimi2 s_uscV, modifyen.publish, dic., s ,f/or sellyi^Q4Awhom ifurn:eddo soa:ject.f ollow8condiA=s:@,-~abovea|not@_AdA!ysha0beN[F5r>sticporye Ee. THE SOFTWARE IS PROVIDED "AS", WITHOUT @RANTY OF ANY KIND, EXPRESS OR I MPLIEINCLUDINGBNOITO DIEF MERCHABILITY, FITNFA PARTICULAR PURPPOSE@ DAN@ONINFREMENT. IN@ NO EV SHALLBAU0RB)COPYRIGHT HOLDEBE LI`ABLE B6C LAIM,DAMAG(R O-RB (WHEAN ACTIONGCONTR, TORT!#BWISE, ARIS FRO# 'A+ *'N @NE? .b3@ U@DEAL @5N;a Co@nverteCVx0.8a, Upd"|25.01.6AuuDr:J (m.r@iki.fi)b$ebugg\: JohannkGschnaidner (.@muehlbauer.de macro< fu`fga PWordƐ qu mnoiB`r mtatp!bg Moodle (www.mb.or`g). QF defin as dffntbsty; Be} Abee1Sue typ%  1. M ultipChNoE 2atcha" 3. Sh } Answ@.4. True-Falsef (`tes8 5. Nric*6̀Ƃ (only 1 rBas:feedba|ckᧀF"+w . sA";! s,Y4-`berIT, Helsinki Uni`JsityTeTolo,gy ! CWgeb 8.10!b 4 Fixdexcim #R,^. Bug replac`comm!ݠUtsംccR "_De4)4<: error'ClearFor.0"'2qw'Find'qiu 3MPff!& 01CorrqlSel`BsBlank Text End -1 ca7'"STYLE_NORMALS@jdard" K I d A>-v%HeaddzorkA=1.5"+ Remwd enum"TrD~s= (rd-**SQCB :GCrD`d$'q/*3PqGeZ0-puxrpo!p cst FEEDBACK!F<)ANSWERWEru cHWe<w6>mEP2^  YMULTIPLECHOICEnQ eBSQr_; R WRONGWrong 5Ypair SMATCHzc  LEFT_PAIR LeftPO HG" Tl tA_fB_5- TRUESTAT?!qbP9ca|FA|LSe"[s"ADaSHrBlc:ei EU`ICALߢlBlwAMISaWORzDMooIBLANK_Pa 79'. 9?sbbvariab? savP!cup_nt6, Dim&T As Sng Pr xBQnFI`_1`FIX!T_QE_#׹PD|||hn| J tag/* Const TAG_QUESTION_START = " {"ENDx} :TRUE_C HOICE8{T F RIGHT_ANSWER?= \NUMERICA L'# 'WRON G~ MATCHINGQ_ARROW3 -> EDED "%FEEDBACK> ' Main method. verts the Word document to GIFT format. Sub ExportTo () 'Make sure%#is saved be$e conti nuingIf ActiveD <.S= False ThenC MsgBox "PleaA your original 1!", _vbExcla:ion, "B>*Ger.& COPYwSetB7Dialog@Y!s(wdCFile3AsKA-.AddToMruTrueG' Cancel pressOpExitGNShhow0K' StatusBDar@"No,do@A xGEnd IfC đ@uMoodle's , plwait...cE' B\sBaɐcheck `H errors  CAQues"tnai P= ?)l!X ' mAW!`#>#RemoveF+bYgrB all style=D @0Z cn tex:Withn BHB.c@:wdCT Name@FILE_PREFIX & A(Date`]ymmdd")@ ".txt,C .ߡKaA#Etg tfixC6eK-.@rvbCriticalE;dyN !Sf MultiJ Choice E@!P! eWofa"fc`E#Q% ParagraphOfSa: STY@(MULTIPLEQInshere`atche`{d_H.uNumer2+o+_(* *rt Answer f ^ SHORT S?H H % MissBw5 _)ISSpWORD.b PLembP~selec~he blank wp!?+d feedbackf u F4PYSR.Range.S4=t4W Or(yU?L7ÕP>onp;ʖ+'Clear#,5Couhe number2graphs havsp@+fistyA!definrAa, Fun Eb S!sIn.(a, startPoint, (end")3In teger"DimASet -9=M S := 0:=F @ͣ?A4 's'eAl pca#@"= 0]G9n ..-.ta= ""ĞC@6wardTruІ B(( <Do Whi5e\(W;!CGp)n IfA$f>4tenGeE@xit Do EO*%+ 1q' Increy#er >qaIf'Loop1!(t0*QsKCheu y f0|r.: C/s NtagsJ@accord03ly. EmptxpPreleKPap.7bP unknown/illeg`Mb8PP|ToB41OfQ7set8CC' Čq\ 0 njOx2 'pdEtdwherrRś: Зuldac' 5%qc`S=pb` eachHA tim[@nyhN @7 E{ ,IPnT1 ' D\e"7'p8"."N` vb\Cr8 3.$'ߴ&bu@'&S]f`Oa<*.rG.NameLoq= STYLE_MULTIPLECHOICEQ Or Hw OEATCHING )?3NUMERICAL? _SHORTANSWERQO i(Ty= '' SaQD+tPGaG5' A &wKxs`-enund,0prevpiousW$0"cloϘf0= *sertTag; 0zg(a9Z5Q16@]q-Addc|om_@T%q#In Be(Chr(13)) & 0"//VX: "0&n?*OB"::P[html];\V0;/n9= ~QAfCR TAG_QUESTION_START,'tv>e>e2_TRATEMENT>$/_FALSѵESTATEMENT Or _  para.Range.Style.NameLocal = STYLE_MISSINGWORDQ3BLANK_@ Then  questionTypeDIf setEndPointsInsertQ7!Tag 7ar&t2st OfQ, If#% ' Inc0reme[1Co untercc=+ 1 aqBefore (Chr(13)) &0"//" E]: "@qc" n@ eEP::K "::[html]")i {TRUHϋ3M6Af@EC7CR TAG__CHOICE,r ElseFAL>Svړ>FindBlanks (z)8nd+c= Fa`" ' Wrong answer zfQd)NWRONG_ANSWE5 eig0hted4 ?f 5 F(F# WEPIGHT>)dTrueTextCHHC EDd;I ' no%w"s amspecifieh%!BRh$;' R!'&?4%RA(?4?4ɹ?4ge?4 ?4R7%' AVof the numer~ieY3$&ғNUMERICALQJJ+Kmultiple choice?UtA 1sSG_l' leDftVir matchiBB/-LEFT_PAIB rq{? ? {cPcMATCHpQ_ARROWOA' r6paC/' DoPFt{q 'Xn@OcQN ORMAL' Qy feedbxack?B_\cFEEDBACK/%PU5? PTDelete all undefinpFs1sw f3h Q' C@heck is@e+docAnh.= ActiveDԲz' Make su`Flast "l is emptyg *vbCrT}/pAe! , z>Ntb [Su`b r Gr inr[rA FunonIa*, aVHAs ) B ooleaWitthD.A a.BC@rForKtKt = ".Replac2. .ward ` Execu01Wrap:=wda StopA 'MsgBox "Rs¼xT2 6rb! ?RemoveЎ#vŏfromBs= P@ublic  kScyWF4S=("V_ea_PB  2#4#AAllog12stn `ge.Return@MeveryrwFS, oHrwis|e false Function CheckQueshnaire() As Boolean   Dim startOfA\, end setEndPoi nth isOk@ = Tru 'F ' indicates whethedr  qk pZ should be Hb U0>TypeY"" ' each paragraph at a time and specify needed tagsAFor E In AveDocument.~P(|=if empty? If .Rang^vbCr T|he"\.@Deletedall /H#HF^NHStyle.NameLocal,E -. `STYLE_MULTIPLECHOICEQ Or _5?ATCHINGwNUMERICALSHORTANSWERQg5Gɿs? M _[J () r Exhit ]'CAVrr_is found@ Ifku%D?U/UOEX= cXTRUESTATEpMENT?Xf&aFALSra$|jISS`WORDYBLANK_aX@%8?Y@?YJ?YonL?Y?Y Uk_̭J_ $a$H $>eni>q2+K }fNOT_KNOWNDye>H9,9RIGHT_cY A|f saY/P/P ONricAnswer()?V$0 Tȃ106 of dw0 p\.Q+,<<>x_)on?hge)!_+_+ j`%Next Op Ų ;chos`$x valipq' Returnxs tЯ :tOK, o@rwi}QįCO)|3c Sep9Oge_T'a!SpcԼ'MsgBox "Se4e fPingx t." R&y& &'3"Sq: R' " s .RA  'no e1Jn">{? ߠ' q;thơƀre righnBsTie:CtrOsIn(_O,ۂx#S Uw0. "u"Ea, correc P defined.",!Exclama T `#_Q' M QQIONb?%Mf@ numb0pVp`&=P iPAIRPleft/,LEFT_2# ζ ' Too few pai0rs If@ leftPPCount < 3` ThenaRange.Select 2MsgBox "Error, are not corr`ly defined" & vbCr_ Fd "y;must be atlea 3 math chinga.",GExclaion,!" VisOk = False ' V@ -> thTu@mber o and righteis differeor zero%E+> npAjequalUE@NIfFFquestgTypeaSTYLE_MISSINGWORDQword= Style(sInŸ(BLANK_, startPoin@t, endB) g f<> 15 ׶ KexHacton@nswspecified as a blank kA%T R T XTRUESTATEMENT O r ڒ2FALS*V#' UNDEFINED Q ION TYP>E#**Un  t@D:؅"IllegalGdted. DB$W#'L"=!6CheckQD]\C#a7Func_ ` ' eericG. Npote,Ca all valid GIFT for s. e Num! AP(P As f)!Boolea*TrueBault OK' Searc6hAeA rgin separ0ator+Find.Execute TextP:=":F":^=cvFd A4sd)VP{Res0pons<("Is  aD@+uLa,??b"Yourd;: AaYesNoDf ʦQ5.Ins ertBece 8"{=tAft"}^' .A ,(q F+s D+l(BypVal #,?mg2m. Check eachaatd aPjmeSyxeded ta&g$@" E In'}7J!/'7AI:GêC g :tg,N=Bj%urts text at the @end ofPchapter b eforeHtrailing VbCr Private Sub InsertAnswerWei@ght(Scn, ByVal aRange AsB ) startPoint =".SAStrr= "0" & T"%V"#X.Bs7$Set new= ActiveDocume(nt. (;:=AI, End  @+ Len(.)Gc-^yleeSTYLE_ANSWERWEIGHTD'Moodrequirehdecimseparator is dot, not comma.!ConvDSBL ^ 0MNc]350PA0:@t50h( 0h q hUpz44@hPd`00 @  xtH 4Qtp p  .p .tp t Dnt p , `NPPp 5P p `''''''0'PP'p''''''0p 6P0pP0cp!tH 4t 8kpzt (pLtP0pP00 P   c(8 f(H ((h .T-$ 4 tQ[ r A/:(0]35=/15.0'=/= A2`6=/= A2:(]/=/= A2:3]/xh=X/=H A(2:84]/=/= A2:5]/6XH( H=/A6X5Xh 7(88f(]3 =/A6h5 c(H'=/= A2`6=/= A2:(8]/=/= A2:9]/xh=X/=H A(2:8]/=/= A2:]/6XH( H=/A6X5Xh 7(88f(]3 =/A6h5'=/= A2`6(=/=:h 7(868f(]3| =/A:h5 ;T f(HC=/= A2:(]/40'6&A/ <5|=/A:''$ 4  4li8]/h=/A:N00 60 f@h30"ll :@?N00 = D50"ll :@@N00 = D50(@]g P<'':@AN0B0*#C*F0 /60 f@h @ P<'':@AN0B0*#D*F0 /60 f@h0"ll :@N00 = D50(@]@} P3'':AN0:@EN00 60 f@h8090 PI'':@AN0F*#0*#G*F0 260 P1 hVpz <$ hP,d`00 rU~| tY  Q ) ) y aA!IQ y )YyQY9Y iIyY y !!!"a"""#"9 )#q#%##1 $Q$q$$$$$%%%&%9&!&Y&&&' ((q)*'vx$ 4x kvx2''$*FD0:dNTT 6TD$*Tx$ tx 0Qx cd%CAT(d]35T $  ! " #)Tx$ tx 0Qxd%$TT %:4&:d'NDDT$ ($:)%*6 TD$'T 4+5Tc3''$:4,NDD:d-NTT 6TD$,(xTD$d,$:LN<<:lN\\ 6\<#@,$ \<d,$:LqN<<:l3N\\ 6\<L@,$ \<d,$:LrN<<:l4N\\ 6\<s@,$ \<d,$:LsN<<:l5N\\ 6\<0@,$ \<d,$:LN<<:lN\\ 6\<@,$ \<0   d,$:LoN<<:l8N\\ 6\<$@,$ \<d,$:LpN<<:l9N\\ 6\<=@,$ \<8>dtx$ <x t d:T]3)xt5d{8:TNddtx$ <x t )xt5d>dtx$ <x t d:T]3)xt5d8:TNddtx$ <x t )xt5d98$ xtdD%tx$ 4x Qtdxdq`%P%0%l` l` "P%(0%l`   @%l`C l` l` q` \(dxtx3ptx$ 4x t 4Qpl)xtq'''':stdoleP h%^*\G{00020430-C 0046}#2.0#0#C:\WINDOWS\system32\e2.tlb#OLE Automation`EOfficEOficEE2DF8D04C-5BFA-101B-BDE5EAAC42Egram Files\@CommonMicrosoft Shared\OFFICE11\MSO.DLL#M 11.0 Ob LibraryKӈwThisDocumentGTisDcumon]* 2  HB1BxB,!J"B+BBGIFTG@GI@FT2B! B6# Project-stdole`Officeu ThisDocument< rU~~{   aStyletext aRange startPointendPoint rightScore wrongScoreScorePA 1YThisDocumentThisDocumentGIFTGIFTID="{62E048CA-881E-4200-8C86-7D20E4B05630}" Document=ThisDocumect answer defined. RightPair LeftPair LError, pairs are not correctly defined PThere must be atleast 3 mathching pairs. Error! `The number of left and right pairs is not equal. Insert  { {T} {F} vThere must be exactly one answeam *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRA~1\GEMEIN~1\MICROS~1\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{00020905-0000-0000-C000-000000000046}#8.1#0#C:\Programme\Microsoft Office\Office\MSWORD9.OLB#Microsoft Word 9.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\system32\stdole2.tlb#OLE Automation(*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.1#0#C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL#Microsoft Office 11.0 Object Library  @EwThisDocument034541bfc9ThisDocumentJGIFT064540bfc6GIFTB8[:.OH*)TNhI$WH?text Wordk VBAWin16~Win32MacVBA6# Project-stdole`Officeu ThisDocument< _Evaluate GIFTSTYLE_FEEDBACKSTYLE_ANSWERWEIGHT(; STYLE_NORMALSTYLE_MULTIPLECHOICEQa?STYLE_RIGHT_ANSWERvwSTYLE_WRONG_ANSWERJSTYLE_MATCHINGQlgSTYLE_LEFT_PAIRSTYLE_RIGHT_PAIR@STYLE_TRUESTATEMENTbSTYLE_FALSESTATEMENTSTYLE_SHORTANSWERQYSTYLE_NUMERICALQwSTYLE_MISSINGWORDQSTYLE_BLANK_WORD 8 questionType[ FILE_PREFIX  COPYRIGHT!/TAG_QUESTION_STARTPTAG_QUESTION_END<TAG_TRUE_CHOICEx3TAG_FALSE_CHOICETAG_RIGHT_ANSWERTAG_RIGHT_NUMERICAL_ANSWER)TAG_WRONG_ANSWER TAG_MATCHINGQ_ARROW&oTAG_WEIGHTED_ANSWERq TAG_FEEDBACK1 (ExportToGIFTActiveDocument\SaveddMsgBoxR vbExclamation saveDialogSDialogswdDialogFileSaveAsNAddToMrufShow StatusBarʜ(CheckQuestionnaire/ ConvertToGIFT3RemoveFormattingl wdFormatText vbCritical+}(AddMultipleChoiceQ-8AddParagraphOfStyleȆ (AddMatchingQ (AddNumericalQ(AddShortAnswerQ(AddMissingWordQy(AddQuestionFeedback> SelectionZRange Stylep(InsertAfterRange1 ParagraphsfvbCr$(AddTrueStatement}(AddFalseStatementde(MarkTrueAnswerJaStyle*myRange-ContentlEndOfyUnit wdParagraphHExtend?wdMovezInsertParagraphBefore)Move>yCount0v InsertBefore.EscapeControlCharacters FindnExecuteYFindText ReplaceWith`Replacef wdReplaceAllu#ConvertDecimalSeparatoraRange?M WholeStoryClearFormatting)(CountStylesInRange[ startPointendPointycounterStartendPC ReplacementForwardWrapWy wdFindStop'fstartOfQuestionZp endOfQuestion setEndPoint@para~Deletex NameLocal(InsertQuestionEndTag(InsertAfterBeforeCRi FindBlanks-f r specified as a blank word. 0Undefined question type: 2Illegal question deleted.FindClearFormattingtextReplacementForwardWrapExecute // question:   name:  :: ::[html] AnswerWeight ~% ~ # =  ->  Feedback ` ( \~ \= \# { \{ } \}InsertParagraph Standard F bTrue-false question: insert a TRUE statement here dTrue-false question: insert a FALSE statement here :Insert Matching Question here <Insert Numerical Question here BInsert Short Answer Question Here-lankWord FindBlanksAddAnswerWeightsInsertAnswerWeight MultipleChoiceQ HInsert Multiple Choice Question here F F ) Unit Extend EndOf *InsertParagraphBefore__SRP_19 PROJECTwm>8PROJECT?CompObjFjnt/&H00000000 Module=GIFT Name="Project" HelpContextID="0" VersionCompatible32="393222000" CMG="CAC86E2EB432B432B432B432" DPB="0C0EA8F0A833A933A933" GC="4E4CEAB26EB6B1B7B1B74E" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] ThisDocument=0, 0, 0, 0, C GIFT=44, 44, 876, 447, Z   FMicrosoft Word-Dokument MSWordDocWord.Document.89qK*mrU~~~~~~~~~~~~W ,>AuD,h"k2  A 1Y)Y 9q 1 Y y ! Q ! Q y  ThisDocumentGIFTProjectF /C:\PROGRA~1\GEMEIN~1\MICROS~1\VBA\VBA6\VBE6.DLLVBA  9` F 0C:\Programme\Microsoft Office\Office\MSWORD9.OLBWord 1p0FC:\WINDOWS\system32\stdole2.tlbstdole 9L-[DR?C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLLOffice 1k Fj)C|>E Fq~uyFE +8p FDocument @ ExportToGIFTAddMultipleChoiceQ AddMatchingQ AddNumericalQAddShortAnswerQAddMissingWordQAddQuestionFeedbackAddTrueStatementAddFalseStatementMarkTrueAnswer AddParagraphOfStyleEscapeControlCharactersConvertDecimalSeparator^ FRemoveFormattingCountStylesInRange ConvertToGIFT StyleFound #RemoveAnswerWeightsFromTheSelectionCheckQuestionnaire CheckQuestionCheckNumericAnswerInsertTextBeforeRangeInsertQuestionEndTagInsertAfterBeforeCRInsertAfterRangeSetAnswerWeights MarkBlankWord FindBlanksAddAnswerWeightsInsertAnswerWeight MultipleChoiceQ HInsert Multiple Choice Question here F F ) Unit Extend EndOf *InsertParagraphBefore CountMove StyleInsertBefore Select u F WrongAnswer RightAnswer MissingWordQ$ Insert Missing Word Question Here. Remember to select the blank word!\ F BlankWord F tPlease save your original Word document before continuing! GIFT converter. FalseStatementEnd NOT_KNOWN rCopyright 2004 SoberIT, Helsinki University of Technology FAddToMruShow dConverting to Moodle's GIFT format, please wait... Format "Moodle_Questions_ yyyymmdd .txtName F TrueStatement XPlease fix the errors before the conversion. ErrorVBE6.DLL S b    Range   DeleteNameLocal MatchingQ NumericalQ ShortAnswerQ Start BError, no correC655C6C6Z6C6C6C6C65C65C6C6C6C6C6C6C6C6556C6C676 }80! 6 6C6C6C6p606C6*:C6*:C6C6 6 65555 ,1h/ =!"#$% @P$@UnknownGz Times New Roman5Symbol3& z Arial7&  Verdana?5 z Courier New;Wingdings"0h0HPObjectPoolg0!g0!