• 締切済み

インプットボックスの書式について

エクセルVBAを勉強中の初心者です 現在作成中のマクロでインプットボックスを使用しているのですが 次のような点がわかりません、どなたか教えて頂けないでしょうか 1。インプットボックスのキャンセルボタンが押されたことを検出する方法 2。インプットボックスの縦、横の幅の調整方法 3。数値を全角で入力したとき、半角にして取り出す方法 4。アルファベットを全角で入力したとき、半角で取り出す方法 1~4のどれでも結構ですのでご指導お願いします tomosato

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

1.について、色々やってやっとと言うところです。 Inputメソッドの利用に当たります。力点がキャンセルの捕捉にあります。ESCキー,キャンセルボタン、Xボタンを捕捉します。使ってみて下さい。 Sub test01() Dim a p01: a = Application.InputBox(prompt:="数=", Title:="aaa", Left:=100, Top:=100, Type:=3) If a = False Then MsgBox "キャンセルが押された" GoTo p01 End If If a = "" Then GoTo p01 MsgBox a End Sub Type:=3は1+2で1=数値、2=文字列でくわえたものを指定します。 2.はWidthに当たる指定が出来ないようです。 3.4は#1でご回答済み。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 InputBox関数のこととして回答します。(InputBoxメソッドというのもあります。) 1. [キャンセル]ボタンが押されると、関数は長さ0の文字列("")を返します。 ただし、テキストボックスに何も入力せずに[OK]を押した場合と区別が付きません。 どちらも同じ処理にする(再入力を促すとか)しかないと思います。 2. InputBox関数の第4、5引数に画面の左端からInputBoxの左端の位置、画面の上端からInputBoxの上端の位置をtwip単位で指定します。 なお、1440twip=1インチ=2.54cmなので、換算して引数に代入して下さい。 3.と4. StrConv関数で変換します。 例)StrConv("987Abc", vbNarrow)で、"987Abc"を返します。 詳細はヘルプを参照して下さい。

tomosato
質問者

お礼

maruru01さん再びお世話になります いつも的確にわかりやすいご指導ありがとうございます おかげさまで、無事解決できました お手数をかけて申し訳ありません、感謝します

関連するQ&A