• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルマクロでインプットボックスを使い…

    エクセルのマクロでインプットボックスを使い、氏名を入力させ、 その入力された値を、別のブックにコピーする方法を教えてください。 VBAは初心者で、具体的なアドバイスがあると助かります。 Private Sub Workbook_Open() Dim name As String name = InputBox("名前を入力してください") End Sub ここまではできました。 このブックはc:\データ\個別入力です。 このあと、インプットボックスに入力された氏名をコピーし、 c:\データ\集計というファイルのシート1を開き セルG5に値コピーをしたいのです。 できれば、インプットボックスに氏名を入力せずにキャンセルボタンが押されたり 閉じるボタンが押された場合には 「氏名を入力してください」と再度入力を促すようなメッセージが出ると大変感激です。 わかる方には簡単なんでしょうけど、 なにぶん初心者ですので… どうぞよろしくお願いします。

  • テキストボックスの初期値について

    テキストボックスを配置したのですが 「<INPUT type="text"・・・」 となっているためブラウザで入力するときに初期値が全角日本語文字になってしまいます。 半角数値しか入力しないテキストボックスなので初期値を半角数値(または英数字)にしたいのですが出来るのでしょうか? 検索などをかけて調べてみたのですがそれらしいタグが見つからなかったので質問させていただきました。

    • ベストアンサー
    • HTML
  • テキストボックスの書式について

    例えばセルA1の書式が、分類:日付、種類:3月14日とします。(数字は半角) この場合、セルA1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示されます。 マクロを作成しているのですが、セルA1とテキストボックスの書式がどうしてもうまくいきません。 セルA1はUserform1内のTextbox1の値を取得します。 しかし、Textbox1の値をセルA1へ表示させると、セルA1と同じ書式に表示されません。 テキストボックスの値は文字列として扱われているようです。 Textbox1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示される方法はありませんか?

  • EXCEL VBA でインプットボックスを開いたときの入力モードの設定について

    EXCEL VBAのインプットボックスのことで教えていただきたいことがあります。 Dim 行数 As Variant 行数 = Application.InputBox("数字を入力してください") インプットボックスを設置しているのですが、 このインプットボックスがアップされたときにIMEをオフにすることは出来るのでしょうか。 インプットボックスに入力する数字を強制的に半角で入力するようにしたいと考えています。 IMEMode = fmIMEModeOff をどこかに入れたら出来るのではないかと思って色々やってみましたが、どうしても上手く作動してくれません。 よろしくお願いいたします。

  • エクセルのインプットボックスの入力文字の表示について。

    エクセルのインプットボックスにパスワードを入力して保護を解除するマクロを使っているのですが、インプットボックスに入力しているときに文字が見えてしまいます。出来れば『*』か何かで表示されるように出来ないでしょうか。よい方法があれば教えて下さい。よろしくお願いします。

  • インプットボックスに数値を入力するまで繰り返すためには、どのように書いたらよろしいでしょうか??

    宜しくお願い致します。 現在このように記述しています。 a = InputBox(prompt:="a数値を入力してください", title:="a数値") Do While a = "" Or IsNumeric(a) = False msgbox prompt:="数値を入力してください", title:="未入力" a = InputBox(prompt:="a数値を入力してください", title:="未入力") Loop このように記述するとループに入っているのでインプットボックスが表示されたときにキャンセルボタンを押しても脱出することができないので、他の方法でループかできるはずだと考えていますが、方法の検討がつきません。 どなたかその方法に関して御教授お願い致します。

  • アルファベットを全角から半角に

    エクセル2003です。 エクセルに入力してある全角のアルファベットを全て半角に変換する方法はありますか? 表の中に、半角、全角が入り混じった状態でアルファベットが入力してあるのですが、それを一発で全て半角になるようにしたいのですが、可能でしょうか? できればマクロを使わずにしたいのですが、そのような方法がありましたらご教授お願いします。

  • Excel のセルの書式設定について

    全角のアルファベットや数字を入力したら、強制的に半角になるようにしたいのですが、何か方法ありませんか? 文字列参照ではなく、入力した場所のセルの全角を半角に表示させたいのです。 よろしくお願い致します。

  • テキストボックスの入力制限

     VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。

  • テキストBOXの入力制限について

    テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???