Excel VBA 質問スレ Part83 (619レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
379
(2): デフォルトの名無しさん [sage] 2025/07/07(月) 09:23:50.46 ID:GhKlbyJu(1/2) AAS
だが、Copilotにプログラムを作らせると、こんなにも原始的でバグだらけなのであった
しかもこれだとクソ遅い

【設問】以下はVBAでCSVファイルを開いて読み込むプログラムである。バグを指摘せよ。

FilePath = "C:\Users\YourName\Documents\sample.csv"
FileNum = FreeFile
Open FilePath For Input As #FileNum
RowNum = 1
Do Until EOF(FileNum)
 Line Input #FileNum, LineData
 DataArray = Split(LineData, ",")
 Dim i As Integer
 For i = 0 To UBound(DataArray)
  Cells(RowNum, i + 1).Value = DataArray(i)
 Next i
 RowNum = RowNum + 1
Loop
Close #FileNum
381: デフォルトの名無しさん [sage] 2025/07/07(月) 10:31:44.26 ID:GhKlbyJu(2/2) AAS
>>380
380(1): デフォルトの名無しさん [sage] 2025/07/07(月) 10:00:11.48 ID:xGHCrZSN(1) AAS
>>379
CopilotはVBAerほどじゃないにせよアホの子だからね
以下、Claude Opus 4 with extended thinkingの回答

主なバグ:

1. カンマを含む値(“Tokyo, Japan”等)が分割される
2. エラー処理なし。ファイルなかったら死ぬ
3. 変数宣言してない(Option Explicit使ってたらエラー)
4. UTF-8読めない。日本語文字化け
5. セル1個ずつ書き込みでクソ遅い
6. 前のデータ消さないから残る

最悪の例:
CSVに "売上高は1,000,000円" があったら
→ 売上高は1 000 000円" の3列に分解されるw
結論:Workbooks.OpenTextかQueryTables使え​​​​​​​​​​​​​​​​​
変数宣言は行数の都合でカットしたのでCopilot君は悪くない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s