
Do Until k > 12
If lbl_TenNm2(k).Caption <> "" Then
Result = MsgBox("☆☆☆本日の品は☆☆☆" & vbCrLf & _
"『" & ラベル店名(0).Caption & "』" & "の" & vbCrLf & _
ラベル(k) & "を" & テキスト(k).Text & "個" & vbCrLf & _
"でよろしいですか?", vbYesNo, "確認")
End If
k = k + 1
Loop
メッセージボックスで配列のラベルに入ったものを一度に表示したい場合どのような方法をとればよいのかまったく分かりません。もし、何か良い方法がおわかりの方がいましたら、教えてください。
お願いします。
上記の方法だと、メッセージボックスがその配列の数だけ出てきてしまいます。
No.2ベストアンサー
- 回答日時:
こんにちは、Mataroといいます。
質問の件ですが、MsgBoxをループ内に入れているのが問題です。先に表示する文字列を結合してからMsgBoxを使用すれば問題ありません。以下にあなたのプログラムを改造した例を載せます。
ちなみにmojiは表示する文字列です。
-----------------------
dim moji as string
moji = "☆☆☆本日の品は☆☆☆" & vbCrLf & _
"『" & ラベル店名(0).Caption & "』"& _
"の" & vbCrLf
Do Until k > 12
If lbl_TenNm2(k).Caption <> "" Then
moji = moji & ラベル(k) & "を" & テキスト(k).Text & "個" & vbCrLf
End If
k = k + 1
Loop
moji = moji & "でよろしいですか?",
Result = MsgBox(moji, vbYesNo, "確認")
------------------------
これで動くと思います。
(ちなみにこのプログラムだと毎回12回ループすることになるのでDo ~ Loopの条件を見直せば処理効率も上がりますよ。
では、頑張ってください。
やはり、Msgboxをループ内に入れてるのが問題でしたよね。。。
Redimで格納領域を作ってみたりと色々やっては見たんですが。。。
そのような方法で格納できるのは勉強になりました。
教えていただいたとおりに実行してみましたところ、無事解決させて頂きました。
本当にありがとうございます。
これからもっと勉強していきたいと思いますのでアドバイスよろしくお願いします。
No.3
- 回答日時:
具体的なソースは他の方が完璧に答えていらっしゃるので、
考え方だけ述べますね。
まず
1、配列の中身を表示したい形でバッファ(メモリ領域のこと)に格納する。
#2の方のソースの下記部分です。
Do Until k > 12
If lbl_TenNm2(k).Caption <> "" Then
moji = moji & ラベル(k) & "を" & テキスト(k).Text & "個" & vbCrLf
End If
k = k + 1
Loop
2、配列の中身を全て取得したら、処理の結果としてメッセージボックスを出す。
#2の方のソースの下記部分です。
Result = MsgBox(moji, vbYesNo, "確認")
つまり、メッセージボックスは全ての処理の最後の結果であって、
それまでにメッセージとして出す文字列を加工する必要がある、ということですね。
このように論理的に考えることが一番重要です。
がんばって!
方法がまったく見当がつかない状態だったので、説明して頂いてなるほど。。。と理解できました。
自分のやりたい事はハッキリとしてはいるのですが、論理的に考えるといったことがいつもできず、行き詰まってしまいます。
アドバイスありがとうございました。
No.1
- 回答日時:
ラベルの例でなくテキストボックスの例ですが
コントロール配列の例ではないですが
下記は参考になりませんか。
テキストボックス3つ、コマンドボタン1つ
配置して、実行。テキストに文字を入れ
コマンドボタンをクリック。
Private Sub Command1_Click()
Dim s As String
s = ""
s = s & Text1.Text & vbCrLf
s = s & Text2.Text & vbCrLf
s = s & Text3.Text
MsgBox s
End Sub
回答ありがとうございます。
imogasiさんのアドバイスはこれからの参考にしていきたいと思います。
またよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
メッセージを1度だけ表示したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
エクセルでXY座標に並べられた...
-
レコードセットの中身を配列に...
-
C#でbyte配列から画像を表示さ...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
大量の変数を定義するにはどう...
-
構造体配列の特定のメンバーをF...
-
C++で作成したDLLにVBAから配列...
-
VB6からの移行したいけど、VB.N...
-
Redim とEraseの違いは?
-
VB.NETの配列の限界を教えてく...
-
画像ファイルを配列に格納する方法
-
コンボボックスのインデックス...
-
DBから取得した値を配列へ代入する
-
配列の中の最大値とそのインデ...
-
定数配列の書き方
-
EXCELを使って、アクセスログを...
-
free()関数の多用 と Segment...
-
Segmentation Fault (メモリ制限?)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
Dir関数で読み取り順を操作でき...
-
配列の中の最大値とそのインデ...
-
配列のペースト出力結果の書式...
-
COBOLの基本的な事なので...
-
構造体配列の特定のメンバーをF...
-
構造体配列内の文字列検索のよ...
-
Redim とEraseの違いは?
-
レコードセットの中身を配列に...
-
VB6のメモリ解放に関して
-
定数配列の書き方
-
コンボボックスのインデックス...
-
OutOfMemoryExceptionの回避策...
-
Segmentation Fault (メモリ制限?)
-
VB.NETの配列にExcelから読み込...
-
VBAでMODE関数をつくる
-
DBから取得した値を配列へ代入する
おすすめ情報