• ベストアンサー

VBE画面を閉じるコード

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

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

これでどうでしょうか? If Target.Address <> "$A$1" Then Exit Sub Application.VBE.MainWindow.Visible = False

mdbecrfoumuh
質問者

お礼

どうもありがとうございました。

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

『参照設定』を追加してもよい場合(及びインテリセンスを有効に したい場合)は、「Microsoft Visual Basic for Application Extensivity x.x」のチェックをオンにした上で、以下のコードで 実現できます(サンプル簡素化のためエラー処理は省略): Private Sub Worksheet_SelectionChange(ByVal Target As Range)   'ここの型指定に参照設定が必要   Dim oVBE As VBE, Wdw As VBIDE.Window   Set oVBE = Application.VBE   Set Wdw = oVBE.MainWindow   Wdw.Visible = False   '念のため、明示的にメモリを解放   Set Wdw = Nothing   Set oVBE = Nothing End Sub 『参照設定』を追加しない場合は、以下のコードになります。 (実際には、変数宣言での型指定を変更するのみでOk): Private Sub Worksheet_SelectionChange(ByVal Target As Range)   Dim oVBE As Object, Wdw As Object   Set oVBE = Application.VBE   Set Wdw = oVBE.MainWindow   Wdw.Visible = False   Set Wdw = Nothing   Set oVBE = Nothing End Sub ・・・以上です。

mdbecrfoumuh
質問者

お礼

どうもありがとうございました。

関連するQ&A

  • VBA マクロの削除について教えてください

    VBEのWorksheet上にある、下記のコードが消えません。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub 全選択して、Deleteするのですが、消しても復活しています。 これ以上方法が思いつかないので、ご教示をおねがいします。

  • エクセルvba  (ByVal Target As Range)について

    シートのイベントプロシージャーが Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub となりますが (ByVal Target As Range)部分は何なのでしょうか? 何のためにあるのかわかりません。 Private Sub Worksheet_SelectionChange() End Sub としたらエラーが返ってきました。 理由を教えてください。 よろしくお願いします。

  • マクロの疑問

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "A2" Then Range("A2").Select End If End Sub とすると、どのセルを選んでもA2に飛ぶのに、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "A3" Then Range("A2").Select End If End Sub とすると、A3を選んでも全く移動しないのはなぜでしょうか。 なにか落とし穴がありそうで。。。 よろしくお願いします。

  • 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/ユーザーフォームの実行)を押しても マクロ呼び出し画面が出てしまうだけで実行できません。 何故なのでしょうか? 目的の動作は「ブックを開いた」時からずっと有効にさせていたいのです。 どなたかご助力お願いいたします。

  • VBAでエラートラップがうまくいきません。

    VBAで次のようなプロシージャを実行してみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   If Target.Value = " " Then          ~コード~   END IF END SUB すると複数のセルが選択されるとエラーがでます。そこで次のようにしてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   On Error GoTo エラー処理   If Target.Value = " " Then     On Error GoTo 0           ~コード~   END IF   EXIT SUB エラー処理:   EXIT SUB END SUB ところがこれでもやっぱりIF文のところでエラーがでます。 当方初心者でなぜエラーがでるのかわかりません。 わかりやすくご教授ください。 よろしくお願いします。

  • エクセルのカーソル移動 横スクロールを最後の入力列まで

    エクセルのカーソル移動について エクセルシートのコードはどこから貼り付け出来るのですか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Taget.Column=11 Then ActiveCell.Offset(1,-10).Select End If End Sub

  • エクセル デバッグできるのとできないのがある

    シートイベントについて教えてください。 シートモジュールに --------------------------------------------------------- Option Explicit Private Sub Worksheet_Activate() MsgBox "" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "" End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "" End Sub --------------------------------------------------------- と記載した時に、 F8で動かせるのは、Worksheet_Activateだけなのですがなぜでしょうか? ほかのイベントは、F8で実行させても、OSの音が鳴るだけで、マクロの実行はされません。 ご回答よろしくお願いします。

  • (エクセルVBA)セルを左クリックしたら実行させるには?

    エクセルVBA初心者です。 下のように、同じシート内のコードとして2つのサブプロシージャがある状態なのですが、 シート内のどこかのセルを左クリック→指示(1) シート内のどこかのセルを右クリック→指示(2) のようにするにはどうしたらいいのでしょうか? (この状態だと、右クリックすると選択範囲が変わったことが優先的に認識されて指示(1)のほうが実行されてしまうようです。) 説明不足かもしれませんが、何を説明していいのか分からないので、補足が必要だったら言ってください。すみませんがよろしくお願いします。 --------------------------------------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) 指示(1) End Sub --------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 指示(2) End Sub ---------------------------------------------------------------

  • マクロについて

    マクロ初心者です。 エクセルのマクロで下記は何を示しているのでしょうか。 困っているのでもなんでもないのですが、周りにマクロが判る人がまったく居ないので質問させてもらいます。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) End Sub

  • エクセルマクロ(VBA)で指定したセルが変化したときに実行するには?

    VBAでsheetの中のworksheet_changeなどでマクロを書くと、そのシー トの中のどのセルを変化させてもマクロが実行されるのですが、これ を、A1とc1とc2が変化したときだけ処理を実行させたいのです。 以下のマクロのどこかを編集すると、そのようなことが出来るのでし ょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) ----実行する内容---- End Sub Private Sub Worksheet_Change(ByVal Target As Range) ----実行する内容---- End Sub

専門家に質問してみよう