Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4779 / 13646 ツリー ←次へ | 前へ→

【54508】マクロの実行を禁止したい DIO 08/3/16(日) 12:23 質問[未読]
【54509】Re:マクロの実行を禁止したい とおりすがり 08/3/16(日) 12:37 発言[未読]
【54512】Re:マクロの実行を禁止したい DIO 08/3/16(日) 13:42 お礼[未読]
【54519】Re:マクロの実行を禁止したい VBWASURETA 08/3/16(日) 21:42 発言[未読]
【54531】Re:マクロの実行を禁止したい DIO 08/3/17(月) 11:11 お礼[未読]
【54532】Re:マクロの実行を禁止したい VBWASURETA 08/3/17(月) 11:55 回答[未読]
【54538】Re:マクロの実行を禁止したい とおりすがり 08/3/17(月) 14:27 発言[未読]

【54508】マクロの実行を禁止したい
質問  DIO  - 08/3/16(日) 12:23 -

引用なし
パスワード
   お世話になります。

マクロの組まれているブックを、取引先(200件位)にメールで毎月送信し、必要事項に記入してもらってメールバックをもらうという作業を毎月行っています。

組まれているマクロは、メールバック後にこちらが使用する物です(正しいデータが入っているかのチェック等)。
取引先にはそのマクロを実行してほしくありません。

また、メールバックしてもらったブックは取引先によって、うちの社内で扱う人物が変わります。

取引先に送信した時にはマクロの使用を一切禁止し、メールバック後に社内で使う際にはマクロを実行したいのです。現在VBAプロジェクトには保護パスをかけていますが、それだけではツール→マクロ→マクロから実行ができてしまいます。

何か手段がありましたら、ご教授下さい。宜しくお願いします。

【54509】Re:マクロの実行を禁止したい
発言  とおりすがり  - 08/3/16(日) 12:37 -

引用なし
パスワード
   「マクロブックとデータブックを分ける」
マクロの基本です。

【54512】Re:マクロの実行を禁止したい
お礼  DIO  - 08/3/16(日) 13:42 -

引用なし
パスワード
   返信ありがとうございます。
やはり「そのブックに登録されているマクロの実行を禁止する」という事は不可能という事ですね。

ブックを別に分ける方法でもう一度作成します。
ありがとうございました。

【54519】Re:マクロの実行を禁止したい
発言  VBWASURETA  - 08/3/16(日) 21:42 -

引用なし
パスワード
   ▼DIO さん:
こんばんは。

単純に指定のフォルダにファイルがあるかのチェックでマクロに入らない
条件を作るのはダメですか?

条件例:
Sub Main()
  If Not (ChekMacro) Then
   Exit Function
  End If
End Sub

'***** 関数 *****

Function ChekMacro() As Boolean
  If (Dir("C:\test\test.data")) Then
   CheckMacro = true
  End If
End Function

【54531】Re:マクロの実行を禁止したい
お礼  DIO  - 08/3/17(月) 11:11 -

引用なし
パスワード
   ▼VBWASURETA さん:
ありがとうございます。

当方初心者なもので、頂いたコードを完全に理解するに至らなかったのですが、
「特定のフォルダに格納するまではマクロを作動させない事ができる」という
解釈で正しいでしょうか?もしそれが可能なら、それも一つの有効な手段だと
思いました。アドバイスありがとうございます。

【54532】Re:マクロの実行を禁止したい
回答  VBWASURETA  - 08/3/17(月) 11:55 -

引用なし
パスワード
   ▼DIO さん:

特定のフォルダといいますか、同じフォルダに
必要なファイルがあるかどうかの存在チェックということです。
サンプルは特定のフォルダにしてますが、同じフォルダなら
存在してますしそこから該当のファイルがあるかだけなので
簡単な方法だと思いますよ。
因みに以下の感じです。

'サンプルはMaster.dataファイルがあるか存在チェック
Function MasterCheck() as Boolean
  Dim bPath as Boolean
  Dim strPath as String

  bPath = False

  'ActiveWorkbook.Pathが保存されているフォルダです
  If (Right(ActiveWorkbook.Path,1) = "\") Then 'ドライブ直下対策
   strPath = ActiveWorkbook.Path & "Master.data"
  Else
   strPath = ActiveWorkbook.Path & "\Master.data"
  End If

  'ファイルがあれば条件に入りTrueを返す。
  If (Dir( strPath ) <> "") Then
   bPath = True
  End If
  MasterCheck = bPath
End Function

'↓ここから実行
Sub Main()

  '指定のファイルがなければマクロ終了
  If MasterCheck() Then
   Exit Sub
  End If

  'ここでマクロの実行
End Sub

【54538】Re:マクロの実行を禁止したい
発言  とおりすがり  - 08/3/17(月) 14:27 -

引用なし
パスワード
   参考まで。
マルチではありません。
他サイトでの経緯です。

マクロの実行を禁止したい
http://www2.moug.net/bbs/exvba/20080316000012.htm

4779 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free