Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Microsoft 365)
初歩的な質問で申し訳ありません。
投稿日時: 23/02/13 16:07:07
投稿者: takatada72

お疲れさまです。
 
フィルターがかかったデータシートから、表示されるているD列の担当者名を配列変数に記録したいと考えております。配列変数に記録していると考えておりましたが、記録された内容が表示されませんでした。
どこが間違いなのかをご指摘頂けないでしょうか
 
 
 ●MsgBox namae(1) & " " & namae(2) & " " & namae(3) & " " & namae(4) & " " & namae(5) & " " & namae(6)
こちらは、担当者が表示されます。
● MsgBox namae(ZZ)
こちらだと、何も表示されませんでした。
 
 
  Dim lr As Long
  Dim ZZ As Integer
  Dim namae(100) As Integer
 
  lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
  'D列の値を取得
  ZZ = 1
  For i = 2 To lr
    If ws.Cells(i, "A").EntireRow.Hidden = False Then
      namae(ZZ) = ws.Cells(i, "D").Value
       
      ZZ = ZZ + 1
     End If
  Next i
  MsgBox namae(1) & " " & namae(2) & " " & namae(3) & " " & namae(4) & " " & namae(5) & " " & namae(6)
  For i = 1 To ZZ
  MsgBox namae(ZZ)
  Next i

回答
投稿日時: 23/02/13 16:21:55
投稿者: taitani
投稿者のウェブサイトに移動

(前回もそうでしたが。。。)
https://www.moug.net/faq/viewtopic.php?t=82064
Access VBAに関するフォーラムです。
Excel VBA の質問でしょうか、それとも、Access VBA の質問でしょうか。

回答
投稿日時: 23/02/13 16:30:15
投稿者: taitani
投稿者のウェブサイトに移動

まぁ、色々おかしいのは置いておいて、、、

Sub Test_001()
    Dim i As Long'追加
    Dim ws As Worksheet'追加
    Dim lr As Long
    Dim ZZ As Integer
    Dim namae(100) As String'修正:Integer → Long
    
    Set ws = Sheets("Data")'追加
    
    lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    'D列の値を取得
    ZZ = 1
    For i = 2 To lr
        If ws.Cells(i, "A").EntireRow.Hidden = False Then
            namae(ZZ) = ws.Cells(i, "D").Value
            
            ZZ = ZZ + 1
        End If
    Next i
    MsgBox namae(1) & " " & namae(2) & " " & namae(3) & " " & namae(4) & " " & namae(5) & " " & namae(6)
    
    For i = 1 To ZZ
        MsgBox namae(i)'修正:ZZ → i
    Next i
End Sub

投稿日時: 23/02/13 16:34:16
投稿者: takatada72

色々とご指摘をありがとうございます。
 
記載場所を間違ってしまいました。Excel vba でした。
すみませんでした。