• ベストアンサー

VBA

VBEの標準モジュール(例Module1)にVBAのプログラムを書き、 実行した時、ワークシート(例Worksheets(”sheet1”)のウインドウを自動的に開くには(前面に持ってくるには)どのようにコーディングすれば良いのでしょうか。今は実行後確認するため、プロジェクトのSheet1で右クリックして「オブジェクトの表示」でSheet1を出したり、タスクバーをクリックしていますが。まずSheet1を前面に出して処理をしたい。Activate,Select、Showなど試しても効果がありません。

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

  • ベストアンサー
  • baka
  • ベストアンサー率83% (15/18)
回答No.5

ブックやシート間での問題ではなく、Excel のウィンドウそのものを VBE のウィンドウの手前に表示したい、ということでしょうか? だとすれば手動で切り替えるはごくあたりまえのように思います。 一応次のような方法が考えられます。違っていたら補足してください。 ・VBE からではなく Excel のウィンドウからマクロを実行する ・VBE のウィンドウを最小化する (もちろん自動で元には戻りません) Application.VBE.MainWindow.WindowState = vbext_ws_Minimize ・SetWindowPos で Excel のウィンドウを最前面にする (ただし最前面になりっぱなし)

imogasi
質問者

お礼

ご解答有難うございました。2番目の方法もコピーし 実行しましたが、VBEの画面のままでした。 今後も勉強して行きます。

その他の回答 (4)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

Moduleはコンパイルしたんですよね?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

Selectで表示できるのでは? Sub ?????()    Sheets("Sheet1").Select End Sub 単純に上記で良いと思いますが。

imogasi
質問者

お礼

早速ご解答有難うございました。以前からご解答のようにもテストしているのですが、Moduleのコードの画面が、実行をクリックしても、ワークシートの画面に切り替わりません。どこか設定を変える必要が有るのでしょうか。今回もテストしましたがワークシートの画面になりません。エクセル2000です。

回答No.2

Sheets("Sheet1").Select 〈Select〉または〈Activate〉でもよいです。 例 シート3のC12のセル選択 Sheets("Sheet3").Activate Range("C12").Activate 〈Select〉または〈Activate〉でもよいです。

imogasi
質問者

お礼

早速ご解答有難うございました。解答のようにテストしましたが、実行をクリックしても、ワークシートの画面に切り替わりません。どこか設定を変える必要が有るのでしょうか。思い当たる節があれば教えてください。

  • baka
  • ベストアンサー率83% (15/18)
回答No.1

Activate メソッドで表示されるはずですが。 ThisWorkbook.Sheets("Sheet1").Activate 対象となるオブジェクトがきちんと指定されていないのでは?

imogasi
質問者

お礼

ご回答有難うございました。お礼が送れて失礼しました。 ただ教えていただいたとおりやって、実行をクリいクしましたが、VBEの画面のままです。今後もこの件につき勉強していきます。有難うございました。

関連するQ&A