Excel VBA質問箱 IV

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

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


119 / 76735 ←次へ | 前へ→

【82287】A-Z列は転記されるが、AB列以降の取得ができない
質問  VBA初学者です_T  - 24/5/20(月) 13:57 -

引用なし
パスワード
   VBA初学者です。

CSVを読み込み、C列の中でフィルターをかけ、フィルターで抽出された行、且つ、指定の列を転記したいと思っています。
書籍を2冊読み、YouTubeなどで学び、chat GPTやcopilotなどで何とか、VBAを実行したいとトライしておりますが、うまくいきません。

c列の中でのフィルターは抽出できました。
抽出された横列がA-Zまでは抽出できていますが、AB列以降が抽出できない状況です。
列の抽出のコードの書き方が間違っているのでしょうか。

どなたかご教授ください。
宜しくお願い致します。


Sub C列でフィルター且つ列番号でデータ取得CSV()
  Dim ws As Worksheet
  Dim wsNew As Worksheet
  Dim csvFile As String
  Dim lastRow As Long
  Dim i As Long
  Dim newRow As Long
  Dim today As String
  Dim cValue As String
  Dim filterValues As Variant
  Dim columnsToCopy As Variant
  Dim colIndex As Long
  Dim copyColumn As Long
  
    ' フィルター対象の値を設定
  filterValues = Array("5", "11", "82", "402", "413", "421", "579", "580", "620")
  
    ' 転記する列を設定
  columnsToCopy = Array(1, 3, 4, 8, 21, 37, 56, 45, 48, 58, 62, 68, 70, 71, 73, 76, 84, 87, 20, 53)

  ' 今日の日付を取得してフォーマット
  today = Format(Date, "yyyymmdd")

  ' CSVファイルのパスを指定
  csvFile = Application.GetOpenFilename("CSVファイル (*.csv), *.csv")
  If csvFile = "False" Then Exit Sub ' ユーザーがキャンセルした場合

  ' 新しいワークシートを作成
  Set wsNew = ThisWorkbook.Sheets.Add
  wsNew.Name = "臨時進捗表_" & today

  ' CSVファイルを読み込むための一時的なワークシートを作成
  Set ws = ThisWorkbook.Sheets.Add
  ws.Name = "TempCSVData"

  ' CSVファイルを読み込み
  With ws.QueryTables.Add(Connection:="TEXT;" & csvFile, Destination:=ws.Range("A1"))
    .TextFileParseType = xlDelimited
    .TextFileCommaDelimiter = True
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) ' 必要に応じて列数を変更
    .Refresh BackgroundQuery:=False
  End With

  ' データの最終行を取得
  lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

  ' ヘッダーのコピー
  For i = LBound(columnsToCopy) To UBound(columnsToCopy)
    wsNew.Cells(1, i + 1).Value = ws.Cells(1, columnsToCopy(i)).Value
  Next i

  newRow = 2

  ' C列に指定された文字列が含まれる行を検索して指定の列を転記
  For i = 2 To lastRow ' ヘッダー行を飛ばして2行目から開始
    cValue = ws.Cells(i, 3).Value
    If Not IsError(Application.Match(cValue, filterValues, 0)) Then
      For colIndex = LBound(columnsToCopy) To UBound(columnsToCopy)
        copyColumn = columnsToCopy(colIndex)
        wsNew.Cells(newRow, colIndex + 1).Value = ws.Cells(i, copyColumn).Value
      Next colIndex
      newRow = newRow + 1
    End If
  Next i

  ' 一時的なワークシートを削除
  Application.DisplayAlerts = False
  ws.Delete
  Application.DisplayAlerts = True

  MsgBox "列番号でのデータ抽出が完了しました!", vbInformation
End Sub
4 hits

【82287】A-Z列は転記されるが、AB列以降の取得ができない VBA初学者です_T 24/5/20(月) 13:57 質問[未読]
【82288】Re:A-Z列は転記されるが、AB列以降の取得が... マナ 24/5/21(火) 13:49 発言[未読]
【82289】Re:A-Z列は転記されるが、AB列以降の取得が... VBA初学者です_T 24/5/21(火) 15:57 質問[未読]
【82290】Re:A-Z列は転記されるが、AB列以降の取得が... マナ 24/5/22(水) 13:58 発言[未読]
【82293】Re:A-Z列は転記されるが、AB列以降の取得が... VBA初学者です_T 24/5/23(木) 8:05 質問[未読]
【82294】Re:A-Z列は転記されるが、AB列以降の取得が... マナ 24/5/24(金) 12:49 発言[未読]
【82295】Re:A-Z列は転記されるが、AB列以降の取得が... VBA初学者です_T 24/5/24(金) 19:30 発言[未読]
【82296】Re:A-Z列は転記されるが、AB列以降の取得が... マナ 24/5/25(土) 12:54 発言[未読]
【82297】Re:A-Z列は転記されるが、AB列以降の取得が... VBA初学者です_T 24/5/25(土) 17:45 お礼[未読]

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