【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

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

A 回答 (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でご回答済み。
    • good
    • 0

こんにちは。

maruru01です。

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

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

お礼日時:2002/10/08 12:03

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