Excel VBA 質問スレ Part83 (612レス)
前次1-
抽出解除 レス栞

リロード規制です。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
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使え​​​​​​​​​​​​​​​​​
382: デフォルトの名無しさん [sage] 2025/07/07(月) 14:15:38.83 ID:quoGln+a(1) AAS
>>379
ChatGPTだとこんな感じですね。
そのまま貼り付けたので全角も見てくれてる。

バグ・問題点
1 変数の未宣言
2 インデントに全角スペースが混在
3 変数 i の Dim がループ内にある

補足(改善点)
・CSVに カンマを含むセル がある場合、Splitだけでは不十分(→正確なCSV解析が必要)。
・ファイル存在チェック (Dir(FilePath) など) を入れるとより堅牢になります。
・Shift-JIS以外の文字コード(例:UTF-8 BOM付き)は Open では正しく読み込めないことがあります。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s