質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

解決済

数字を抜き出して合計する方法

wwwwx
wwwwx

総合スコア1

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

1回答

0リアクション

0クリップ

355閲覧

投稿2022/07/19 04:41

編集2022/07/19 07:14

visual stadio 2022 visual basicについての質問です。
windows Form アプリケーションを使用しています。
listboxにて
商品名1 x1 ¥100
商品名2 x1 ¥200


のようなものを表示させるプログラムを作成しました。最後に合計金額を求めたいのですが、¥より後ろの数字を抜き出して合計金額を求める方法はありますか?

Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Connectcontrols() Connectevents() PictureBox1.Tag = "商品名1" PictureBox1.Image = Image.FromFile("test.bmp") PictureBox2.Tag = "商品名2" PictureBox2.Image = Image.FromFile("test.bmp") PictureBox3.Tag = "商品名3" PictureBox3.Image = Image.FromFile("test.bmp") End Sub Private mypicturebox() As System.Windows.Forms.PictureBox Private Sub Connectcontrols() mypicturebox = New System.Windows.Forms.PictureBox(3) {} mypicturebox(1) = PictureBox1 mypicturebox(2) = PictureBox2 mypicturebox(3) = PictureBox3 End Sub Private Sub Connectevents() For i As Integer = 1 To 3 AddHandler mypicturebox(i).Click, AddressOf mypicturebox_Click Next End Sub Private Sub Mypicturebox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim index As Integer = Array.IndexOf(mypicturebox, sender) If index = 1 Then Dim pbox As PictureBox = DirectCast(sender, PictureBox) Using child As New Form2() If child.ShowDialog() = DialogResult.OK Then ListBox1.Items.Add(pbox.Tag & child.StockCount & " ¥100") End If End Using End If 以下 index=3 まで行う Public Class Form2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click _StockCount = NumericUpDown1.Value DialogResult = DialogResult.OK End Sub Private _StockCount As Decimal Public ReadOnly Property StockCount As Decimal Get Return _StockCount End Get End Property End Class

ここでは商品数3までですが実際は60まで作成しました。また最終的な合計はButtonを押すとTextBoxに表示される仕組みで考えています。修正完了しましたよろしくお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/07/19 11:00

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

SurferOnWww

2022/07/19 04:56

何を作っているかぐらいは書きましょう。ListBox というのは ASP.NET Web Forms, WinForms, WPF にあります。それから、.NET Framework なのか .NET Core/.NET のどっちなのかとそのバージョンを書きましょう。 さらに、あなたが自力でどこまでコードを書いて実装できていて、どこで躓いていて、何が分かれば解決するかを、あなたかがいたコードを提示するなどして説明しましょう。今の質問では丸投げでマイナス評価対象です。
KOZ6.0

2022/07/19 05:01

地道に1行ずつ "\" を文字列検索してその後ろを切り取り数値に直して合計するしかなさそうですが、どういった方法をお望みですか?
wwwwx

2022/07/19 05:22

初投稿で無知をさらしてしまい申し訳ありません。winFormsを使用しております。KOZ6.0さんがおっしゃった方法を目指しておりますが、listboxの行数が不確定であるためどう表したらいいかわからず質問させていただきました。
KOZ6.0

2022/07/19 05:27

ListBox の行数は ListBox.Items.Count で取得できます。
Zuishin

2022/07/19 05:45

課題なら仕方ありませんが、普通は ListBox に表示したテキストデータから計算するのではなく、その元となるデータから計算します。
SurferOnWww

2022/07/19 06:15

> winFormsを使用しております。 質問欄を編集して追記してください。 .NET Framework なのか .NET Core/.NET のどっちなのかとそのバージョンを書きましょう。
wwwwx

2022/07/19 06:25

すみません。自分で調べながら¥以降の切り抜き方を調べたのですがよくわかりませんでした。もしよければ一部でもいいので教えていただけませんか? お願いします。
SurferOnWww

2022/07/19 06:36

質問の、 > listboxにて > 商品名x1 ¥100 > 商品名x1 ¥200 > ・ > ・ を表示するために自分でコードを書いたのでは? そのコードを質問欄に書けないのですか?
SurferOnWww

2022/07/19 06:37

> winFormsを使用しております。 質問欄を編集して追記してください。 .NET Framework なのか .NET Core/.NET のどっちなのかとそのバージョンを書きましょう。 ・・・これで 2 回目
KOZ6.0

2022/07/19 06:57

String クラスがどのようなメソッドを持っているか調べましょう 「String クラス」 https://docs.microsoft.com/ja-jp/dotnet/api/system.string?view=netframework-4.8 ・Split メソッドで "\" を区切り文字として配列に分割し、最後の要素を使う ・IndexOf もしくは LastIndexOf で "\" の位置を検索し、Substring メソッドで切り取る ( 商品名に "\" が含まれるようであれば、LastIndexOf を使ったほうが良い) といった方法が考えられます。 これって文字列操作の課題なんですかね? そうでないなら、ListBox に項目を追加している部分のコードを提示していただければ、より良い方法が提案できるかもしれません。
wwwwx

2022/07/19 07:15

提示させていただきました。プログラムの内容はこのような感じになっています
KOZ6.0

2022/07/19 07:33

提示されたコードでは金額は \100 固定のようですね。 \200 ってどこから持ってきたんでしょう?
Zuishin

2022/07/19 07:33

まさかの全部 100 円。
KOZ6.0

2022/07/19 07:34

件数数えて x 100 するだけですね
wwwwx

2022/07/19 07:38

すみません index=2 では200 index=3 では300 です
wwwwx

2022/07/19 07:45

いえ、こちらの方は存じ上げませんがこの方の回答をKOZ6.0さんがしており、それを参考にさせていただきました。
KOZ6.0

2022/07/19 08:11

まぁそういうことにしときましょう。 ListBox に表示されているのは商品単価であって、金額を求めるには商品数と掛けなければならないのでは? 設計もやりなおしたほうがよさそう

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです