• 締切済み

ComboBoxの項目からある部分の数字だけを抽出したい。

chibita_papaの回答

回答No.1

こんな感じでどうでしょう Private Sub test Dim s As String = "カツ丼 500円" Console.WriteLine(tanka(s)) End Sub Function tanka(ByVal vstr As String) As Integer '全角スペースを半角スペースに Dim arr As String() = StrConv(vstr, VbStrConv.Narrow).Split(Space(1)) '配列の一番最後 Dim s As String = arr(arr.Length - 1) If Strings.Right(s, 1) = "円" Then '円が含まれていればOK Return Val(s) Else '取得できなかった Return 0 End If End Function 品名と値段の間にはスペースが有る事 最後が○○円で終わっている事 が条件です。

関連するQ&A

  • C# comboBoxにTextAlign

    C#でカスタムコントロールを作成しています。 comboBoxにReadOnlyやTextAlignなどの機能をつけて汎用性の高いコントロールを作ろうと思っているのですがなかなかうまくいきません。 ReadOnlyは出来たのですがTextAlignがどうしても出来ません。 DropDown表示時のTextAlignについてはネットで見かけたのですが、comboBox内のTextのTextAlignを変更するような方法がみつかりません。 comboBoxの上にTextBoxを重ねて、みたいなこともやってみたのですがうまくできませんでした。 どなたかご教授ください。 よろしくおねがいします。 VisualStudio2005を使用しています。

  • (access )任意の数字以上でクエリ抽出したい

    フォーム上にテキストボックスと、サブフォームのクエリを配置しております テキストボックス(textbox1)に数字を入力し、その数字以上のフィールドを抽出したいのですが、上手く行きません 現在クエリの抽出条件に以下の式を入力していますが、レコードが一切表示されません。 (抽出はできますが) >=([Forms]![フォーム名]![textbox1]) どなたかご教授お願い致します

  • エクセル VBA コンボボックスの計算

    UserForm1上に コンボボックスには数字がリストされます! ComboBox1、ComboBox2、ComboBox3 3つ作成して 例えば ComboBox1=1 ComboBox2=0 ComboBox3=5 と表示された時 CommandButton1をクリックしたら UserForm2の TextBox1に”6”と足し算 された数字を表示したいのですが 普通のセルなら 出来るのですが・・ ComboBoxでするなら どのような記述に なるのでしょうか? すいません、教えて下さい!

  • ComboBoxでの一文字検索が上手くいきません

    ソフトはEXCEL2003です。 質問内容: ユーザーフォーム習い始めたところで、つまずいています。 やりたいことは、フォーム上に配置したComboBoxに別シート(選択一覧)で作成した「カタカナ1文字、会社名、会社コード」の3項目を表示可能にしておく。 ComboBoxへのカタカナ1文字入力により、該当する会社の上記3項目を表示し、会社選択後ComboBoxには会社名を表示、リストボックスには選択した会社コードを表示し、登録リストに会社名と会社コードを登録する。 フォームを作成してテストしましたが、一部のカタカナ(ヒなど)で該当する会社が選択されません。 何が問題なのか知識が足りませんので、困っています。 お分かりになる方に教えて頂きたくお願いします。 なお今回会社名をカタカナ1文字検索にしたのは、例えば社名の前に(株)等が付くものや、同じ漢字でも日本(ニホン)、日陰(ヒカゲ)等呼び名が異なるものがあるためです。 また、ComboBoxのプロパティは「MatchEntry」を「0-fmMatchEntryFirstLetter」としてあります。 ところで作成した命令は次の通りです。 Private Sub UserForm_Initialize() Dim MyVar1 As Variant Dim Ws1, Ws2 As Worksheet Dim LastRow As Long Set Ws1 = Worksheets("登録") Set Ws2 = Worksheets("選択一覧") Ws2.Select MyVar1 = Range("A3:C490") With ComboBox1   .ColumnCount = 3  ’カタカナ1文字、会社名、会社コード   .ColumnWidths = "20;230;10"   .List = MyVar1 End With ComboBox1.TextColumn = 2   Ws1.Select   ComboBox1.MatchEntry = fmMatchEntryFirstLetter End Sub Private Sub ComboBox1_Change() '会社名処理 Dim Ws1, Ws2 As Worksheet Dim NawRow As Long Set Ws1 = Worksheets("登録") Set Ws2 = Worksheets("選択一覧") ComboBox1.MatchEntry = fmMatchEntryFirstLetter    '表示行数を確認 一番上が「0」なので+1   NawRow = Me.ComboBox1.ListIndex + 1   TextBox4.Text = Ws2.Cells(NawRow + 2, 3) '会社コード表示;選択一覧は3列3行目から開始 Ws2.Cells(1, 1) = NawRow + 3       '選択一覧1行目に選択行表示 デバック用 End Sub  ※登録リストへの会社名と会社コードを登録する部分は省略しました。  以上よろしくお願いします。 その他、このような多くの会社名選択で、よい方法があれば教えてください。

  • dijit.form.ComboBoxについて

    こんにちは Dojo v1.7で開発を行っている者です。 開発しているモジュールで、dijit.form.ComboBoxを使用しているのですが、 ドロップダウンリストの項目を入力不可(選択は可能)にしたいと思っています。 プロパティで、readOnly:trueを設定してしまいますと、ドロップダウンリストも読取り専用になってしまい、選択出来なくなってしまいます。 どなたか、上記問題の解決をご存知の方おりますでしょうか?

  • VBAのコンボボックスで選んだものによって、違う数字を代入させたい

    VBAのコンボボックスで選んだものによって、違う数字を代入させたい お知恵をお貸しください。 現在、EXCEL2007のVBAにて、ちょっとしたVBAを作成しています。 コンボボックスには14項目を設定しています。 そのコンボボックスで選んだものによって下のコードの@マーク部に違う数字を代入させたいのですが、どうしたらいいのでしょうか? (例) ----コンボボックス---- あ い う え お か き ・ ・ ・ コンボボックスは14項目あり、コンボボックス内の「う」を選ぶと、5が代入され下のコードの@部分に5が入ります こんな風にコンボボックス内の選ぶものによって違う数字が代入される。 Dim a As Date Dim b As Long a = TimeSerial(CInt(TextBox5.Text), CInt(TextBox6.Text), 0) - TimeSerial(CInt(TextBox3.Text), CInt(TextBox4.Text), 0) Label6.Caption = Hour(a) + Minute(a) / 60 Label7.Caption = (Hour(a) + Minute(a) / 60) * @

  • ComboBoxのItem追加

    VB.NETでの開発初心者です。 ComboBoxのItem追加について、1行づつ追加していくのは理解できているのですが、HTMLでのListBox「OPTIONS設定」の様にArrayListにて一括追加する方法がわかりません。 ご存知の方、よろしくお願いします。  <1行づつ追加>  Me.ComboBox1.Items.Clear()  Me.ComboBox1.Items.Add(New ComboItems(Key値, 表示値))    ※ComboItemsクラスは、別途作成 <一括追加>  Dim comboArray As New ArrayList  comboArray.Add(New ComboItems(Key値, 表示値))  Me.ComboBox1.Items.???(comboArray) ← ここがわからない  

  • Excel VBA(Win2000、Office2000)

    現在、VBAでExcelのシートに書き込むフォームを作っており、日付に関することで困っています。 フォーム上には複数のComboBox、TextBoxが並んでおり、OKボタンをクリックすることで、フォーム上に並んだ、ComboBox、TextBoxの値をセルに書き込むようにしています。 問題の日付に関する質問についてですが・・・ ユーザーフォーム上に 年を入力するComboBox1 → 2004 月を入力するComboBox2 → 5 日を入力するComboBox3 → 7 *いづれも、プルダウンから数字を選択して入力するようにしています。 この3つの入力値を合わせて、2004/05/07と認識させて、TextBox1に"金"と表示させたいのですが、どのようにしたら良いでしょうか? TextBox1表示されるタイミングは、日を入力するComboBox3が入力された時としたいです。 宜しくお願い致します。

  • 同一セル内で大きい方の数字のみ抽出する関数について

    エクセルの同一セル内で大きい方の数字のみ抽出する方法がわからず困っております。 1つのセルには下記の2行のような情報が含まれます。 -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 (A1セル)中古品 ¥ 138,000より -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、 下記関数にて税込の金額が正しく表示されますが、 (A1セル)中古品 ¥ 138,000より を入力した場合正しく表示されません。 =TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),99*3-99,99))*1 (A1セル)中古品 ¥ 138,000より の場合、下記関数にて正しく表示されますが、 (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、正しく表示されません。 =LOOKUP(10^10,MID(A1,MATCH(0,INDEX(0/MID(A1,COLUMN(1:1),1),),),COLUMN(1:1))*1) 両方の形式に対応する関数を教えて頂けましたら幸いです。 要は、文字と数字が同一セル内に混同する場合、数値のみを抽出するが、 その際に大きい方の数値のみを抽出するということです。 どうかご存知の方がいらっしゃいましたら、お知恵をお貸し頂きたく、何卒、宜しくお願い申し上げます。

  • Labelコントロールに数字を代入する

    開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが LabelにInt型の変数の中身を代入する方法がわかりません。 ソースコードで書くと int a = 10; label1.Text = a;//こうするとInt型をString型に変換できませんと         //で る 参考書などには数字を表示したいならTextBoxを使いなさいとよく書かれているのですが、今のプログラムはユーザーに数字の表示を変えられるといけないので、悩んでいます。 どなたかLabelにInt型を入れる方法か、ユーザーがコントロールできないようなLabelに代わるものを教えていただけないでしょうか>< よろしくお願いします。