Excel VBA質問箱 IV

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

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


7292 / 13644 ツリー ←次へ | 前へ→

【40031】奇数のときと偶数のとき (・〜・) 06/7/5(水) 21:02 質問[未読]
【40032】Re:奇数のときと偶数のとき okura 06/7/5(水) 21:09 回答[未読]
【40033】Re:奇数のときと偶数のとき ichinose 06/7/5(水) 21:09 発言[未読]
【40035】Re:奇数のときと偶数のとき Kein 06/7/5(水) 21:55 回答[未読]
【40051】Re:奇数のときと偶数のとき (・〜・) 06/7/6(木) 8:04 お礼[未読]

【40031】奇数のときと偶数のとき
質問  (・〜・)  - 06/7/5(水) 21:02 -

引用なし
パスワード
   Dim i As Integer, j As Integer

j = Worksheets("P").Range("IV61").End(xlLeft).Column
For i = 1 To j - i
  
と、ここでiが奇数のときと偶数のときで場合わけをしたいのですが、どうしたらよいでしょうか。

【40032】Re:奇数のときと偶数のとき
回答  okura  - 06/7/5(水) 21:09 -

引用なし
パスワード
   2で割った時の余りが0の場合と1で振り分ければ、いいのでは。

【40033】Re:奇数のときと偶数のとき
発言  ichinose  - 06/7/5(水) 21:09 -

引用なし
パスワード
   ▼(・〜・) さん:
こんばんは。

>Dim i As Integer, j As Integer
>
>j = Worksheets("P").Range("IV61").End(xlLeft).Column
>For i = 1 To j - i
>  
>と、ここでiが奇数のときと偶数のときで場合わけをしたいのですが、どうしたらよいでしょうか。
2で割った余りで判断できますよ!!

Sub 例()
  For i = 1 To 5
   If i Mod 2 Then
    MsgBox i & "=奇数"
   Else
    MsgBox i & "=偶数"
    End If
   Next
End Sub

【40035】Re:奇数のときと偶数のとき
回答  Kein  - 06/7/5(水) 21:55 -

引用なし
パスワード
   作業行を使っても良いなら、高速に処理できます。
事前にワークシートのメニューで「ツール」「アドイン」を選択し
"分析ツール"にチェックを付けておいて下さい。作業行は仮に 1000行目 とします。
コードは

Sub Sample2()
  Dim EVR As Range, ODR As Range

  With Worksheets("P")
   With .Range("A61", .Range("IV61").End(xlToLeft).Offset(-1, 939))
     .Formula = "=IF(ISEVEN(COLUMN()),1,"""")"
     Set EVR = .SpecialCells(3, 1)
     Set ODR = .SpecialCells(3, 2)
   End With
  End With
End Sub

これで偶数列の1000行目が EVR というRangeオブジェクト変数に格納され、
奇数列の1000行目が ODR に格納されます。ここから例えば、偶数列の125行目
だけを対象に何かの処理をするなら

     .Formula = "=IF(ISEVEN(COLUMN()),1,"""")"
     Set EVR = .SpecialCells(3, 1)
     Set ODR = .SpecialCells(3, 2)
   End With
   Intersect(EVR.EntireColumn, .Rows(125)).Value = "test"
   .Rows(1000).ClearCotents
  End With
  Set EVR = Nothing: Set ODR = Nothing
End Sub

などとすれば良いのです。

【40051】Re:奇数のときと偶数のとき
お礼  (・〜・)  - 06/7/6(木) 8:04 -

引用なし
パスワード
   okuraさん、ichinoseさん、Keinさんありがとうございました。

>Keinさん
私がやりたかったことは、
Dim i As Integer, j As Integer
For i = 1 To j - i
で、単純に「iが奇数のときと偶数のときで作業を場合分けする」
ということだったんですよ。

上のほうで
j = Worksheets("P").Range("IV61").End(xlLeft).Column
って書いてたんで紛らわしかったですね。
でも丁寧なお答えありがとうございました。

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