Excel VBA質問箱 IV

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

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


24 / 13618 ツリー ←次へ | 前へ→

【82179】VBA いとう 23/8/21(月) 17:07 質問[未読]

【82196】Re:VBA いとう 23/8/29(火) 14:50 発言[未読]
【82197】Re:VBA マナ 23/8/29(火) 16:42 発言[未読]

【82196】Re:VBA
発言  いとう  - 23/8/29(火) 14:50 -

引用なし
パスワード
   マナ様
抽出する行を変更しました。

Sub test2()
  Dim v, a
 
  v = Cells(1).CurrentRegion.Value
   a = Array(1, 2) '抽出する行

  v = Application.Index(v, Application.Transpose(a), Array(1, 2, 3, 4))
  Worksheets.Add.Cells(1).Resize(UBound(v), 4).Value = v

End Sub

【82197】Re:VBA
発言  マナ  - 23/8/29(火) 16:42 -

引用なし
パスワード
   ▼いとう さん:

そうです。
つまり、残したい行番号を自動で求めることができればよいのです。

今回は、arraylist という道具を利用しました。

arraylistの使い方はネットで調べてください。
何となくでもよいのでtest3 ↓が理解できないと
先に進めません。

Sub test3()
  Dim aryl As Object
  Dim v, i As Long
 
  Set aryl = CreateObject("system.collections.arraylist")
 
  For i = 6 To 2 Step -1
    aryl.Add i
    If i = 3 Or i = 5 Then
      aryl.Remove i
    End If
  Next
  
  aryl.Add 1
  aryl.Reverse

  v = Application.Transpose(aryl.toarray)
  Worksheets.Add.Cells(1).Resize(UBound(v)).Value = v

End Sub

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