Excel VBA質問箱 IV

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

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


22987 / 76738 ←次へ | 前へ→

【59122】Re:For〜Next
発言  ichinose  - 08/11/29(土) 19:37 -

引用なし
パスワード
   こんばんは。

>
>下記のコードをFor〜Nextで、出来そうな気がしますが
>参考書を見てもわかりませんでした。

拝見すると、

A4:F17

A40:F53

A76:F89

A112:F125

A4,A40,A76,A112は、行が36毎に増えています。

又、

Range("A1").Value = ""

Range("A37").Value = ""

Range("A73").Value = ""

Range("A109").Value = ""

これも A1,A37,A73,A103と行が36毎に増えています。

しかも、

A4:F17  17-4=13

A40:F53  53-40=13

A76:F89  89-76=13

A112:F125 125-112=13

行の差が13と一定です。故に、セル範囲の大きさは、同じことがわかります。


行が項差36の等差数列だという規則性があることに着眼します。


すると、

Private Sub CommandButton1_Click()
  Dim g0 As Long
  For g0 = 0 To 3
    If Not Intersect(ActiveCell, _
       Range(Cells(g0 * 36 + 4, "A"), _
       Cells(g0 * 36 + 17, "F"))) Is Nothing Then
     Range("A" & g0 * 36 + 1).Value = ""
     Exit For
    End If
  Next
End Sub

 
こんなコードになります。

規則性を見抜くことがすっごく大事ですよ!!

0 hits

【59121】For〜Next yu 08/11/29(土) 18:59 質問
【59122】Re:For〜Next ichinose 08/11/29(土) 19:37 発言
【59123】Re:For〜Next ichinose 08/11/29(土) 19:45 発言
【59124】Re:For〜Next yu 08/11/29(土) 20:10 お礼

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