title: Word vba - How can I store string values in a module?
body: <p>the title may not be appropriate because I don't really know how I should put this.
  I have a template where I have a "Module1" module and a "ThisDocument" code.
  Module1 contains the following code to pick up values from the registry. 
  I pick up these values from ThisDocument code.</p>
  
  <p>What I want is to move the code from ThisDocument over to it's own module. And being able to access the values from all other modules or subs. </p>
  
  <p>Right now, ThisDocument has code that looks a little like this:</p>
  
  <pre><code>regPath = ReadIni(File, "Registry", "Path")
  regString = ReadIni(File, "Registry", "String")
  regStrFirstname = ReadIni(File, "Fields", "Firstname")
  regStrLastname = ReadIni(File, "Fields", "Lastname")
  regStrInitials = ReadIni(File, "Fields", "Initials")
  regStrFullname = ReadIni(File, "Fields", "Fullname")
  </code></pre>
  
  <p>So, instead of having this code in ThisDocument, I would like to have this code in a separate Module and being able to access the values from ThisDocument directly. This way I can pick up the values from, say a form as well. Populate textboxes with the values etc. </p>
  
  <p>How should I do this?</p>
  
  <p>Module1 looks like this:</p>
  
  <pre><code>Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias _
  "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, _
  ByVal nSize As Long, ByVal lpFileName As String) As Long
  
  Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
  "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
  ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
  ByVal lpFileName As String) As Long
  
  Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
  "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, _
  ByVal lpFileName As String) As Long
  
  Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
  "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
  ByVal lpString As Any, ByVal lpFileName As String) As Long
  
  '// INI CONTROLLING PROCEDURES
  'reads an Ini string
  Public Function ReadIni(Filename As String, Section As String, Key As String) As String
  Dim RetVal As String * 255, v As Long
  v = GetPrivateProfileString(Section, Key, "", RetVal, 255, Filename)
  ReadIni = Left(RetVal, v + 0)
  End Function
  
  'reads an Ini section
  Public Function ReadIniSection(Filename As String, Section As String) As String
  Dim RetVal As String * 255, v As Long
  v = GetPrivateProfileSection(Section, RetVal, 255, Filename)
  ReadIniSection = Left(RetVal, v + 0)
  End Function
  </code></pre>