Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

サーバー上でマクロを動作させるには?

リロード時、取り込み済みのファイルを別フォルダに移動するマクロを作っています。

デスクトップ版で実行すると思った通りの動作が実現できているのですが、公開用サーバーのリロードスケジュール実行時にはマクロが動作しません。

QVWのモジュールにて「システムアクセスの許可」、サーバーセキュリティの設定にてマクロの動作を許可しているのですが他に何か必要なことがあるのでしょうか?

Labels (2)
3 Replies
Not applicable
Author

状況を具体的に書きます。

  1. 「ツール」→「モジュールの編集」にて
    モジュールセキュリティーの設定=システムアクセス
    現在のローカルセキュリティ=システムアクセスを許可する
  2. Management Console 「System」→「(Serverインスタンス)」→「Securityタブ」にて
    Allow macro execution on server→Checked
    Allow unsafe macro execution on server→Checked

これ以外ではそれらしき設定が見当たりませんでした。

hka
Employee

スクリプトとマクロを頂くことは可能ですか。

マクロによっては、サーバで実行できないものもあります。

Not applicable
Author

ドキュメントプロパティ→セキュリティ→マクロによるセキュリティの上書きONで動くようになりました!

ちなみにスクリプトはこれでした。

//ロードスクリプト

Data1:

LOAD A, B, C, FilePath() as FileName FROM (ooxml, embedded labels, table is [Sheet1]);

Files:

LOAD Distinct FileName Resident Data1;

LoadedFiles:

LOAD MoveToFolder(FileName) as x Resident Files;

DROP Table Files, LoadedFiles;

''' モジュール:ファイル移動処理

Function MoveToFolder(fName)

    Const MOVE_TO_FOLDER_NAME = "Loaded"

    Dim fs, f

    Dim strFrom, strTo, toName

    Set fs = CreateObject("Scripting.FileSystemObject")

    Set f = fs.GetFile(fName)

    strFrom = fs.GetParentFolderName(fName)

    strTo = fs.BuildPath(strFrom, MOVE_TO_FOLDER_NAME)

    toName = fs.BuildPath(strTo, f.Name)

    If Not fs.FolderExists(strTo) Then fs.CreateFolder (strTo)

    If fs.fileexists(toName) Then fs.deletefile (toName)

    fs.MoveFile fName, toName

End Function