• ベストアンサー

VBE上の任意の行のVBAコードを実行する

こんにちは。 現在、Word2007およびExcel2007で、VBAの勉強をしています。 VBE上にSubプロシージャの定義を記述し、それのどこかにカーソルがある状態でF8キーを押すと、 Subプロシージャの先頭行から順に、VBAコードが実行されます。 では、カーソルがある行のVBAコードを、いきなり実行する事ってできないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • goota33
  • ベストアンサー率53% (7/13)
回答No.2

カーソルがある行からF8キーを押すことでいきなりそのコードを実行することはできないと思います。 もしやるとすればイミディエイトウィンドウにコードをコピペしてエンターを押すか、 実行したいコードに到達するまでブレークポイントをひたすら指定していくか、 実行したいコードが含まれてる関数を分割して、 そのコードだけの関数を新しく作って実行するか、 ですね。。。 ちなみにイミディエイトウィンドウはCtrlとGを同時に押すと出てきます。

MetalLover
質問者

お礼

御回答ありがとうございます。 御提案頂いた内容からすると、 イミディエイトウィンドウにコピペするのがベストのような気がしますね。 以降、そうする事にします。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

プロシジャの途中から飛び込むのは無理です。 単独の行の実行であれば、イミディエイトウィンドウにペーストすればいいのでは?

MetalLover
質問者

お礼

御回答ありがとうございます。 やっぱりそうですよね。 了解しました。

関連するQ&A

  • VBE画面を閉じるコード

    alt+F11で、VBE画面を開いていますが、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub で、どこかのセルをクリックしたら、VBE画面を閉じたいのですが、コードを教えてください。 エクセルのアプリケーションのみ表示させたいです。 添付画像は、 エクセル(上) VBE(下) が開いてますが、VBEをVBAコードを実行して閉じたいです。

  • これは実行中のVBEコードのイミディエイトウイント

    Sub Sample() Dim WD, task, n As Long Set WD = CreateObject("Word.Application") 'Wordを起動します For Each task In WD.Tasks 'Word VBAのTasks'コレクションを調べます If task.Visible = True Then ' タスク(プロセス)が実行中だったら Debug.Print task.Name ' タスクの名前を書き出します End If Next WD.Quit Set WD = Nothing End Sub これを実行すると 結果に イミディエイト も含まれるのですが、 これは実行中のVBEコードのイミディエイトウインドウのことを言っているのでしょうか?

  • WordのコマンドはVBAで使える?

    こんにちは。 Word2007で用意されている、 Bold (Ctrl + B) や NormalStyle (Ctrl + Shift + N) といったコマンドを、 Subプロシージャの中に記述して、そのマクロを実行しようとすると、 「SubまたはFuctionが定義されていません。」 というエラーが表示されます。 VBAコードの中で、コマンドを使う事はできないのでしょうか?

  • 1つのVBAコードをすべてのコアを使って実行させたい

    いつもお世話になっております。 クアッドコア搭載のPCを購入してVBAの処理速度の向上を期待していたんですが、1つのコアだけで処理されているようです。 EXCEL2000でVBAコードを実行したのが原因だと思いまして、試用版のEXCEL2007を使って同じVBAコードを実行してみたのですがダメでした。 VBAコードをすべてのコアを使って実行することはできないのでしょうか。 特別なコードを記述しなければならないのでしょうか。 よろしくお願いいたします。

  • 実行時エラー 2001

    http://officetanaka.net/excel/vba/vbe/05.htm を参考に VBAコードを取得したいのですが Declare Function GetTickCount Lib "kernel32" () As Long Public sampledata As String Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub を実行すると 実行時エラー 2001 'VBProject'メソッドは失敗しました:'_Workbook'オブジェクト が、 Code = ThisWorkbook.~ の行で発生します。 何が間違ってますか?

  • VBEが閉じてしまいます。

    Sub Sample() Dim mdlName As String mdlName = "test" Debug.Print AllProcName(mdlName) End Sub Function AllProcName(ByVal strModuleName As String) As String Dim mdl As Module Dim lngDecCnt As Long '宣言セクションの行数 Dim strName As String 'プロシージャ名比較用 Dim strProcName As String '全プロシージャ名 Dim lngR As Long 'プロシージャの種類 Dim i As Long DoCmd.OpenModule strModuleName Application.VBE.MainWindow.Visible = False Set mdl = Modules(strModuleName) '宣言セクションの行数格納 lngDecCnt = mdl.CountOfDeclarationLines '最初のプロシージャ名格納 strName = mdl.ProcOfLine(lngDecCnt + 1, lngR) strProcName = strName & vbNewLine '宣言セクションの次行から最終行までループ For i = lngDecCnt + 1 To mdl.CountOfLines '新規プロシージャ名取得 If strName <> mdl.ProcOfLine(i, lngR) Then strName = mdl.ProcOfLine(i, lngR) 'プロシージャ名追加 strProcName = strProcName & strName & vbCrLf End If Next i Set mdl = Nothing AllProcName = strProcName End Function と言うコードをVBE画面でF5で実行すると、VBEが閉じてしまいます。 しかしF8でゆっくりやっていくとVBE画面は閉じません。 なぜ一気にやると閉じてしまうのでしょうか? Application.VBE.MainWindow.Visible = False をコメントアウトすると VBE画面は閉じませんが該当のモジュールが実行後にアクティブになります。 環境はwin8.1、アクセス2010です。

  • Excel VBA 1行ずつ実行するには 

    いつもお世話になっています。 Excel VBAで記述したマクロを 1行ずつ確かめながら実行する方法を教えてください。

  • エクセルのVBA関数の実行する方法は

    お世話になります イメージを描きやすいように、例を挙げます Function sample()   MsgBox("こんにちわ") End Function と こんな関数をエクセル上で Visual Basic Editorアイコンを押すと VBA画面が開きますから、コードを書くところに 上の3行の関数、sample()、を記入します 左のイミディエイトウィンドウ(環境によるかも知れません) に sample(Enterキー) と入力すると Sub または Function が定義されていません と、エラーが出ます ACCESSのVBAであれば、これで実行できる、とおもいますが エクセルの場合はどうするのでしょうか

  • VBA実行後、キー入力ができない

    こんにちは。エクセル2007を使用しています。 下記の行削除のコードを実行した直後、 Enterキー以外はどのキーを押しても反応せず、 一度どこかのセルをクリックすると、ようやく全ての キーが反応します。どこかコードに問題はあるでしょうか。 よろしくお願いいたします。 Private Sub cmd行削除_Click() Application.EnableEvents = False Application.ScreenUpdating = False If Selection.Row = 1 Then Range("A1").Select MsgBox "削除したい行にカーソルを合わせてください。", vbOKOnly, _ "指定したカーソル行が削除されます。" Exit Sub End If If Selection.Row > 1 Then Selection.EntireRow.Delete Shift:=xlUp End If Application.ScreenUpdating = True Application.EnableEvents = True End Sub

  • ExcelVBA コードの実行について

    VBA勉強中の者です。早速ですが質問させて頂きます。 sheet1のA2セルをアクティブにした時、メッセージボックスに「ここはA2です」と表示させたく、 sheet1に以下のコードを記述しました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = Range("A2").Address Then MsgBox "ここはA2です" End If End Sub VBEを開いた状態でsheet1のA2を選択したところ上手く動作したのですが、 この状態で▲マークの再生ボタン(sub/ユーザーフォームの実行)を押しても マクロ呼び出し画面が出てしまうだけで実行できません。 何故なのでしょうか? 目的の動作は「ブックを開いた」時からずっと有効にさせていたいのです。 どなたかご助力お願いいたします。

専門家に質問してみよう