1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

outlookVBAプロジェクトを配布(インストール)するvbs

Last updated at Posted at 2021-06-08

概要

社内で使っているoutlookマクロを更新のたびに導入代行をしないといけないのが面倒なのでインストール方法とかないか調べてみた。

Project1 は、次のフォルダーに VbaProject.otm としてハード ディスクに格納されます。
:\Users \ \AppData\Roaming\Microsoft\Outlook
新しい VBA プロジェクトを開始する場合は、理論的には既存のすべてのモジュールとフォームをエクスポートできます。 しかし、これは通常、現実的なアプローチではありません。 代わりに、次の手順に従います。
1.Outlook を終了します。
2.指定されたパスで VbaProject.otm ファイルを探します。
3.VbaProject-testing.otm など、ファイルの名前をわかりやすい名前に変更します。
4.Outlook を再起動します。

要は<Drive>:\Users \ <LogonName> \AppData\Roaming\Microsoft\OutlookにOTMファイルをコピペすればいいらしい。
あとはユーザー名を取得してobjFS.CopyFileしてやればいい。

コード

2021/10/02 xml追加対応
イベント系を追加したらOTM以外にxmlが追加されたので

install.vbs
Call main

'-------------------------------------------------------------------------------

'-------------------------------------------------------------------------------
Sub main()
'  On Error GoTo Err
  '変数を宣言
  Dim str_from
  Dim str_to
  
  str_from = Array("VbaProject.OTM","Outlook.xml")
  Set objFS = CreateObject("Scripting.FileSystemObject")

  dim i
  For i = 0 to ubound(str_from)
    str_to = GetUserName & str_from(i)
  
    'ファイルを上書きコピーする
    Call objFS.CopyFile(".\" & str_from(i), str_to)
  Next

  MsgBox "complete"
  Exit Sub
'Err:
'  Select Case Err.Number
'    Case Is = "800A0046": MsgBox "Outlookを閉じて再度実行してください。"
'  End Select
End Sub
'-------------------------------------------------------------------------------
Private Function GetUserName()
'ユーザー名を取得する
  Dim x
  Set x = WScript.CreateObject("WScript.Network")
  'WScript.Echo "ユーザ名:" & x.UserName        'ユーザー名をポップアップ表示
  
  
  'パスをセット
  Dim Path
  Path = "C:\Users\" & x.UserName & "\AppData\Roaming\Microsoft\Outlook\"
  GetUserName = Path
End Function

余談

VBSはOn Error Gotoが使えないらしいの失敗時の対応が出力できない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?