0

パス変数を定義し、現在の場所に依存した後、別のコンピューターで実行している .xlsb ファイルがあります。別の xlsm ファイルの VBA プロジェクトを .xlsb に追加しました。そして、次のコードの次の行のいずれかを使用して、.xlsb ファイルのモジュール 2 からマクロを実行しようとしています。

Dim path As String
path = Application.ActiveWorkbook.path
path = path & "\"

Workbooks("2cDataSet.xlsm").Activate
'MsgBox (path & "2cDataSet.xlsm!publicdatahandler")
'Application.Run (path & "2cDataSet.xlsm!publicDataHandler")
'Application.Run (path & "'2cDataSet.xlsm'!publicDataHandler")
'Application.Run (path & "2cDataSet.xlsm!Module2.publicDataHandler")
'Application.Run (path & "'2cDataSet.xlsm'!Module2.publicDataHandler")

'Application.Run ("2cDataSet.xlsm!publicDataHandler")
'Application.Run ("'2cDataSet.xlsm'!publicDataHandler")
'Application.Run ("2cDataSet.xlsm!Module2.publicDataHandler")
'Application.Run ("'2cDataSet.xlsm'!Module2.publicDataHandler")

'Application.Run "2cDataSet.xlsm!publicDataHandler"
'Application.Run "'2cDataSet.xlsm'!publicDataHandler"
'Application.Run "2cDataSet.xlsm!Module2.publicDataHandler"
'Application.Run "'2cDataSet.xlsm'!Module2.publicDataHandler"

'Application.Run path & "2cDataSet.xlsm!publicDataHandler"
'Application.Run path & "'2cDataSet.xlsm'!publicDataHandler"
'Application.Run path & "2cDataSet.xlsm!Module2.publicDataHandler"
'Application.Run path & "'2cDataSet.xlsm'!Module2.publicDataHandler"

'Run macro:="2cDataSet.xlsm!Module2.publicdatahandler"
'Run macro:="2cDataSet.xlsm!publicdatahandler"

ここと同じ問題のようですが、この場合の問題は、マクロの無効化ではなく、2 つの異なる Excel ファイルの融合によって引き起こされると予想されます。

マクロを実行できません...このブックではマクロを使用できない可能性があります

それが示唆するように、次の方法でマクロとオブジェクトのセキュリティ設定を手動で有効にしたためです。

  1. Microsoft Office ボタンをクリックし、[Excel のオプション] をクリックします。
  2. [セキュリティ センター] をクリックします。
  3. [セキュリティ センターの設定] をクリックします。
  4. マクロ設定をクリックします。
  5. [VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスをオンにします。
  6. [OK] をクリックして、[Excel のオプション] ダイアログ ボックスを閉じます。
  7. Excel を閉じて、再度開きます。

また、そのオブジェクトモデルのチェックボックスの上にある「マクロ ボタンを有効にする」をクリックしました。

最初に 2cDataSet.xlsm を手動で開き、プロンプトが表示されたらマクロを手動で有効にしてから、親の .xlsb を開き、その逆を試みました (.xlsm は、 .xlsb)

そして、試したオプションのいずれかで正しい構文を試したと思います。*今では、名前にスペースが含まれている場合にのみ単一の ' が使用されることも認識しています。

マクロを削除して再作成していません。

「オプションの明示的」が「オプションの明示的」と書かれていないかどうかを確認しましたが、まったく書かれていませんでした

サブは公開です。

私が書いたオフィスは2016で、他のPCのバージョンは2013ですが、2016オフィスでも同じエラーが発生しましたが、一部の場合、原因不明で、サブ構文の呼び出しを切り替えたり、再呼び出ししたりした後Excelファイルを開くと、エラーが発生しなくなったか、一貫性がなくなりました。

Excel で次のエラーが発生する理由についての提案:

マクロを実行できません このブックでマクロを使用できないか、すべてのマクロが無効になっている可能性があります

サブが呼び出された後?

Ps。分散自動計算用なので、PC(またはExcel)の設定を編集することはできず、ポップアップはnonoです:)

問題は、vba プロジェクトをマージした後、親の .xlsb ファイルがコピーされて別のパスに移動されたにもかかわらず、Excel が .xlsm ファイルへの参照を古いフォルダーに保持したことでした。

元のファイルを新しい親ファイルのフォルダーに移動し、そのフォルダー全体を実際の .xlsm を含めて共有し、別のコンピューターで実行する

4

1 に答える 1