VBAマクロにて、csvファイルを出力するプログラムを作っています。
以下の動きを求めています。
1.VBAマクロを起動。
2.マクロを操作して、csvファイルを出力。
3.出力されたcsvファイルをクリックして、Excelでオープン。
--->この時、csvファイルが、VBAマクロより前面に出てくること。
現状は、VBAマクロが前面になっており、csvファイルが後ろに隠れてしまう。
VBAマクロ画面をズラさないと、CSVファイルが見えない。
可能でしょうか?
可能であれば、その方法についてご教授下さい。
実行したいマクロにショートカットキーを割り当てておけば、そのマクロが書かれたブックさえ起動していればマクロはいつでも実行できるので、わざわざVBEの画面を出しておく必要はないのではないでしょうか?
ちなみに、ショートカットキーはマクロの記録を使うことで割り当て可能です。
VBEウィンドウがアクティブのときに
SendKeys "%{F11}"
を実行すれば、ワークシートがアクティブになるので、これを利用できそうな気がします。
具体的には「csvファイルを出力」の後、csvファイルがクリックされる前、に実行すればよいのだろうか。
回答ありがとうございます。
上記、良さそうですが、マクロで「csvファイルを出力」の後で
ないとダメそうですね。
例えば、VBAマクロを起動中に、デスクトップ上のCSVファイルを
クリック→ファイルオープンした時に、csvファイルがアクティブに
なってくれるでしょうか?
>>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で動作確認しました。
詳細なご説明有難うございます。
>> ##VBEウィンドウがブックより前面にあるときに、デスクトップ上のCSVファイルを....
>>
>> と言う意味でよろしいでしょうか。
上記で問題ありません。
ご教授頂いたコードを記述(コピーペースト)しましたが、
やはりVBEウィンドウが常に前面に出てしまいます。
なお、当方も
Excel 2000を使用しております。
回答ありがとうございます。
VBAマクロの画面を表示するは、仕様となりますので必要です。
再度、質問内容を下記に記します。
1.VBAマクロ画面は常に表示する必要がある。
2.常にアクティブ状態(前面)にする必要はない。
3.VBAマクロを表示しつつ、CSVファイルを表示させたい。
その際、VBAマクロの前面に表示させること。
以上、
よろしくお願いします。