■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#10058-0RE#10055:早速質問ですが魔界の仮面弁士2000-05-02(火) 03:01
#10058-0
RE#10055:早速質問ですが
題名の付け方が不正です。
投稿前に、必ず「掲示板のつかいかた」をご覧ください。m(_ _)m


> 1.テキストボックスに半角以外入力不可にしたいのですが
デザイン時にIMEModeを[3 - オフ固定]にしておくだけで良いでしょう。

IMEModeに関係なく制御する場合は、KeyPressイベントを用いて、
半角以外が入力された時に、KeyAsciiを0にして、「入力をキャンセル」するのが常套です。

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii > 255 Or KeyAscii < 0 Then KeyAscii = 0
End Sub

クリップボードからの入力にも対応させる場合は、さらにコードが必要になります。


>     If IMEMode = Not 8 Then
間違いその1。
細かい説明は省略させてもらいますが、(Not 8)というのは(-9)と同義なのです。
したがって、
  If IMEMode = -9 Then
と書いていることになります。

間違いその2。
これでは、IMEModeプロパティを調べていることにはなりません。
Text1.IMEModeが正解です。

恐らく、フォームに Option Explicitの記述がないのだと思いますが、その場合、
IMEModeというVariant型の変数が(暗黙に)宣言され、それを調べていることになります。
オプション設定で、「変数の宣言を強制する」には、必ずチェックを入れておきましょう。

これらをふまえると、
  If Not (Text1.IMEMode = vbIMEAlphaSng) Then
もしくは、
  If Text1.IMEMode <> vbIMEAlphaSng Then
のように記述するのが正しいことになります。
# なお、「vbIMEAlphaSng」というのは IMEMode用の定数で、8と同義です。


もっとも、IMEModeプロパティというのは、かな漢字変換のモードを設定するものなので、
ここでIf文で判定したところで、あまり意味はないような気もしますが…。


>         GoTo Text1_Change
GoToを使う場合には、「行ラベル」または「行番号」が必要です。
「行ラベル」とは、行頭に英数文字とコロンを組み合わせた文字列を配置した物で、

Private Sub Command1_Click()
    If Text1.Text = "" Then
        GoTo ErrExit   '←←行ラベル「ErrExit」へ飛びます。
    Else
        Exit Sub
    End If
ErrExit:        '←←これが、行ラベルです。
    MsgBox "エラー発生!"
End Sub

のように使います。
# もっとも、この場合はGoToを使わない方がすっきりしますが…(^^;)

また、GoToによる移動は、プロシージャ内でのみ有効で、
別のプロシージャ内に定義されたラベルには移動できません。

プロシージャを呼ぶ場合は、Callステートメントを使います。(GoToでもGoSubでもありません)
なお、先のコードで Call Text1_Change のようにすると、If文の条件次第では
無限ループに陥ってしまいますので、気を付けてくださいね。


> 2.それとテキストボックスの内容をテキストファイルとして出力する方法をおしえてください。
RichTextBoxを使っても良いのであれば、SaveFile メソッドを使うだけでOKです。
RichTextBoxコントロールを用いない場合は、Openステートメントでファイルを開き、
Print #ステートメントで文字列をファイルに書き出し、
Closeステートメントでファイルを閉じる、という処理になります。
このページと関連する記事:
#10056-0早速質問ですが2000-05-02(火) 02:14
#380-3テキストボックスでエンターキーでのタブ移動2003-08-14(木) 17:05
#21360-0テキストボックスの入力制限2002-06-29(土) 21:33
#15872-0せつらさん いつもありがとうございます。2001-04-28(土) 03:02
#38452-0オブジェクト名の受け渡し2001-02-07(水) 17:56
#4974-01フォーム内で複数のプロシージャをCallする時のエラー1999-12-08(水) 15:10
#44340-0数値チェックについて2001-06-22(金) 10:17
#44173-0マクロを無効にしファイルを開きたい2001-06-19(火) 09:25
#15525-0textboxの使い方について2000-02-06(日) 10:03
#2770-3テキストの文字の検査2002-09-06(金) 02:07
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)