|
▼こるぎ さん:
こんばんは。
まず、投稿したコードは、Word2000で動作確認を行いました。
Word2002以降では、セキュリティでの設定が必要です。
「ツール」---「マクロ」----「セキュリティ」で、
”信頼のおける発行元”のVisualBasicプロジェクトへのアクセスへの信頼する
にチェックして下さい。
>実は、幾通りか試したところ、どうやっても教えていただいたコードのみが書き出されてしまいました。
詳しく教えていただければ、こちらでも検証しますが、
正常に作動すれば、コードがあるDocファイルのエクスポートは行いません・・・。
それから、以下の変更を行って再試行してみてください。
>'==================================================================
>Sub Document_Open()
> Dim r_fld
> Dim w_fld
' Application.ActiveWindow.WindowState = wdWindowStateMinimize
↑これ削除してください
> AppActivate Application.Caption
> r_fld = get_folder_path("一括エクスポートするWordドキュメントの存在するフォルダを選択して下さい")
> If VarType(r_fld) <> vbBoolean Then
> w_fld = get_folder_path("エクスポート先フォルダを選択して下さい")
> If VarType(w_fld) <> vbBoolean Then
> ans = MsgBox("「" & r_fld & "」に存在するワードファイルのVBAコードを「" & w_fld & "」内に作成します。" & vbLf _
> & " ・ワードファイル名と同じ名前に「exp」が付いたフォルダが「" & w_fld & "」内に作成されます。" & vbLf _
> & " ・このフォルダにエクスポートファイルとログファイルが作成されます", vbOKCancel)
> If ans = 1 Then
> WordBasic.DisableAutoMacros 1
> Call export_proc(r_fld, w_fld)
> WordBasic.DisableAutoMacros 0
> End If
> End If
> End If
' Application.ActiveWindow.WindowState = wdWindowStateMaximize
↑これも削除
>End Sub
>'==============================================================
>Function get_folder_path(mes)
>'フォルダ選択処理
>'input : mes : 表示メッセージ
> Dim fld
Set fld = CreateObject("Shell.Application").BrowseForFolder(0, mes, 1, 17)
' ↑
' 2→1に変更
'
> On Error Resume Next
> If Not fld Is Nothing Then
> get_folder_path = fld.items.Item.Path
> If Err.Number <> 0 Then
> get_folder_path = False
> End If
> Else
> get_folder_path = False
> End If
> Set fld = Nothing
>End Function
上記を変更してください
|
|