VBAマクロについて質問です。


VBAマクロにて、csvファイルを出力するプログラムを作っています。
以下の動きを求めています。
1.VBAマクロを起動。
2.マクロを操作して、csvファイルを出力。
3.出力されたcsvファイルをクリックして、Excelでオープン。
 --->この時、csvファイルが、VBAマクロより前面に出てくること。

現状は、VBAマクロが前面になっており、csvファイルが後ろに隠れてしまう。
VBAマクロ画面をズラさないと、CSVファイルが見えない。

可能でしょうか?
可能であれば、その方法についてご教授下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/04/06 10:10:59
  • 終了:2008/04/13 10:15:02

回答(3件)

id:arhbwastrh No.1

arhbwastrh回答回数447ベストアンサー獲得回数232008/04/06 11:34:13

ポイント27pt

実行したいマクロにショートカットキーを割り当てておけば、そのマクロが書かれたブックさえ起動していればマクロはいつでも実行できるので、わざわざVBEの画面を出しておく必要はないのではないでしょうか?

ちなみに、ショートカットキーはマクロの記録を使うことで割り当て可能です。

http://q.hatena.ne.jp/1207444259#answer_form

id:futurista

回答ありがとうございます。

VBAマクロの画面を表示するは、仕様となりますので必要です。


再度、質問内容を下記に記します。

1.VBAマクロ画面は常に表示する必要がある。

2.常にアクティブ状態(前面)にする必要はない。

3.VBAマクロを表示しつつ、CSVファイルを表示させたい。

 その際、VBAマクロの前面に表示させること。

以上、

よろしくお願いします。

2008/04/07 08:05:26
id:mj99 No.2

mj99回答回数138ベストアンサー獲得回数382008/04/07 12:26:23

ポイント27pt

VBEウィンドウがアクティブのときに

SendKeys "%{F11}"

を実行すれば、ワークシートがアクティブになるので、これを利用できそうな気がします。

具体的には「csvファイルを出力」の後、csvファイルがクリックされる前、に実行すればよいのだろうか。

http://officetanaka.net/excel/vba/statement/SendKeys.htm

id:futurista

回答ありがとうございます。

上記、良さそうですが、マクロで「csvファイルを出力」の後で

ないとダメそうですね。

例えば、VBAマクロを起動中に、デスクトップ上のCSVファイルを

クリック→ファイルオープンした時に、csvファイルがアクティブに

なってくれるでしょうか?

2008/04/07 20:03:23
id:mj99 No.3

mj99回答回数138ベストアンサー獲得回数382008/04/07 21:46:15

ポイント26pt

>>VBAマクロを起動中に、デスクトップ上のCSVファイルを...

これは、

##VBEウィンドウがブックより前面にあるときに、デスクトップ上のCSVファイルを....

と言う意味でよろしいでしょうか。

----

1.ThisWorkBookに以下のマクロを追記してください。

2.保存してブックを閉じてください。

3.再度ブックを開いてください。

これ以降、新しいブックやCSVが開かれると、常にブックウィンドウが前面に来るようになります。

Private WithEvents xApp As Application

Private Sub Workbook_Open()
    Set xApp = Application
End Sub

Private Sub xApp_WorkbookOpen(ByVal Wb As Workbook)
    If Not Application.VBE.ActiveWindow Is Nothing Then
        DoEvents
        Debug.Print "SendKeys"
        SendKeys "%{F11}"
    End If
End Sub

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

----

Excel2000で動作確認しました。

id:futurista

詳細なご説明有難うございます。

>> ##VBEウィンドウがブックより前面にあるときに、デスクトップ上のCSVファイルを....

>>

>> と言う意味でよろしいでしょうか。

上記で問題ありません。

ご教授頂いたコードを記述(コピーペースト)しましたが、

やはりVBEウィンドウが常に前面に出てしまいます。

なお、当方も

Excel 2000を使用しております。

2008/04/09 08:16:56
  • id:mj99
    回答の追加もコメント記入もできなったのでフォローできませんでした。

    ----
    >>ご教授頂いたコードを記述(コピーペースト)しましたが、
    >>やはりVBEウィンドウが常に前面に出てしまいます。


    マクロは、thisWorkbookに貼り付けましたか?
    sheetのマクロでは効果ありません。

    また、Debug.Printを仕込んであるとおり、
    マクロが正しく動作していれば、csvを開くたびに、
    イミディエイトウィンドウに"SendKeys"と出力される(このときウィンドウが切り替わる)はずです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません