こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA 計算結果の表示方法

ExcelのVBAでコマンドボタンを押すと以下のようなプログラムを考えています。
'変数宣言
Dim MIN As Integer
Dim MAX As Integer
Dim i As Integer

MIN = CInt(TextBox1.Text)
MAX = CInt(TextBox2.Text)

'ループ
For i = MIN To MAX
If i Like "*3" Or i Like "3*" Or i Mod 3 = 0 Then
End If
Next i

と、ここまでは考えたのですが、結果の表示方法を一つのメッセージボックスで
カンマ区切りで表示させる方法が調べてもわかりませんでした。

If i Like....の結果を一つにまとめてそれを表示するのかな。。。?
なんて考えておるのですが、皆様のご教授を承りたく思います。

宜しくお願いします。

※テキストボックス、コマンドボタンはユーザーフォーム上にあります。

投稿日時 - 2012-01-16 13:50:30

QNo.7247858

すぐに回答ほしいです

質問者が選んだベストアンサー

>結果の表示方法を

何を「結果」にしたいのか,肝心のことがご相談に書かれていませんが。


作成例:
dim a,b,i,res
a = cint(0 & textbox1)
b = cint(0 & textbox2)

for i = a to b
 if i like "*3*" or i mod 3 = 0 then
  res = res & "," & i
 end if
next i
res = mid(res, 2, 999)
msgbox res

まずは試してみてください。




#アナタの書きかけマクロは,他にもそれぞれのテキストボックスが未入力のままコマンドボタンを押したときの処理,なんてのも考慮されていません。

#たとえば「137」なんてのは,アナタのマクロだとハズレですがどうなんでしょうか。ご相談の多分本質部分じゃないので特にフォローはしせんが,適当に応用してください。

投稿日時 - 2012-01-16 14:12:52

補足

実践してみます。
すみません。テキストボックスに関しては未入力でも大丈夫かなと思い省略してしまいました。
情報が十分に伝わりませんでしたね。

MIN=1、MAX=100で考えてます。

投稿日時 - 2012-01-16 15:42:16

お礼

私のマクロに合うように実践してみました。
求める通りの結果を得る事が出来ました。ありがとうございます。
私が至らぬ点を指摘して頂いた事とより、理想的だったのでベストアンサーにさせて頂きます。

投稿日時 - 2012-01-16 16:04:57

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

'変数宣言
Dim MIN As Integer
Dim MAX As Integer
Dim i As Integer
Dim ans As String

MIN = CInt(TextBox1.Text)
MAX = CInt(TextBox2.Text)
ans = ""

'ループ
For i = MIN To MAX
If i Like "*3" Or i Like "3*" Or i Mod 3 = 0 Then
If ans = "" Then
ans = Str(i)
Else
ans = ans & "と" & Str(i)
End If
End If
Next i
If ans <> "" Then
MsgBox ans & "の時に馬鹿になる"
Else
MsgBox "馬鹿にはならない"
End If

投稿日時 - 2012-01-16 14:18:19

お礼

素早い回答ありがとうございました。
また、シンプルなマクロで非常にわかりやすいです。
求めている結果はきちんと表示する事が出来ました。感謝です。
もう一人の回答者の方と同様にベストアンサーにしたいのですが、お許し下さい。

投稿日時 - 2012-01-16 16:07:22

あなたにオススメの質問