プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。

エクセルでマクロを利用しているのですが、
ユーザーフォームを画面の中で移動することが多々あります。

工場の現場で作業者がで手袋をつけたままタブレットPCの画面で
操作しているためタイトルバーをポイントすることが難しく、
ユーザーフォームの移動が難しいという状態です。

そのためユーザーフォームのタイトルバーの高さを広げて
手袋をつけた状態でもポイントしやすくしたいと思っております。

OSはWindows10でエクセルはEXCEL2010とEXCEL2000です。
この環境でユーザーフォームのタイトルバーの
高さを変えることって出来るのでしょうか?

もし出来るのでしたら、すいませんが高さを変更するための
操作を具体的に教えて下さい。

詳しい方、説明の上手な方、お手数ですがよろしくお願いします。


追記
高さを変えたいのは画像の赤い枠で囲んだ「USERFORM2」
と書いてある部分です。

名称はタイトルバーではないかもしれません。
画像を参考にして下さい。よろしくお願いします。

「EXCEL ユーザーフォームのタイトルバ」の質問画像

質問者からの補足コメント

  • へこむわー

    tatsu99さんへ


    こちらの知識不足ですいません。ユーザーフォーム(スピンボタン)の画像です。
    1)テキストボックスは確認で貼り付けただけです。
    2)頂いたコードを貼り付けて、作成(登録)したスピンボタンを押すとユーザーフォームが縮小したり動いたりすると思っていました。

    以上です。すいませんがストレスにならない範囲で教えて頂ければOKです。

    「EXCEL ユーザーフォームのタイトルバ」の補足画像1
      補足日時:2016/12/08 10:52

A 回答 (6件)

待ってー!


リンクが悪かったかな?
開いてる時でもちゃんとサイズ変更しますよ。そのつもりで載せました。

本来ならソースコード付けるんですが、何分スマホなもんで…
試してみて下さい。
me.height=100(あってるかな?)
これでいけると思います。
    • good
    • 1
この回答へのお礼

何度もアドバイス頂きありがとうございます。
スマホからですか、、、画面小さいのに本当にありがとうございます。

で、、、本題ですが、おっしゃる通り開いている時でもサイズ変更しました。

No.2のリンク先のコードには Load と Show が含まれていました。
なので、そのままコピペしたために閉じた状態からでないと
機能せずエラーが出てしまいました。

表示されているユーザーフォームのサイズ変更の
コードは以下のとおりでした。

Sub UserForm1を150、50で表示()
UserForm1.Width = 150
UserForm1.Height = 50
End Sub

今回は本当にありがとうございます。

クリアしないといけない問題がたまっており、
しばらく、こちらのサイトで質問する予定です。

ですので、またお願いします。

質問は一応、開けておきます。
何かありましたら、よろしくお願いします。
※夜遅いのにスマホが鳴ってしまったらすいません。
※ベストアンサーは明日以降につけておきます。

お礼日時:2016/12/07 23:51

No4です。


コードの部分ですが、
Sub Macro1()
UserForm2.Show vbModeless
Range("E1").Select '動作確認
End Sub
これは、標準モジュールへ登録してください。
それ以外は、フォームへ登録してください。(この場合はuserform2)
userform2を表示した状態で、
メニューの「表示(V)」->「コード(C)」を選ぶと、ソースを表示する領域が現れます。
そこへ私が提示したコードを張り付けてください。
    • good
    • 1
この回答へのお礼

何回もご解答頂きありがとうございます。
ものすごく良いです。

こちらの勘違いで作成したスピンボタン(UserForm2)の操作で、
UserForm1が縮小したり移動したりするのだと思っていました。

普通に考えれば良かったんですね。
本当にありがとうございました。

思いっきりベストアンサーですが、、、先に、くんこばさんに
朝から深夜まで3回もご解答を頂いておりますので、
今回はくんこばさんにベストアンサーをゆずらせて頂きます。
※頂いた解答はすべてgoodを押しておきます。


で、、、実は、

前回の質問ですが ↓
「【VBA】3個のワークブックから同時にシートをコピーしたい」
http://bit.ly/2h1yK2p

で、聞きたいこと、自力で手におえないかもしれないことがあります。
長くなるので、今回の質問はここで区切り、
この件は自力でやれるところまでやってみます。

もしかしたら近日中に

「【VBA】3個のワークブックから同時にシートをコピーしたい」
http://bit.ly/2h1yK2p

関連の質問をアップするかもしれませんので、
すいませんがその時はまたよろしくお願いします。

今回は、何度も丁寧なアドバイスをありがとうございました。
またよろしく、お願いします。

※アップする際は目印にとしてタイトルに「EXCEL-VBA」とつけるようにします。

お礼日時:2016/12/08 18:36

No4です。


No4で提示したマクロは、フォームの移動の際、同じ方向に移動し続けると、フォームがやがて画面をはみ出してしまいます。
画面をはみ出さないようにしたい場合は、その旨、補足してください。
画面をはみ出した時、スピンボタンも画面をはみ出していれば、フォームを元にもどせなくなることがあるかと思い、
確認した次第です。
    • good
    • 1
この回答へのお礼

No.4のコードです

Option Explicit
'フォームの大きさ
Private Sub SpinButton1_SpinUp()
'上側クリック
Me.Height = Me.Height + Me.Height / 10
Me.Width = Me.Width + Me.Width / 10
End Sub
Private Sub SpinButton1_SpinDown()
'下側クリック
Me.Height = Me.Height - Me.Height / 10
Me.Width = Me.Width - Me.Width / 10
End Sub

'フォームの移動(左右)
Private Sub SpinButton2_SpinUp()
'右側クリック
Me.Left = Me.Left + Me.Width / 10
End Sub
Private Sub SpinButton2_SpinDown()
'左側クリック
Me.Left = Me.Left - Me.Width / 10
End Sub
'フォームの移動(上下)
Private Sub SpinButton3_SpinUp()
'上側クリック
Me.Top = Me.Top - Me.Height / 10
End Sub
Private Sub SpinButton3_SpinDown()
'下側クリック
Me.Top = Me.Top + Me.Height / 10
End Sub

Sub Macro1()
UserForm2.Show vbModeless
Range("E1").Select '動作確認
End Sub

お礼日時:2016/12/08 10:42

以下がフォームの大きさ、移動を行う例です。


------------------------------------------------------
Option Explicit
'フォームの大きさ
Private Sub SpinButton1_SpinUp()
'上側クリック
Me.Height = Me.Height + Me.Height / 10
Me.Width = Me.Width + Me.Width / 10
End Sub
Private Sub SpinButton1_SpinDown()
'下側クリック
Me.Height = Me.Height - Me.Height / 10
Me.Width = Me.Width - Me.Width / 10
End Sub

'フォームの移動(左右)
Private Sub SpinButton2_SpinUp()
'右側クリック
Me.Left = Me.Left + Me.Width / 10
End Sub
Private Sub SpinButton2_SpinDown()
'左側クリック
Me.Left = Me.Left - Me.Width / 10
End Sub
'フォームの移動(上下)
Private Sub SpinButton3_SpinUp()
'上側クリック
Me.Top = Me.Top - Me.Height / 10
End Sub
Private Sub SpinButton3_SpinDown()
'下側クリック
Me.Top = Me.Top + Me.Height / 10
End Sub
-----------------------------------------------------------
コマンドボタンでも良かったのですが、スピンボタンのほうがイメージにあうか思い、スピンボタンにしました。
左側からSpinButton1、SpinButton2、SpinButton3になっています。(添付の図参照)
SpinButton1:フォームの大きさを変更します。↑:大きくする ↓:小さくする
SpinButton2:フォームの移動を行います。←:左へ移動 →:右へ移動
SpinButton3:フォームの移動を行います。↑:上へ移動 ↓:下へ移動

参考になれば幸いです。
「EXCEL ユーザーフォームのタイトルバ」の回答画像4
    • good
    • 1
この回答へのお礼

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

とりあえず頂いたコードをモジュールに張り付けて
ユーザーフォームに張り付けてみましたが動作しませんでした。

私の作業が間違えている、、、というか
ご解答して頂いたコードをモジュールに張り付けているだけなので、
何か作業が足りてないのだと思います。

やってみた作業、コードは以下の通りです。
すいませんが、引き続き教えて頂ければ嬉しいです。
※せっかく教えて頂いても、理解できない可能性もありますが
説明して頂ければわかる範囲で頑張ってみます。


1)Module1にコードを張り付け
※文字数がオーバーしたのでコードはNo.5の方に貼り付けておきます

2)画像のユーザーフォーム、スピンボタンの作成
※画像は補足に貼り付けつけておきます。

要するに自分で作ったUserForm1をこのスピンボタンで
どうやって小さくしたり、移動したりするのかわからない
という感じです。

お礼日時:2016/12/08 10:41

これでどうでしょう?


古くから利用されています。
http://www.officepro.jp/excelvbaform/form_form/i …
後は工夫次第ですね。
    • good
    • 0
この回答へのお礼

早速のご解答ありがとうございます。

リンク先のサンプルプログラムを実行してましたが、、、。
http://bit.ly/2gjTLGV

実行時エラー'400'
フォームは既に表示されているので、モーダル表示することはできません。

というエラーメッセージでした。

いろいろやってみたところ、閉じた状態のユーザーフォームを
指定のサイズで縮小表示(または拡大表示)出来るってことですよね。

よく考えてみるとユーザーフォームが邪魔になるのなら
移動、縮小もいいのですが一度閉じてしまえば良んですよね。

ということで教えて頂いた方法とは違うのですが、
「一度閉じてしまう=Unload UserForm」をつかうことにしました。

今回は解答+柔軟なアドバイスを頂き、ありがとうございます。
機会がありましたら、またよろしくお願いします。


追記
もしかしたら、他の方法があるかもしれませんし、
表示中のユーザーフォームをボタン操作で縮小したり、
移動したりできるかもしれません。
ですので、質問はしばらく開けておきます。

もし開いた状態のユーザーフォームの縮小、移動、etc.の
方法をご存じでしたら、またお願いします。

今回はご解答ありがとうございました。

お礼日時:2016/12/07 22:17

ユーザーフォームのタイトルバーは、たしか変えられないんじゃないかな。



ユーザーフォームが邪魔なら、フォームのサイズを変更するボタンを付けたらどうですか?
比較的、簡単に実装できます。

もしくは、ボタンでフォームを移動させるか。
この場合だとAPIに頼る事になると思います。
    • good
    • 0
この回答へのお礼

早速のご解答ありがとうございます。

>ユーザーフォームのタイトルバーは、たしか変えられないんじゃないかな。

やっぱりダメですか?
Windows10はデスクトップのタスクバーの高さを変えることができたりするので、
もしかしたらWindows10側でバー関連の高さを変えられるかもと思ったのですが、、、。
ダメなものは仕方ないですね。

>ユーザーフォームが邪魔なら、フォームのサイズを変更するボタンを付けたらどうですか?
比較的、簡単に実装できます

アドバイスありがとうございます。試してみたいです。
「比較的、簡単に実装できます」とのことですが、初めて聞きました。

お手数でなければ、フォームのサイズを変更するための
ボタンを付けるための具体的な操作を教えて頂ければありがたいです。

よろしくお願いします。

追記
APIに頼るのはハードルが高すぎるので、
簡単に実装できることをためしてみようと思います。

お礼日時:2016/12/07 19:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A