Excel VBA質問箱 IV

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

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


8406 / 76732 ←次へ | 前へ→

【73901】Re:IF文教えてください。
発言  kanabun  - 13/3/19(火) 0:05 -

引用なし
パスワード
   ▼nonoka さん:
>▼kanabun さん:
>IFとelseifでつなげて解決致しました。
>IFの使い方が少しわかったように思います。

ご自分で解決されて何よりです。

以下は、考え方の 参考です。

> ADからARにランダムに0か1が入力されています。
> NからAAにはADからARの数字を読み取って
> 0が入っていれば空白、1が入っていれは足すという式にしたいです。

以下の 例文を各行同じスタイルでまとめると

NはADが 0 なら [K]、ADが 1 なら K + AD を表示。 Kは必ず「日付」。
OはAEが 0 なら空白、AEが 1 なら N + AE を表示。Nは必ず「日付」
PはAFが 0 なら空白、AFが 1 なら O(*) + AF を表示。
QはAGが 0 なら空白、AGが 1 なら P(*) + AG を表示、。
RはAHが 0 なら空白、AHが 1 なら Q(*) + AH を表示。
SはAIが 0 なら空白、AIが 1 なら R(*) + AI を表示。
'
'ただし Pの式:Oが空白なら Oの代わりに N を足す。
同様に Qの式: Pが空白なら 左の空白でないセルの値を足す。
同様に Rの式: Qが空白なら 左の空白でないセルの値を足す。
同様に Sの式: Rが空白なら 左の空白でないセルの値を足す。

'↑この処理は 空白でないとき +1した値をセルに書き込む、と同時に
 セルのIDプロパティにも書き込んでおけば、
次のセルが空白だったとき、そのセルのIDプロパティをコピーすれば
NまでLoopで遡る必要がない。

これをコードにすると、

Sub test2()
  Dim c As Range
  
  [N1].Value = [K1].Value - ([N1].Value = 1)
  [N1].ID = [N1].Value
  
  [O1:AA1].ClearContents
  For Each c In [O1:AA1]
    If c.Offset(, 16).Value = 1 Then
      c.Value = CDate(c.Offset(, -1).ID) + 1
      c.ID = c.Value
    Else
      c.ID = c.Offset(, -1).ID
    End If
  Next
    
End Sub

260 hits

【73895】IF文教えてください。 nonoka 13/3/18(月) 19:21 質問
【73896】Re:IF文教えてください。 kanabun 13/3/18(月) 19:39 発言
【73897】Re:IF文教えてください。 nonoka 13/3/18(月) 20:24 質問
【73898】Re:IF文教えてください。 kanabun 13/3/18(月) 21:36 発言
【73899】Re:IF文教えてください。 nonoka 13/3/18(月) 22:21 回答
【73900】Re:IF文教えてください。 nonoka 13/3/18(月) 23:37 お礼
【73901】Re:IF文教えてください。 kanabun 13/3/19(火) 0:05 発言
【73902】Re:IF文教えてください。 kanabun 13/3/19(火) 0:16 発言

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