• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2000マクロでの計算表示)

エクセル2000マクロでの計算表示方法とは?

このQ&Aのポイント
  • エクセル2000マクロを使用して、セル(F1)に入力されたデータに基づいて、セル(F2)、セル(G2)、セル(H2)に計算結果を表示する方法について教えてください。
  • 具体的には、F1に入力されたデータを元に以下の計算を行い、セル(F2)、セル(G2)、セル(H2)に結果を表示します。
  • また、F1の値が変化した場合にも同様の計算が行われ、セル(F2)、セル(G2)、セル(H2)に最新の計算結果が表示されます。

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

  • ベストアンサー
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

マクロではないですが計算式で セル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)
回答No.5

諸解答の内で一番簡単で,判りやすいコーディングではないでしょうか。 テーブル方式の利点が出ていると思います。 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)
回答No.4

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年前のカレンダーで計算している雰囲気です。

回答No.3

これは、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)
回答No.2

このようなものでどうでしょうか? おそらく、不必要な部分もあると思いますが・・・ 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

関連するQ&A