
以下のVBAを利用してCSVファイルを取り込むだけなのですが、 取り込み終わった後...
2018/7/917:17:30
以下のVBAを利用してCSVファイルを取り込むだけなのですが、
取り込み終わった後に、テキスト形式のセルがいくつかの列に存在してしまい
「このセルにある数値が、テキスト形式か、またはアポストロフィで始まっています。」
の注意コメントが発生して、次のステップ(グラフ表示)に進めません。
注意を回避して、数値だけをセルに表示したいのですが、
何が不足しているのでしょうか?
申し訳ありませんが、教えてください。
Sub ボタン1_Click()
Dim i As Integer
Dim bufStr As String
Dim filePath As String
Dim fd As FileDialog
'ファイル選択ダイアログボックス
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
'ファイルの複数選択を不可
.AllowMultiSelect = False
'タイトル
.Title = "CSVファイル"
'ファイルフィルタのクリア
.Filters.Clear
'ファイルフィルタの設定
.Filters.Add "CSVファイル ", "*.csv"
'初期表示のフォルダ
.InitialFileName = ""
If .Show = True Then
'ファイルパスの取得
filePath = .SelectedItems(1)
Else
'キャンセル
Exit Sub
End If
End With
'ファイルのオープン
Open filePath For Input As #1
i = 2
Do While Not EOF(1)
' CSV ファイルを1行読み込み
Line Input #1, lineStr
' カンマ区切りで分割し配列に格納
arrayStr = Split(Replace(lineStr, """", ""), ",")
' A1 セルを基点にして、列数を配列の要素数分広げ、行数のオフセット分ずらして展開する
Range("A2").Resize(1, UBound(arrayStr) + 1).Offset(RowIndex) = arrayStr
' 行オフセットをインクリメント
RowIndex = RowIndex + 1
Loop
'ファイルを閉じる
Close #1
End Sub
ベストアンサーに選ばれた回答
2018/7/918:46:56
http://www.moug.net/tech/exvba/0060086.html
ひとつひとつセルに入れていくしかないのでは?
Sub ボタン1_Click()
Dim i As Integer, RowIndex, j As Long
Dim bufStr As String, lineStr, arrayStr As Variant
Dim filePath As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = "CSVファイル"
.Filters.Clear
.Filters.Add "CSVファイル ", "*.csv"
.InitialFileName = ""
If .Show = True Then
filePath = .SelectedItems(1)
Else
Exit Sub
End If
End With
Open filePath For Input As #1
i = 2
Do While Not EOF(1)
Line Input #1, lineStr
arrayStr = Split(Replace(lineStr, """", ""), ",")
For j = 0 To UBound(arrayStr)
If IsNumeric(arrayStr(j)) Then
Cells(i, j + 1).NumberFormat = "0"
Cells(i, j + 1) = arrayStr(j)
Else
Cells(i, j + 1) = arrayStr(j)
End If
Next
i = i + 1
'Range("A2").Resize(1, UBound(arrayStr) + 1).Offset(RowIndex) = arrayStr
'RowIndex = RowIndex + 1
Loop
Close #1
End Sub
返信を取り消しますが
よろしいですか?
- 取り消す
- キャンセル
ベストアンサー以外の回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
2018/7/918:08:44
返信を取り消しますが
よろしいですか?
- 取り消す
- キャンセル
2018/7/917:28:48
返信を取り消しますが
よろしいですか?
- 取り消す
- キャンセル
「arrayStr、lineStr」に関する質問
このカテゴリの回答受付中の質問
- ExcelのVBAからフォトギャラリーに sendkeys をするため、AppActivate を使ってフ...
- https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11199929161 の質問...
- 会社でSKYPDFを使っているのですが、困っていることが2つあります。 解決策をご存...
- エクセルのテンプレート「顧客連絡先リスト」を使い、エクセルに文字を打つと最初...
- 自分は文化祭実行委員をしているのですが、来年度から出展方法をGoogleフォームに...
- ウォーターフォール図で合計値の棒が出てきません。どのようにすれば出てきますで...
- 以下のエクセル関数をSAS関数へ 変換したいのですが、やり方がさっぱりです。 ...
- P検準二級の模擬試験をやったところ、 タイピング 合格 問題 55% ワード 44% エク...
- Numbersでグラフの参照範囲を入力されている値のうちの下から20行など、常に最新...
- はじめまして。 マクロ初心者です。どうか皆様のお力をお貸しください。 3つ...
このカテゴリの投票受付中の質問
- Excelのマクロについて Excelで、条件に合った別シートのセルの表示(抽出)や検索...
- エクセル初心者です。 入力規則 ドロップダウンリストという便利なものがあると知...
- MOSのWardの試験勉強で練習問題をしているのですが、この「実行したい作業を入力...
- あるバーコードがスキャンされたら その任意のエクセルファイルを開く てこと...
- エクセルで確率計算表のつくり方を教えてください 計算式がわかりません 確率...
- エクセルの関数の詳しい方、教えてください。 daily late minute(遅刻時間)の...
- エクセルで列はABCで表されますが、これを1,2,3の番号で表す方法を教えてもら...
- Excelの機能を教えてください。 A1からX100までの表を作成したとして(表といって...
- エクセルとかでよく、書類等に表の枠等、つけたりかたどってから印刷したりできま...
- 至急お願いします。 エクセルの表で、毎月の支払いの入力を 今月に支払いがな...
この質問につけられたタグ
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。

