エクセルVBA
エクセルVBAのコードについて質問です。エクセル初心者です。
Windows10で32bit版のエクセル2010を使っています。
1.エクセルのマクロは32bit版でも64bit版にも対応できるようコードを組んでいるのですが、
32bitで動いているのか64bitで動いているのかどのように確かめたらよいでしょうか?
あるマクロの途中に
#If VBA7 And win64 Then
MsgBox ” 64bit ”
#Else またはIf VBA7 And win32
MsgBox ”32bit”
#End If
を組み込むと、If分の終わりには
If分の最後に#EndIfが必要です、と表示されて(EndIfを書いているのに)
エラーになります。
2.エクセルマクロをIEと連携させて使っています。
IEを操作させている途中でエクセルのメッセージBoxを最前面表示させるには
どうしたらよいでしょうか?
IEで特定の操作をしたら、エクセルが最前面に出て、OKボタン付きのメッセージBoxが表示され、OKボタンを押すとIEを操作する
という動作をコードに書いています。
コードを書いた直後は、IE上での特定の操作のあとメッセージBoxが適切に最前面表示されますが、
一度保存し閉じてファイルを開き直しマクロを実行すると、メッセージBoxは最前面に出てくれません。
検討したコードは
1. SetForegroundWindow
2.VBA AppActivate. Microsoft Excel. Capture
3.AppActivate Microsoft
です。いずれのコードを書いた場合も、保存まではうまくメッセージBoxに回答できるが
保存しファイルを開き直してマクロを実行するとメッセージBoxはIEの後ろに隠れたままであり、エクセルを選択しないと最前面表示されません。
しかし一応最前面表示されることもあることから、マクロを一度実行するごとにエクセル内のデータが変わる可能性も考えられす。
お礼
回答ありがとうございます。 無事に、保存せずにExcelを終了することができました。