[[20160710132732]] 『MSGBOXの表示位置を指定するには』(初心者9371) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『MSGBOXの表示位置を指定するには』(初心者9371)

MSGBOXを表示位置を指定するにはどうすればいいでしょうか
MsgBox ”始めます”
で画面の中央にMSGBOXが表示されますが
これを画面の左上や右上に等、任意に指定するには
どういうふうにすればいいでしょうか

< 使用 Excel:Excel2013、使用 OS:Windows10 >


答えは一番最後に。
http://officetanaka.net/excel/vba/function/MsgBox.htm

(マナ) 2016/07/10(日) 14:06


マナさん
有難うございました。
理解しました。
MSGBOXが表示するところは常時見せておきたいところ
ので違う場所に表示させたいと思いました。
 初心者9371  2016/07/10(日) 14:06


こんにちは。

一応できますけど。
こんなことするくらいなら、ユーザーフォームを使うほうがよほどカンタンです。
http://homepage1.nifty.com/rucio/main/technique/MsgBox.htm

>MSGBOXが表示するところは常時見せておきたいところ
> ので違う場所に表示させたいと思いました。
シートのほうを動かしてはどうですか?
泥臭いでしょうか(笑
やはりユーザーフォームが「ほどほど」かもしれません。

( 佳 ) 2016/07/10(日) 16:30


 すでに回答があるように、このために、わざわざフックという難解、かつ危険なコードを書くまでもなく
 ユーザーフォームによる対応が最もシンプルだと思います。

 なので、以下は、遊びです。(とりあえず はい、いいえ のタイプ)

 1.シート上の好きなところに図形を3つ挿入します。背景色や文字色や形状や場所はどこでもOK。
   お好みなら背景色の透明度を調整して半透明にしておくこともOK.
   (これらはユーザーフォームでも実現できますが、そのためのコードが煩雑になります)
 2.挿入した図形の1つはメッセージ文言が入るように横長、この図形の名前を "MyMsg" にしておきます。
 3.後の2つは、テキストとして、 はい と いいえ。名前を "MyYes" と "MyNo" にしておきます。
 4.MyYes と MyNo に 以下の Reply をマクロ登録しておきます。
 5.検索と選択 --> オブジェクトの選択と表示 で、すべて非表示にしておきます。

 標準モジュールに以下。 Test を実行し、そのあと はい か いいえ を選んでみてください。

 Sub Test()
    Message "こんにちは、さようなら"
 End Sub

 Sub Message(msg As String)
    With ActiveSheet.Shapes("MyMsg")
        .TextFrame2.TextRange.Characters.Text = msg
        .Visible = True
    End With
    ActiveSheet.Shapes("MyYes").Visible = True
    ActiveSheet.Shapes("MyNo").Visible = True

    Beep

 End Sub

 Sub Reply()
    Select Case Application.Caller
        Case "MyYes"
            'Yesの場合のコードをここに書く
            MsgBox "Yes"    'テスト確認用
        Case "MyNo"
            'No の場合のコードをここに書く
            MsgBox "No"     'テスト確認用
    End Select

    ActiveSheet.Shapes("MyMsg").Visible = False
    ActiveSheet.Shapes("MyYes").Visible = False
    ActiveSheet.Shapes("MyNo").Visible = False

 End Sub

(β) 2016/07/10(日) 19:56


 佳さん
有難うございました。
ユーザ−ホーム 経験がありませんが確認させて頂きます

βさん
有難うございました。

 確認させて頂きます

 お二人へ
 確認すのが大変遅くなりすみませんでした
 少し時間を頂きます
 初心者9371  2016/07/11(月) 21:45

 βさん
 支援して頂いた内容、できました
 1テキストボックス自体の名前を自分なりに変更できる
 2Message "こんにちは、さようなら" のような
 ものがあり
 Sub Message(msg As String)
    With 〜
 で指定の文字を名前を付けたテキストボックスに表示する
 3テキストボックスを非表示にしておいてマクロで表示したり
 非表示にしたりできる
 4With ActiveSheet.Shapes("MyMsg")
        .TextFrame2.TextRange.Characters.Text = msg
        .Visible = True
    End With
 ここは難しいのでもう少し勉強します

 結果、初めにテキストボックを任意の場所に置いておく
 ことで画面上の邪魔にならなくできます
  
 ユーザーフォームの方は
 これからやってみます
 有難うございました。

  初心者9371 2016/07/15(金) 05:16


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.