アプリ版:「スタンプのみでお礼する」機能のリリースについて

 教えてください。
例えば)
   もしA1セルが-1だったら、選択1へ飛び、黄色をつける。
            0だったら、選択2へ飛び、赤色をつける。
            1だったら、選択3へ飛び、青色をつける。
   と選択肢が選択1・選択2・選択3と3つあった場合、それぞれにGOTO文で飛ばしたいのですが、可能でしょうか?
 よろしくお願いします。

A 回答 (6件)

GOTO文とCASE文利用を挙げます。


(GOTO文利用)
Sub test01()
i = 10
If Cells(i, 1) = -1 Then GoTo a1
If Cells(i, 1) = 0 Then GoTo a2
If Cells(i, 1) = 1 Then GoTo a3
GoTo a4
a1:
 Cells(i, 1).Interior.ColorIndex = 6
 MsgBox "-1" & "でした"
 Exit Sub
a2:
  Cells(i, 1).Interior.ColorIndex = 3
 MsgBox "0" & "でした"
 Exit Sub
a3:
 Cells(i, 1).Interior.ColorIndex = 5
 MsgBox "1" & "でした"
 Exit Sub
a4:
End Sub
'-------(CASE文利用)
Sub test02()
i = 10
Select Case Cells(i, 1)
Case -1
 Cells(i, 1).Interior.ColorIndex = 6
 MsgBox "-1" & "でした"
Case 0
 Cells(i, 1).Interior.ColorIndex = 3
 MsgBox "0" & "でした"
Case 1
 Cells(i, 1).Interior.ColorIndex = 5
 MsgBox "1" & "でした"
Case Else
End Select
End Sub
選択肢1,2,3ルーチンはCoLorIndexの次の行にいれてください。
沢山セルがある場合はiをFor i=1 to 30
とかで繰り返してください。
    • good
    • 1
この回答へのお礼

 ありがとうございます。CASE文でやってみます。

お礼日時:2002/11/12 15:48

No4の回答訂正。


ごめんなさい。
SwitchじゃなくてSelect Caseですね。
    • good
    • 1

GOTO文を使った場合はこうなりますが…先の方の回答のとおり使用はあまりオススメは出来ません。


現在のVisualBasicは構造化記法で記述することが一般的でありこれらから外れるGoto文やGoSub文はソースの複雑化を招くためあまり使用しません。
先の方の言われるとおりIFやSwitchのみで記述するほうが良いと思います。

Public Sub main()

If Cells(1, 1) = -1 Then
   GoTo Yellow_Exe
ElseIf Cells(1, 1) = 0 Then
   GoTo Red_Exe
ElseIf Cells(1, 1) = 1 Then
   GoTo Blue_Exe
End If

Exit Sub

Yellow_Exe:
   '黄色色づけ処理の記入
   Exit Sub

Red_Exe:
   '赤色色づけ処理の記入
   Exit Sub

Blue_Exe:
   '青色色づけ処理の記入
   Exit Sub

End Sub
    • good
    • 1

Excelマクロ?


Select Caseって使えませんかね?
例えばこんな感じ、、、

Select Case i
Case 0
'黄色をつける
Case 1
'赤色をつける
Case 2
'青色をつける
Case Else
'その他の場合の処理
End Select
    • good
    • 0

可能です。

ですけど、できるだけ GOTO文を使わないほうがいいですね。

っていうか、上記のたとえば、 IF文だけで すみます。
    • good
    • 0

Excelマクロですか?


ifかswitch文でできると思うのですが、だめでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!