
お世話になっております。
エクセルでマクロを利用しているのですが、
ユーザーフォームを画面の中で移動することが多々あります。
工場の現場で作業者がで手袋をつけたままタブレットPCの画面で
操作しているためタイトルバーをポイントすることが難しく、
ユーザーフォームの移動が難しいという状態です。
そのためユーザーフォームのタイトルバーの高さを広げて
手袋をつけた状態でもポイントしやすくしたいと思っております。
OSはWindows10でエクセルはEXCEL2010とEXCEL2000です。
この環境でユーザーフォームのタイトルバーの
高さを変えることって出来るのでしょうか?
もし出来るのでしたら、すいませんが高さを変更するための
操作を具体的に教えて下さい。
詳しい方、説明の上手な方、お手数ですがよろしくお願いします。
追記
高さを変えたいのは画像の赤い枠で囲んだ「USERFORM2」
と書いてある部分です。
名称はタイトルバーではないかもしれません。
画像を参考にして下さい。よろしくお願いします。

No.3ベストアンサー
- 回答日時:
待ってー!
リンクが悪かったかな?
開いてる時でもちゃんとサイズ変更しますよ。そのつもりで載せました。
本来ならソースコード付けるんですが、何分スマホなもんで…
試してみて下さい。
me.height=100(あってるかな?)
これでいけると思います。
何度もアドバイス頂きありがとうございます。
スマホからですか、、、画面小さいのに本当にありがとうございます。
で、、、本題ですが、おっしゃる通り開いている時でもサイズ変更しました。
No.2のリンク先のコードには Load と Show が含まれていました。
なので、そのままコピペしたために閉じた状態からでないと
機能せずエラーが出てしまいました。
表示されているユーザーフォームのサイズ変更の
コードは以下のとおりでした。
Sub UserForm1を150、50で表示()
UserForm1.Width = 150
UserForm1.Height = 50
End Sub
今回は本当にありがとうございます。
クリアしないといけない問題がたまっており、
しばらく、こちらのサイトで質問する予定です。
ですので、またお願いします。
質問は一応、開けておきます。
何かありましたら、よろしくお願いします。
※夜遅いのにスマホが鳴ってしまったらすいません。
※ベストアンサーは明日以降につけておきます。

No.6
- 回答日時:
No4です。
コードの部分ですが、
Sub Macro1()
UserForm2.Show vbModeless
Range("E1").Select '動作確認
End Sub
これは、標準モジュールへ登録してください。
それ以外は、フォームへ登録してください。(この場合はuserform2)
userform2を表示した状態で、
メニューの「表示(V)」->「コード(C)」を選ぶと、ソースを表示する領域が現れます。
そこへ私が提示したコードを張り付けてください。
何回もご解答頂きありがとうございます。
ものすごく良いです。
こちらの勘違いで作成したスピンボタン(UserForm2)の操作で、
UserForm1が縮小したり移動したりするのだと思っていました。
普通に考えれば良かったんですね。
本当にありがとうございました。
思いっきりベストアンサーですが、、、先に、くんこばさんに
朝から深夜まで3回もご解答を頂いておりますので、
今回はくんこばさんにベストアンサーをゆずらせて頂きます。
※頂いた解答はすべてgoodを押しておきます。
で、、、実は、
前回の質問ですが ↓
「【VBA】3個のワークブックから同時にシートをコピーしたい」
http://bit.ly/2h1yK2p
で、聞きたいこと、自力で手におえないかもしれないことがあります。
長くなるので、今回の質問はここで区切り、
この件は自力でやれるところまでやってみます。
もしかしたら近日中に
「【VBA】3個のワークブックから同時にシートをコピーしたい」
http://bit.ly/2h1yK2p
関連の質問をアップするかもしれませんので、
すいませんがその時はまたよろしくお願いします。
今回は、何度も丁寧なアドバイスをありがとうございました。
またよろしく、お願いします。
※アップする際は目印にとしてタイトルに「EXCEL-VBA」とつけるようにします。

No.5
- 回答日時:
No4です。
No4で提示したマクロは、フォームの移動の際、同じ方向に移動し続けると、フォームがやがて画面をはみ出してしまいます。
画面をはみ出さないようにしたい場合は、その旨、補足してください。
画面をはみ出した時、スピンボタンも画面をはみ出していれば、フォームを元にもどせなくなることがあるかと思い、
確認した次第です。
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

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
-----------------------------------------------------------
コマンドボタンでも良かったのですが、スピンボタンのほうがイメージにあうか思い、スピンボタンにしました。
左側からSpinButton1、SpinButton2、SpinButton3になっています。(添付の図参照)
SpinButton1:フォームの大きさを変更します。↑:大きくする ↓:小さくする
SpinButton2:フォームの移動を行います。←:左へ移動 →:右へ移動
SpinButton3:フォームの移動を行います。↑:上へ移動 ↓:下へ移動
参考になれば幸いです。

ご解答ありがとうございます。
とりあえず頂いたコードをモジュールに張り付けて
ユーザーフォームに張り付けてみましたが動作しませんでした。
私の作業が間違えている、、、というか
ご解答して頂いたコードをモジュールに張り付けているだけなので、
何か作業が足りてないのだと思います。
やってみた作業、コードは以下の通りです。
すいませんが、引き続き教えて頂ければ嬉しいです。
※せっかく教えて頂いても、理解できない可能性もありますが
説明して頂ければわかる範囲で頑張ってみます。
1)Module1にコードを張り付け
※文字数がオーバーしたのでコードはNo.5の方に貼り付けておきます
2)画像のユーザーフォーム、スピンボタンの作成
※画像は補足に貼り付けつけておきます。
要するに自分で作ったUserForm1をこのスピンボタンで
どうやって小さくしたり、移動したりするのかわからない
という感じです。
No.2
- 回答日時:
早速のご解答ありがとうございます。
リンク先のサンプルプログラムを実行してましたが、、、。
http://bit.ly/2gjTLGV
実行時エラー'400'
フォームは既に表示されているので、モーダル表示することはできません。
というエラーメッセージでした。
いろいろやってみたところ、閉じた状態のユーザーフォームを
指定のサイズで縮小表示(または拡大表示)出来るってことですよね。
よく考えてみるとユーザーフォームが邪魔になるのなら
移動、縮小もいいのですが一度閉じてしまえば良んですよね。
ということで教えて頂いた方法とは違うのですが、
「一度閉じてしまう=Unload UserForm」をつかうことにしました。
今回は解答+柔軟なアドバイスを頂き、ありがとうございます。
機会がありましたら、またよろしくお願いします。
追記
もしかしたら、他の方法があるかもしれませんし、
表示中のユーザーフォームをボタン操作で縮小したり、
移動したりできるかもしれません。
ですので、質問はしばらく開けておきます。
もし開いた状態のユーザーフォームの縮小、移動、etc.の
方法をご存じでしたら、またお願いします。
今回はご解答ありがとうございました。
No.1
- 回答日時:
ユーザーフォームのタイトルバーは、たしか変えられないんじゃないかな。
ユーザーフォームが邪魔なら、フォームのサイズを変更するボタンを付けたらどうですか?
比較的、簡単に実装できます。
もしくは、ボタンでフォームを移動させるか。
この場合だとAPIに頼る事になると思います。
早速のご解答ありがとうございます。
>ユーザーフォームのタイトルバーは、たしか変えられないんじゃないかな。
やっぱりダメですか?
Windows10はデスクトップのタスクバーの高さを変えることができたりするので、
もしかしたらWindows10側でバー関連の高さを変えられるかもと思ったのですが、、、。
ダメなものは仕方ないですね。
>ユーザーフォームが邪魔なら、フォームのサイズを変更するボタンを付けたらどうですか?
比較的、簡単に実装できます
アドバイスありがとうございます。試してみたいです。
「比較的、簡単に実装できます」とのことですが、初めて聞きました。
お手数でなければ、フォームのサイズを変更するための
ボタンを付けるための具体的な操作を教えて頂ければありがたいです。
よろしくお願いします。
追記
APIに頼るのはハードルが高すぎるので、
簡単に実装できることをためしてみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Excel(エクセル) vba フォーム軽量化 1 2022/09/07 18:59
- Google Drive Google form を利用して 問い合わせフォームを作りたい 1 2022/04/25 14:15
このQ&Aを見た人はこんなQ&Aも見ています
-
UserForm
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
フォントの大きさ
Visual Basic(VBA)
-
7
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
8
vbaでmsgboxの位置を指定
PowerPoint(パワーポイント)
-
9
【VBA】スピンボタンでアクティブセルを移動したい
Excel(エクセル)
-
10
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
11
ACCESSでタイトルバーを非表示にする方法
Access(アクセス)
-
12
テキストボックスのカーソル位置の取得・設定方法
Visual Basic(VBA)
-
13
VBAでEmpty値って何ですか?
Excel(エクセル)
-
14
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
15
VB6,リストボックスの特定行の色変更は可能?
Visual Basic(VBA)
-
16
VBA(エクセル)のユーザーフォームの固定
Visual Basic(VBA)
-
17
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
18
VBA 見つからなかった時の処理
Excel(エクセル)
-
19
(Excel+VBA)ユーザーフォームのみ表示で完結させたい。
Excel(エクセル)
-
20
エクセルVBA 複数列のリストボックス内を検索して値を複数列表示したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォーム上に現在日時...
-
(Excel+VBA)ユーザーフォームの...
-
アクセス2013 フォームが...
-
エクセルのチェックボックスの...
-
クリックイベントなのに、2回ク...
-
ブックをCloseまたはQuitで閉じ...
-
オブジェクト(コントロール)...
-
ユーザーフォームのテキストボ...
-
コントロールの存在確認
-
なぜエラーになるのでしょう?...
-
エクセルVBAのフォームを最...
-
エクセルVBA フォーム上でOnkey...
-
Excelにて、ユーザーフォームで...
-
Hideについて(.NET)
-
VBAでユーザーフォームを再表示...
-
Access-VBAのPublic変数につい...
-
VBAのテキストフォームの折り返...
-
Form_Load と Form_Activate の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ACCESSのフォーム、開くんです...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
ユーザーフォーム上に現在日時...
-
Hideについて(.NET)
-
VBA(エクセル)のユーザー...
-
フォームウィンドウを最前面に...
-
(Excel+VBA)ユーザーフォームの...
-
コントロールの存在確認
-
VB.NETでフォームロード中のエ...
-
VBAのテキストフォームの折り返...
-
パソコンの画面に合わせてユー...
-
モードレスでユーザーフォーム...
-
ユーザーフォームのラベルに時...
おすすめ情報
tatsu99さんへ
こちらの知識不足ですいません。ユーザーフォーム(スピンボタン)の画像です。
1)テキストボックスは確認で貼り付けただけです。
2)頂いたコードを貼り付けて、作成(登録)したスピンボタンを押すとユーザーフォームが縮小したり動いたりすると思っていました。
以上です。すいませんがストレスにならない範囲で教えて頂ければOKです。