- ベストアンサー
VBScriptで
変数(整数)A,B,Cの三つのうち、最大であるものを見つけるには、どういったコードが一番すっきりしているでしょうか? If Then Elseif~ しかないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
関連するQ&A
- 乱数の利用
僕の通う中学校では、乱数を利用してプログラムを作成することになりました。そしてプログラムを作りましたがステートメントがないと出てきます。どう解決すればよいでしょうか?これがプログラムです。 Dim a,b,c,d,e,f,g a=msgbox("幸せですか?",4) if a=6 then const b="運勢" randomize b=int(rnd*10) select case b case 0,1,2 c=messagebox("吉でした。彼女はいますか?",4) if c=6 then msgbox"90%",,b elseif c=7 then msgbox"60%",,b end if case 3,4,5 d=msgbox("凶でした。友達はいますか?",4) if d=6 then msgbox"60%",,b elseif d=7 then msgbox"20%",,b end if case 6,7 e=msgbox("末吉でした。",4) if e=6 then msgbox"60%",,b elseif e=7 then msgbox"40%",,b end if case 8 f=msgbox("大凶でした。夢はありますか?",4) if f=6 then msgbox"30%",,b elseif f=7 then msgbox"10%",,b end if case else msgbox"100%",,b end if elseif a=7 msgbox"0%" end select
- 締切済み
- その他(プログラミング・開発)
- 2つ以上の変数を比較して最大数を求めたい
Sub 最大数() Dim a As Long Dim b As Long Dim c As Long a = 10 b = 20 c = 30 ここで変数を比較するコード MsgBox "a,b,cの中で一番大きな数は です" End Sub のように変数を比較して、最大数を求めたいのです。 2つなら If a > b Then で結果を取得すればいいですが、 3つや4つやそれ以上になった時に、応用を利かせるため質問しました。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VB 繰り返し(ループ)について教えてください
私は最近プログラムを書く仕事に就いたのですがまったくの初心者でなかなか課題が先に進めずに困っています。もしわかる方いましたら是非教えていただけるとうれしいです。 今わからないのが、繰り返し(ループ)です。 何とか一桁目は完成しましたがこの先がどうやってもうまくいきません。左にTextBox、真ん中にCommand、左にLabelがあり左に整数を入れて真ん中を押すと左に漢数字で表示されるという形で5桁まで出来るようにしたいのです。 今出来ているものをとりあえずはりますので是非教えてください。 Option Explicit Private Sub Command1_Click() Dim a As Integer Dim b As String a = Val(Text1.Text) If a = 0 Then b = "0" ElseIf a = 1 Then b = "一" ElseIf a = 2 Then b = "二" ElseIf a = 3 Then b = "三" ElseIf a = 4 Then b = "四" ElseIf a = 5 Then b = "五" ElseIf a = 6 Then b = "六" ElseIf a = 7 Then b = "七" ElseIf a = 8 Then b = "八" Else b = "九" Label1.Caption = b End Sub
- 締切済み
- Visual Basic
- vb初心者。急いでます!
修論に取り組む院生です。 vb2010で簡単なソフトを作成中なのですが、以下のようなコードが何度も出てくるため、なんとか短くしたいんです。 型変換や色指定部分の工夫などが考えられると思うのですが、なかなか上手くいかず焦っています。 Dim a213,a214,c212,c213,c214 As Double If a213 < 1 Then ha13.BackColor = Color.FromArgb(160, 140, 255) ElseIf a213 < 20 Then ha13.BackColor = Color.FromArgb(120, 160, 255) ElseIf a213 < 40 Then ha13.BackColor = Color.FromArgb(100, 200, 150) ElseIf a213 < 60 Then ha13.BackColor = Color.FromArgb(255, 255, 70) ElseIf a213 < 80 Then ha13.BackColor = Color.FromArgb(255, 170, 0) Else ha13.BackColor = Color.FromArgb(255, 80, 100) End If If a214 < 1 Then ha14.BackColor = Color.FromArgb(160, 140, 255) ElseIf a214 < 20 Then ha13.BackColor = Color.FromArgb(120, 160, 255) ElseIf a214 < 40 Then ha14.BackColor = Color.FromArgb(100, 200, 150) ElseIf a214 < 60 Then ha14.BackColor = Color.FromArgb(255, 255, 70) ElseIf a214 < 80 Then ha14.BackColor = Color.FromArgb(255, 170, 0) Else ha14.BackColor = Color.FromArgb(255, 80, 100) End If If c212 < 1 Then hc12.BackColor = Color.FromArgb(160, 140, 255) ElseIf c212 < 20 Then hc12.BackColor = Color.FromArgb(120, 160, 255) ElseIf c212 < 40 Then hc12.BackColor = Color.FromArgb(100, 200, 150) ElseIf c212 < 60 Then hc12.BackColor = Color.FromArgb(255, 255, 70) ElseIf c212 < 80 Then hc12.BackColor = Color.FromArgb(255, 170, 0) Else hc12.BackColor = Color.FromArgb(255, 80, 100) End If If c213 < 1 Then hc13.BackColor = Color.FromArgb(160, 140, 255) ElseIf c213 < 20 Then hc13.BackColor = Color.FromArgb(120, 160, 255) ElseIf c213 < 40 Then hc13.BackColor = Color.FromArgb(100, 200, 150) ElseIf c213 < 60 Then hc13.BackColor = Color.FromArgb(255, 255, 70) ElseIf c213 < 80 Then hc13.BackColor = Color.FromArgb(255, 170, 0) Else hc13.BackColor = Color.FromArgb(255, 80, 100) End If If c214 < 1 Then hc14.BackColor = Color.FromArgb(160, 140, 255) ElseIf c214 < 20 Then hc14.BackColor = Color.FromArgb(120, 160, 255) ElseIf c214 < 40 Then hc14.BackColor = Color.FromArgb(100, 200, 150) ElseIf c214 < 60 Then hc14.BackColor = Color.FromArgb(255, 255, 70) ElseIf c214 < 80 Then hc14.BackColor = Color.FromArgb(255, 170, 0) Else hc14.BackColor = Color.FromArgb(255, 80, 100) End If 初めにhが付くものはpicturebox名です。 条件に応じてpictureboxの色を変えるコードで、色は全部で6色で固定です。 このあたりももっと工夫できる気がしてはいるのですが・・・ 時間がないので、とりあえずは期限までに面倒な手順でもソフトを完成させようと思っていますが、さすがに量が多いのでこちらも時間的に危ういです。。 いいアイディアをお持ちの方、よろしくお願いします!!!
- ベストアンサー
- Visual Basic
- エクセルマクロで「1」を「01」に変換したい
エクセルマクロで、セルに入力された数値を、 変換するマクロを以下のように作成したのですが、 もっと簡単な方法はないのでしょうか。 やりたいことは、 「1」で入力された値を「01」に変換することです。 よろしくお願いします。 c = Sheets("Sheet1").Cells(1, 1).Value If c = 1 Then c = "01" ElseIf c = 2 Then c = "02" ElseIf b = 3 Then c = "03" ElseIf c = 4 Then c = "04" ElseIf c = 5 Then c = "05" ElseIf c = 6 Then c = "06" ElseIf c = 7 Then c = "07" ElseIf c = 8 Then c = "08" ElseIf c = 9 Then c = "09" End If
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでデータ検索の方法
自分は技術者ではないのですがエクセルのVBAで質問があります。 エクセルで作ったデータをフォームから検索して一件ずつ表示するにはどうしたらよいでしょうか? 途中まで作ったのですが、自分の方法としては「シート1」にあるデータを変数に入れ、その変数をフォームに出力させるというものなんですが、もっと簡単な方法はないでしょうか? 変数a = 2 : 変数b = 1 For 変数a = 2 To 65536 If Sheets("シート1").Range("A" & 変数a) = Empty And 変数a = 2 Then MsgBox "データがありません" GoTo 終わり ElseIf Sheets("シート1").Range("A" & 変数a) <> Empty Then 項目1(変数b) = Sheets("シート1").Range("A" & 変数a) 項目2(変数b) = Sheets("シート1").Range("B" & 変数a) 項目3(変数b) = Sheets("シート1").Range("C" & 変数a) 変数b = 変数b + 1 ElseIf Sheets("シート1").Range("A" & 変数a) = Empty Then GoTo 終わり End If Next 終わり: こんな感じにしたいです。↓ http://hp1.cafesta.com/hp/album_photo_read.do?hpid=miya05&menu_...
- ベストアンサー
- Visual Basic
- アドバイスお願いします
今,以下の様なプログラムを作っています. 正の整数nを上限とする数字の集合を考える. そのうち a*i+b*j で表現できない値の個数を出力する. a,bは事前に与えられた正の整数であり,i,jは正の整数の変数である. またa,b,nの取り得る最大値は1000000とする. とりあえずfortranで総当たりの方法で作ってみました. integer a,b,n,ans(1000000),c read(*,*)a,b,n do i=1,n ans(i)=i enddo icount=0 do i=0,n do j=0,n c=a*i+b*j if(c.le.n)then do k=1,n if(ans(k).eq.c)then ans(k)=-1 endif enddo endif enddo enddo do i=1,n if(ans(i).gt.0)then icount=icount+1 endif enddo write(*,*)icount end nの値があまり大きくなければ問題なく動くのですが, 最大値である1000000を入力して走らすと,とんでもなく 時間がかかってしまいます. もっとスマートな方法は無いものでしょうか? アドバイスお願い致します.
- ベストアンサー
- その他(プログラミング・開発)
- エクセルのVBA、ループ処理について
if文とループ処理をどう組み合わせればいいのかわかりません 以下のコードで、iの数をを増やしていく処理を行いたいのですが、エラーがでてしまいうまくいきません どのように書けばいいのでしょうか 教えてください For i = 2 To 11 If Cells("4,i") > 80 Then Cells("5,i").Value = "A" ElseIf Cells("4,i") > 70 Then Cells("5,i").Value = "B" ElseIf Cells("4,i") > 60 Then Cells("5,i").Value = "C" Else Cells("4,i").Value = "D" End If Next
- ベストアンサー
- その他MS Office製品
- エクセル VBAで
変動する数値が、セル A1に入る状況で、 該当シートに Private Sub Worksheet_Change(ByVal Target As Range) If Range("A1").Value = 1 Then Range("C62").Value = "○" ElseIf Range("A1").Value = 2 Then Range("C62:C63").Value = "○" ElseIf Range("A1").Value = 3 Then Range("C62:C64").Value = "○" ElseIf Range("A1").Value = 4 Then Range("C62:C65").Value = "○" ElseIf Range("A1").Value = 5 Then Range("C62:C66").Value = "○" ElseIf Range("A1").Value = 6 Then Range("C62:C67").Value = "○" ElseIf Range("A1").Value = 7 Then Range("C62:C68").Value = "○" ElseIf Range("A1").Value = 8 Then Range("C62:C69").Value = "○" ElseIf Range("A1").Value = 9 Then Range("C62:C70").Value = "○" ElseIf Range("A1").Value = 10 Then Range("C62:C71").Value = "○" ElseIf Range("A1").Value = 11 Then Range("C62:C72").Value = "○" ElseIf Range("A1").Value = 12 Then Range("C62:C73").Value = "○" ElseIf Range("A1").Value = 13 Then Range("C62:C74").Value = "○" ElseIf Range("A1").Value = 14 Then Range("C62:C75").Value = "○" ElseIf Range("A1").Value = 15 Then Range("C62:C76").Value = "○" End If End Sub と言ったマクロを記述しましたが、 動作がどうにも重くて困っています。 一度、プレビューをした後は特に遅くなります。 何か良い解決方法はありますでしょうか?
- ベストアンサー
- オフィス系ソフト
- さらに問題があります
『「就業時間基本5:30」なら「A」判定 「就業時間基本2:45」以上「5:29」なら「B」判定 「就業時間基本1:00」以上「2:44」ならば「C」判定 「修行時間基本1:00」未満なら「空白」 と判定させたいです。「就業時間基本」はワークシート関数で求めています。 例えば、2月1日から2月28日まで、VBAを使って「判定する」ならどうすれば良いでしょうか? 基本時間 If 関数で2:45 以上 5:29 「B」 判定としようとすると、おそらくは「シリアル値の問題」で簡単に「B」判定とは出てくれません。 どなたか、正しい判定方法を教えてください。』 に対して、 Option Explicit Function getCode(MyTime As Range) As String Dim wsTime As Date wsTime = MyTime.Value - Int(MyTime.Value) If wsTime = TimeSerial(5, 30, 0) Then getCode = "A" ElseIf ((wsTime >= TimeSerial(2, 45, 0)) And _ (wsTime < TimeSerial(5, 30, 0))) Then getCode = "B" ElseIf ((wsTime >= TimeSerial(1, 0, 0)) And _ (wsTime < TimeSerial(2, 45, 0))) Then getCode = "C" ElseIf wsTime < TimeSerial(1, 0, 0) Then getCode = "" Else getCode = "" End If End Function で確かに= =getCode(C) でC列から「判定」ができりことはわかりました。 もう一点さらに困っている点があります。 2018年2月 A B・・・・・C 1(金) 5:45 2(土) 5:15 と土曜だけ最大5:15が最大時間となります。 土曜日だけを判定し直すのはどうやったら良いのでしょうか? 曜日を返す変数も入れなければなりません。これも困っているのです。
- 締切済み
- Excel(エクセル)
- Win10を再インストールした際に、新しいIDとPINでOffice2016を正しく認証する方法を教えてください。
- Win10再インストール時にインストールされなかったOffice2016の再インストール方法と認証についてご教示願います。
- LAVIE PC-DA970EAB-JでWin10を再インストールした後、正しいIDとPINでOffice2016を再度インストールする方法についてお知らせください。
お礼
御礼が遅くなってすいません。 たいへん助かりました。 ありがとうございます。