Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


39742 / 76732 ←次へ | 前へ→

【42098】Re:組込inputboxを自動でキャンセルしたい
発言  Ned  - 06/8/31(木) 22:20 -

引用なし
パスワード
   ▼雅(みやび) さん:
こんにちは。
試してみましたが、状況が再現しませんでした。
差し支えなければ、こちらでも確認できるコードを提示してみてください。

また、
>(決められた数値)を自動入力する
のが目的ですか?
提示のコードは、C列の値によって、数値を表示する『関数』を条件分岐させている、
つまり、IF関数にはネスト制限があるので、値によって入れる数式を変更しているように見えます。

数式を入れる事が目的なら、

Sub sample()
  Dim NOWLINE As Long

  NOWLINE = 40 '仮に。
  'NOWLINE = Cells(65536, 3).End(xlUp).Row'(C列最終行なら)
  Range(Cells(3, 30), Cells(NOWLINE - 2, 30)).Formula _
    = "=IF(OR(C3="""",RIGHT(C3,1)=""計""),""""," _
    & "IF(AND(LEFT(C3,2)*1>31,LEFT(C3,2)*1<40),320," _
    & "IF(OR(LEFT(C3,2)=""31"",AND(LEFT(C3,2)*1>70,LEFT(C3,2)*1<74))" _
    & ",LEFT(C3,2)*10,LEFT(C3,1)*100)))"
End Sub

数値なら、直接、値を代入します。

Sub sample2()
  Dim i As Long
  Dim NOWLINE As Long
  Dim n As Long

  NOWLINE = 10 '仮に。
  'NOWLINE = Cells(65536, 3).End(xlUp).Row'(C列最終行なら)
  For i = 3 To NOWLINE - 2
    If Right(Cells(i, 3).Value, 1) <> "計" Then
      n = Val(Left(Cells(i, 3).Value, 2))
      Select Case n
        Case 31, 71, 72, 73
          Cells(i, 30).Value = n * 10
        Case Is <= 30
          Cells(i, 30).Value = (n \ 10) * 100
        Case Is <= 39
          Cells(i, 30).Value = 320
        Case Else
          Cells(i, 30).Value = (n \ 10) * 100
      End Select
    End If
  Next i
End Sub
0 hits

【42096】組込inputboxを自動でキャンセルしたい 雅(みやび) 06/8/31(木) 18:22 質問
【42098】Re:組込inputboxを自動でキャンセルしたい Ned 06/8/31(木) 22:20 発言
【42099】Re:組込inputboxを自動でキャンセルしたい Ned 06/8/31(木) 23:11 発言
【42109】Re:組込inputboxを自動でキャンセルしたい 雅(みやび) 06/9/1(金) 12:23 お礼
【42106】Re:組込inputboxを自動でキャンセルしたい ハト 06/9/1(金) 11:14 発言

39742 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free