A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
以下のコードは、新規のブックにインポートされます。
256 列を越えた分を、次のシートに貼り付けされます。こちらで試験したのは、300列です。論理的には、シートエラーを起こすまでということになるのですが、それは、常識的な範囲でお願いします。
一本しかない横のデータは、無理だと思います。というか、いわゆる時系列データは、Cells(i) で入れていきますね。1シートで、論理的に16,777,216個のデータが扱えることになります。
Alt+ F11 で、Visual Basic 画面を開いて、挿入-標準モジュールで、新しい画面が出たら、以下を貼り付けます。
なるべく、速い貼り付けができるように、以前あったものを改編してみました。しかし、思ったほど、速くなりませんでした。ハングしたかと思われては困るので、インポートは、見えるようにしました。
'---------------------------------------------------------
'<標準モジュールに登録してください>
Option Explicit
Sub OverColumnCSV()
Dim i As Long, j As Long, k As Long, m As Long, n As Long
Dim rw As Long, col As Long, FNo As Integer
Dim Fname As String
Dim TextLine As String
Dim LineBuf As Variant, arbuf() As Variant
Dim ShtCount As Integer
Dim UB As Long
Dim AddFlg As Integer
'
rw = 1 '最初の行数
Fname = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv")
If Fname = "False" Then
Exit Sub
End If
Workbooks.Add '新規ブック作成
With ActiveWorkbook
FNo = FreeFile()
Open Fname For Input As #FNo 'ファイルインポート
Do Until EOF(FNo)
Line Input #FNo, TextLine
'「""」 の除去
TextLine = Application.Substitute(TextLine, """", "")
LineBuf = Split(TextLine, ",")
UB = UBound(LineBuf) '上限の添え字
ShtCount = .Worksheets.Count
'シート数の確認
If j \ 257 > ShtCount Then .Worksheets.Add _
After:=.Worksheets(ShtCount), Count:=(j \ 257) - ShtCount
'ハングと間違えられるので、画面に出す
'Application.ScreenUpdating = False
If UB Mod 255 Then AddFlg = 1
For j = 1 To (UB \ 257) + AddFlg
With .Worksheets(j)
If UB - j * 255 > 0 Then
col = 256
Else
col = UB Mod 256
End If
k = k + col
For m = (j - 1) * 256 To k - 1
ReDim Preserve arbuf(n)
arbuf(n) = LineBuf(m)
n = n + 1
Next m
.Range(.Cells(rw, 1), .Cells(rw, col)).Value = arbuf
ReDim arbuf(0): n = 0
End With
Next j
rw = rw + 1: k = 0: m = 0
Loop
'Application.ScreenUpdating = True
Close #FNo
End With
MsgBox "終了しました", 64
End Sub
'---------------------------------------------------------
No.1
- 回答日時:
EXCELの仕様が横が256セルですからそのままでは難しいですね。
多分ACCESSならば読めるとは思うのですがEXCELしかなくどうしてもということであれば、面倒ですが下記の方法でカットされたデータを読み込むのはどうでしょうか?1.まずCSVファイルの拡張子をTXT等に変更します(コピーを作ってやって下さい)。
2.次に上記で拡張子を変更したファイルを開きますと「テキストファイルウィザード」が開きますので「タブやカンマ~」にチェックが入っていることを確認して次へ。
3.「区切り文字」に「カンマ」を追加して次へ。
4.「列のデータ形式」で257列以降を残して削除にチェックを入れて完了。
これでカットされた257列以降分のデータが読み込めるはずです。ただデータの順番のずれには気をつけてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のCSVファイルを横に並べて...
-
excelインポート時の「実行時エ...
-
【VBA初心者】同じフォルダ内の...
-
【エクセル VBA】CSVファイルの...
-
「ほかのアプリケーションを無...
-
Excel VBAを使った複数のCSVフ...
-
エクセルの指数を無効にしたい
-
複数のcsvファイルを1つのEXCEL...
-
VBAでCSVの1行目だけを書き換え...
-
CSVファイルの結合(重複データ...
-
二つのCSVファイルを照らし合わ...
-
EXCELにcsv形式の外部データを...
-
エクセル2013vbaで、見えない名...
-
複数のデータ系列の線の太さを...
-
フォルダ内の全ブックのシート...
-
VBAを一度起動するとずっと出て...
-
エクセルファイルを自身のファ...
-
ファイル名を今日の日付、時刻...
-
EXCEL マクロ クリップボードク...
-
ExcelVBAで今開いているユーザ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの指数を無効にしたい
-
複数のCSVファイルを横に並べて...
-
excelインポート時の「実行時エ...
-
VBAでCSVの1行目だけを書き換え...
-
CSVファイルの結合(重複データ...
-
「ほかのアプリケーションを無...
-
複数のcsvファイルを1つのEXCEL...
-
EXCELにcsv形式の外部データを...
-
Excel VBAを使った複数のCSVフ...
-
二つのCSVファイルを照らし合わ...
-
datファイル→csvファイル→datフ...
-
大量のCSVデータを1つのエ...
-
CSVファイルをエクセルに取込む...
-
EXCELLの動きが遅い
-
【エクセル VBA】CSVファイルの...
-
256以上のCSVファイルをEXCELで...
-
THUNDERBIRD フォルダ 取り込み...
-
エクセルで複数ファイルのシー...
-
EXCELで外部データの取り込みが...
-
複数のエクセルファイルをひと...
おすすめ情報