- ベストアンサー
エクセル2000マクロでの計算表示方法とは?
- エクセル2000マクロを使用して、セル(F1)に入力されたデータに基づいて、セル(F2)、セル(G2)、セル(H2)に計算結果を表示する方法について教えてください。
- 具体的には、F1に入力されたデータを元に以下の計算を行い、セル(F2)、セル(G2)、セル(H2)に結果を表示します。
- また、F1の値が変化した場合にも同様の計算が行われ、セル(F2)、セル(G2)、セル(H2)に最新の計算結果が表示されます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
マクロではないですが計算式で セルF2 =if(F1>1,F1-1,F1+11) セルG2 =if(F1>2,F1-2,F1+10) セルH2 =if(F1>3,F1-3,F1+9) とすればよいと思います。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
諸解答の内で一番簡単で,判りやすいコーディングではないでしょうか。 テーブル方式の利点が出ていると思います。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = Array(0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 12, 11, 10) For i = 1 To 12 If Worksheets("sheet1").Cells(1, 6) = a(i) Then Worksheets("sheet1").Cells(2, 6) = a(i + 1) Worksheets("sheet1").Cells(2, 7) = a(i + 2) Worksheets("sheet1").Cells(2, 8) = a(i + 3) End If Next i End Sub
- nishi6
- ベストアンサー率67% (869/1280)
ifを登場させない方法で・・・ Sub Zengetu() Range("F2") = ((Range("F1") + 12 - 1) - 1) Mod 12 + 1 Range("G2") = ((Range("F1") + 12 - 2) - 1) Mod 12 + 1 Range("H2") = ((Range("F1") + 12 - 3) - 1) Mod 12 + 1 End Sub 数字に12を足して、1を引いて0~11または12~23になります。 これの12で割った余りを出してます。 1年前のカレンダーで計算している雰囲気です。
- kirara_pika
- ベストアンサー率33% (102/305)
これは、F1の値から1ずつ減らした数を(上限が12)それぞれのセルに表示するということでいいのでしょうか? 今月が1月なら1ヶ月前は12月とか。 いろんなやりかたがあるんですよね~ Sub test() Dim I as integer Dim A as integer A=Val(Range("F1")) For I=1 to 3 A = A - 1 if A < 1 Then A=12 End If Select I Case 1 Range("F2")=A Case 2 Range("G2")=A Case 3 Range("H2")=A End Select Next
- peso
- ベストアンサー率41% (40/97)
このようなものでどうでしょうか? おそらく、不必要な部分もあると思いますが・・・ If IsNumeric(Range("F1").Value) = True Then If Range("F1").Value > 0 And Range("F1").Value < 13 And Int(Range("F1").Value) = Range("F1").Value Then If Range("F1").Value = 1 Then Range("F2").Value = 12 Else Range("F2").Value = Range("F1").Value - 1 End If If Range("F2").Value = 1 Then Range("G2").Value = 12 Else Range("G2").Value = Range("F2").Value - 1 End If If Range("G2").Value = 1 Then Range("H2").Value = 12 Else Range("H2").Value = Range("G2").Value - 1 End If Else Range("F2").Value = "" Range("G2").Value = "" Range("H2").Value = "" End If Else Range("F2").Value = "" Range("G2").Value = "" Range("H2").Value = "" End If