2009-07-29 9 views
4

編集:同じVSMacrosプロジェクトで新しいモジュールを作成することで問題は解決しました。Visual Studio 2008マクロは、マクロエクスプローラでのみ動作し、マクロエクスプローラでは動作しません。


次のマクロは、Visual StudioからマクロIDEを開いてそこからマクロを実行した場合にのみ機能します。

Visual Studioインスタンスのマクロエクスプローラからマクロを右クリックするだけでもっと便利です。

明らかに間違っている必要がありますが、前にVSマクロで作業したことはありません。どちらの場合でもMessageBoxは表示されません。

Option Strict Off 
Option Explicit Off 
Imports System 
Imports EnvDTE 
Imports EnvDTE80 
Imports EnvDTE90 
Imports System.Diagnostics 
Imports System.Security.Principal 
Imports System.Windows.Forms 

Public Module AttachToSdtProcess 
    Sub AttachToSdtProcess() 
     Try 
      'If MessageBox.Show("Attach to SDT.exe", "Caption", _ 
      '   MessageBoxButtons.OKCancel) = DialogResult.Cancel Then 
      'Return 
      'End If 

      Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger 
      Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default") 
      Dim compName As String = WindowsIdentity.GetCurrent().Name 
      compName = compName.Substring(0, compName.IndexOf("\")) 
      Dim proc2 As EnvDTE80.Process2 = _ 
        dbg2.GetProcesses(trans, compName).Item("TheExecutable.exe") 
      If proc2 Is Nothing Then 
       MessageBox.Show("Could not find TheExecutable.exe") 
      End If 
      proc2.Attach2(dbgeng) 
     Catch ex As System.Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 
End Module 
+1

実際、同じVSMacrosプロジェクトで新しいモジュールを作成することで問題は解決しました。私の日を救った!それは、以下に「正しい」と記された「解決策」とは関係がありませんでした。 – Jens

+1

VSMacrosの代わりにVisual Studio 2010を使用している場合は、この奇妙な問題を解決するために "Samples"で新しいモジュールを作成する必要があります。 – Durden81

答えて

1

からthis私は別の可能な答えを見つけたと思います。そのスレッドの主な提案はしました:チェックボックスをチェックし、/マクロのセキュリティセクションアドインマクロエディタで

0

メッセージボックスを「マクロの実行を許可する」、[ツール]、[オプション]メニューで

です:

MsgBox("Your Text Here") = Resultxx 

Good Luck。

+0

http://stackoverflow.com/questions/23658589/insert-microsoft-word-2010-macro-into-a-visual-basic-2008-express-edition help me! –

関連する問題