Sub 教えて()
Dim ExAp As Application
Dim ExBk As Workbook
Dim ExSh As Worksheet
Set ExAp = CreateObject("Excel.Application")
Set ExBk = ExAp.Workbooks.Add
Set ExSh = ExBk.Worksheets(1)
ExAp.Visible = True
ExAp.WindowState = xlMaximized
ThisWorkbook.Worksheets(1).Activate
MsgBox "前面表示させたいお!"
Set ExAp = Nothing
Set ExBk = Nothing
Set ExSh = Nothing
End Sub
これを実行するとメッセージボックスが隠れてしまいます。
どうしたらよいでしょうか?
No.3ベストアンサー
- 回答日時:
自身のアプリケーションにフォーカスを持ってくる
という方法ですが、2種類、3通りの方法があります。
(1)自身のVisibleを切り替える
Application.Visible = False
Application.Visible = True
MsgBox "前面表示させたいお!"
(2)APIを使う方法
(A)WindowsAPIを定義する方法
Declare Function SetForegroundWindow Lib "USER32" _
(ByVal Hwnd As Long) As Long
Sub 教えて()
SetForegroundWindow Application.Hwnd
MsgBox "前面表示させたいお!"
End Sub
(B)ExecuteExcel4Macroを使う方法
ExecuteExcel4Macro "CALL(""USER32""," _
& """SetForegroundWindow"",""JJ""," _
& Application.Hwnd & ")"
MsgBox "前面表示させたいお!"
(1)は簡単ですが、タスクバーでの自身のアイコン位置が
最後尾になってしまう弱点があります。
(2)はSetForegroundWindowで自身のアプリケーションに
フォーカスを取り戻しています。
(A)は正規のAPI定義手法を使っています。
(B)は以前のAPI呼び出しです。
No.4
- 回答日時:
他には
':
AppActivate Application.Caption
>ThisWorkbook.Worksheets(1).Activate
などもありでしょうか。
メッセージボックスだけでいいのでしたら
CreateObject("WScript.Shell").Popup "前面表示させたいお!", , , vbSystemModal
http://msdn.microsoft.com/ja-jp/library/cc364428 …
もありかもしれません。
Sub 教えて()
Dim ExAp As Application
Dim ExBk As Workbook
Dim ExSh As Worksheet
Set ExAp = CreateObject("Excel.Application")
Set ExBk = ExAp.Workbooks.Add
Set ExSh = ExBk.Worksheets(1)
'ExAp.Visible = True
'ExAp.WindowState = xlMaximized
'ThisWorkbook.Worksheets(1).Activate
MsgBox "前面表示させたいお!"
ExAp.Visible = True
ExAp.WindowState = xlMaximized
Set ExAp = Nothing
Set ExBk = Nothing
Set ExSh = Nothing
End Sub
というふうにメッセージボックスをクリックしたら
エクセルが表示されるようにしたら自分のしたいことが出来ました。
No.2
- 回答日時:
はじめまして、通りすがると申します。
これなら、どうでしょうか?
Dim ExAp As Application
Dim ExBk As Workbook
Dim ExSh As Worksheet
'Set ExAp = CreateObject("Excel.Application")
'Set ExBk = ExAp.Workbooks.Add
'Set ExSh = ExBk.Worksheets(1)
'ExAp.Visible = True
'ExAp.WindowState = xlMaximized
'上記コメントの変わりに下記2行を追加
Dim varRetval As Variant
varRetval = Shell("excel.exe", vbNormalNoFocus)
ThisWorkbook.Worksheets(1).Activate
MsgBox "前面表示させたいお!"
Set ExAp = Nothing
Set ExBk = Nothing
Set ExSh = Nothing
No.1
- 回答日時:
下記の「MsgBoxSetForeground」を指定してみたらいかがでしょうか。
http://msdn.microsoft.com/ja-jp/library/139z2azd …
MsgBox "前面表示させたいお!", vbMsgBoxSetForeground
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
【選手権お題その3】この画像で一言【大喜利】
とあるワンシーンを切り取った画像。この画像で一言、お願いします!
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
10
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
11
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
12
IEブラウザよりmsgboxを手前に表示したい
PowerPoint(パワーポイント)
-
13
マクロを実行中に、msgbox を表示させたまま、ワークシートを上下左右に移動表示させたい。
Excel(エクセル)
-
14
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
-
15
フォントの大きさ
Visual Basic(VBA)
-
16
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
17
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
18
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
19
ExcelVBAで今開いているユーザ情報を取得できますか?
Visual Basic(VBA)
-
20
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスを前面に表...
-
C#でButtonのフォーカス枠を消...
-
SPREAD(GrapeCity)のセルにフォ...
-
コンボボックスの開いたリスト...
-
Chrome フォーカス時に枠が表示...
-
フォトショのアクションを別のM...
-
レーザのスポット径の計算式
-
Wordでハイパーリンクをクリッ...
-
eclipseでフォーカスされた変数...
-
子ダイアログのコントロールに...
-
VB.NETとInputMan について
-
SharpDevelopの使い方
-
スラッシュを固定表示したまま...
-
Delphiで最前列にFormを表示し...
-
Excelのマクロで実行時エラー”1...
-
WIN32APIについて質問です。
-
ゲーム中の画面に白いフラッシ...
-
デュアルディスプレイ(マルチ...
-
初期フォーカスについて
-
コンボボックスの三角を一時的...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SPREAD(GrapeCity)のセルにフォ...
-
メッセージボックスを前面に表...
-
C#でButtonのフォーカス枠を消...
-
コンボボックスの開いたリスト...
-
Excelのマクロで実行時エラー”1...
-
Chrome フォーカス時に枠が表示...
-
コンボボックスの三角を一時的...
-
DataGridViewで入力チェック後...
-
雷のようなアニメーションをウ...
-
レーザのスポット径の計算式
-
Macのウィンドウが透ける
-
DAMのデンモクの使い方
-
初期フォーカスについて
-
フォトショのアクションを別のM...
-
VC++でマウスホイールイベント...
-
PowershellでCLIとISEの結果が違う
-
eclipseでフォーカスされた変数...
-
TDSマジックランプシアター 箱...
-
[化学基礎] μmのμはどうして...
-
除光液の正しい捨て方がわかり...
おすすめ情報