今だけ人気マンガ100円レンタル特集♪

VB.NETで困っております。

テキストボックスなどに数値を格納する場合なのですが,数値がマイナスの場合,「-」ではなくて,「▲」の記号を使って表すには,どのようにしたら良いのでしょうか?
formatなどで指定できるのでしょうか?
方法をご存知の方がいらしたら教えていただけませんか?
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

数値結果を表示するだけなら


TextChangedイベントに
TextBox1.Text = TextBox1.Text.Replace("-", "▲")
を入れておけば大丈夫だと思います。
    • good
    • 0
この回答へのお礼

replaceを使えば良いのですね。
TextBoxにデータセットを連結している場合でも,
この方法が有効だと良いのですが。
これから確認して見ます。
どうもありがとうございました。

お礼日時:2005/08/18 09:25

String.Formatでの数値の書式指定でマイナスを▲で表すような書式制御指定はありません。

カスタム型のカスタム書式指定制御文字とかは作成できますが、そんなことより単純に
if(数値<0) then
テキストボックス.Text = "▲" & Math.Abs(数値)
end if
とかすればいいと思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2005/08/18 09:21

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB.NETのテキストボックスの書式指定

VB.NETで開発練習中です。

フォームへ呼び出したデーターを、数値データであれば
カンマ区切りとか、小数点以下の桁数を指定するのは
どうしたらできるのでしょうか?
ソースのACCESSのテーブルには指定してあっても、
呼び出したデータには当然反映されませんよね。
初歩的ですがどなたか教えてください。
よろしくお願いします。

Aベストアンサー

No.3です。

私のレスは間違いでした。

FormのLoadイベントでテキストボックスに値を入れているのですね?

であれば、TextBoxのTextChangedイベントが発生します。このイベントで処理をします。

テキストボックスが多数あるのであれば、コントロール配列を使って処理をすればいいでしょう。

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

Q電卓の作成 VB

こんにちは。課題で、関数電卓作る必要があり、
まずは、基礎となる、Windowsのアクセサリーの電卓を
作らなければいけないのですが、私はVBの基礎が少しできるくらいです。作成期限は2週間です。
これから、死に物狂いでやるしかないと思うのですが、
何をどのように、すればよいかまったく見当がつきません。

この先が不安でしょうがないのですが、
電卓を作成するために、まず必要なものは参考書でしょうか?
入門書はもっているのですが、電卓についてはいっさいふれて
いないため、購入する必要があるのかと思うのですが、
たとえ、購入した本を丸写ししても自分のために
ならないと思うのですが、そうなるのを
防ぐためにはどうすればよいでしょうか?

Aベストアンサー

>電卓を作成するために、まず必要なものは参考書でしょうか?

見本になる関数電卓でしょう。Windows標準の電卓の関数モードは市販の関数電卓の機能が一部省略されていたり表記が違ったりします。まずは、関数電卓を実際に使って必要な機能をリストアップすることが重要です。

>購入した本を丸写ししても自分のためにならないと思うのですが、そうなるのを防ぐためにはどうすればよいでしょうか?

自分で試行錯誤するしかありません。最近はネット上にVBのリファレンスとして使える便利なサイトがたくさんあるので入門書とネットの情報からプログラムを設計しましょう。関数電卓が出来る計算機能は全てVBの関数で用意されているので後はそれを組み合わせるだけです。

http://hanatyan.sakura.ne.jp/

上記のサイトは自分もよく使っていますがVBの簡易リファレンスや色々な使い方のサンプルが載っているので便利です。電卓の作り方は載っていませんが各種関数と使い方は載っているので自分でくみ上げるためには役に立つでしょう。もし、行き詰まったら「VB 電卓」などで検索すれば以外とサンプルは見つかります。

>電卓を作成するために、まず必要なものは参考書でしょうか?

見本になる関数電卓でしょう。Windows標準の電卓の関数モードは市販の関数電卓の機能が一部省略されていたり表記が違ったりします。まずは、関数電卓を実際に使って必要な機能をリストアップすることが重要です。

>購入した本を丸写ししても自分のためにならないと思うのですが、そうなるのを防ぐためにはどうすればよいでしょうか?

自分で試行錯誤するしかありません。最近はネット上にVBのリファレンスとして使える便利なサイトがたくさん...続きを読む

Qラジオボタンの初期指定

ラジオボタンを12個使用する画面を今作っているのですが、初期立ち上げ時に1番目のラジオボタンを選択した状態にするのはどうすれば良いのでしょうか?

プログラムの流れ上選んでいなくても、1番目を選んだ状態に次のウィンドウは開くのですが、聞く話で、それは不安定要素があるって聞いた物ですから。

Aベストアンサー

VB.NETだったら
デザイン時に
Checkedをtrue

Q文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

Qある文字列が全て数字であるかどうかをチェックするには?

一番効率のよいと思われる方法を教えて下さい。
一つ一つ数字であるか見る方法しか思いつきません。

Aベストアンサー

Sub test01()
Dim a As String
a = InputBox("数=")
For i = 1 To Len(a)
If Asc(Mid(a, i, 1)) < 48 Or Asc(Mid(a, i, 1)) > 57 Then
MsgBox i & "字目でNon-Numeric"
Exit For
End If
Next i
End Sub

QTextBoxに半角数字のみの入力しかできないようにしたい

タイトルどおりです。
フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。
000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。

GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。
数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・?
(“Number”で左側から入力できるならそれがいいのですが)

そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。

もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

Aベストアンサー

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ' Ctrl + V
Case &H18 ' Ctrl + X
Case &H1A ' Ctrl + Z
Case Else
KeyAscii = 0
End Select
End Sub

で、いかがでしょうか。

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ...続きを読む

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング