1
レジストリの現在のユーザーのデータを文書のあらかじめ定義されたブックマークに挿入するWordマクロを作成しようとしています。私は各レジストリエントリの名前が何であるかを指示するini-fileを得て、その値をWordマクロのループにインポートします。これはうまく動作しますが、Wordマクロではデータをドキュメントに挿入する必要があります。ブックマークがあればうまく動作しますが、そうでなければ、マクロはデータを挿入するようです。私はそれを望んでいない。私はちょうどそこに名前に対応するブックマークがある場合、マクロにデータを挿入します。私は各ブックマークを ""ブックマーク "& sBookMarkname"と呼び出さなければならないようにしました。Word VBAマクロでブックマークに値を挿入しようとしたときにエラーが発生しました
そしてここでは、今
Sub MalData()
''
''// MalData Macro
''
Dim objShell
Dim strShell
Dim strDataArea
Dim Verdier() As String
Dim regPath
Dim regString
Dim Felter
Dim WScript
Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
sFileName = "C:\felter.ini"
If Len(Dir$(sFileName)) = 0 Then
MsgBox ("Can't find " & sFileName)
End If
''//Load values from ini-file which is later used to query the registry
Set objShell = CreateObject("Wscript.Shell")
With New Scripting.FileSystemObject
With .OpenTextFile(sFileName, ForReading)
If Not .AtEndOfStream Then regPath = .ReadLine
If Not .AtEndOfStream Then regString = .ReadLine
Do Until .AtEndOfStream
Felter = .ReadLine
On Error Resume Next
Dim sBookMarkName, sVerdi
sBookMarkNametemp = "Bookmark" & Felter
MsgBox (sBookMarkNametemp)
sVerdi = objShell.RegRead(regPath & "\" & Felter) ''"
sBookMarkName = ""
sBookMarkName = (sBookMarkNametemp)
If sVerdi <> Felter Then
Selection.GoTo What:=wdGoToBookmark, Name:=sBookMarkName
Selection.Delete Unit:=wdCharacter, Count:=0
Selection.InsertAfter sVerdi
ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:=sBookMarkName
End If
Loop
On Error GoTo 0
End With
End With
End Sub
は、誤差はおよそここで起こる。..コードです:
sVerdi = objShell.RegRead(regPath & "\" & Felter) ''"
sBookMarkName = ""
sBookMarkName = (sBookMarkNametemp)
If sVerdi <> Felter Then
レジストリが唯一の3つのキーが含まれている場合でも、マクロから得て、すべての名前を通過テキストファイルを開き、最後のレジストリキーを複数回挿入します。
親愛なる神様...ありがとうございました! :)私はちょうど馬鹿です:) –