A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こちらも試してみてください。
メモリ不足というのは、Excel 2013以降の問題なんでしょうね。
何にか良くわからないけれども、こちらもメモリ喰いが発生しているようです。
横につなげるというのは、なにか問題があるのかもしれませんね。
'//
Sub ConvertNum2Col()
Dim x As Variant
Dim i As Long, j As Long, k As Long
'セッティング
Dim ar(1 To 5, 1 To 5)
Dim nTotal As Long: nTotal = 25
Dim sh1 As Worksheet, sh2 As Worksheet
Dim limitCol As Long
Dim col As Long
limitCol = Columns.Count
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
sh2.UsedRange.ClearContents
With sh1
x = .Range("A1", .Cells(Rows.Count, 1).End(xlUp)).Value
End With
k = 1
Application.ScreenUpdating = False
Do
For i = 1 To 5
For j = 1 To 5
DoEvents
ar(j, i) = x(k, 1)
col = (Int(k / nTotal) - 1) * 5
If limitCol <= (col + 5) Then
sh2.Cells(1, (Int(k / nTotal) - 1) * 5 + 1).Resize(5, limitCol - col).Value = ar
Exit Sub
End If
If k Mod nTotal = 0 Then
sh2.Cells(1, (Int(k / nTotal) - 1) * 5 + 1).Resize(5, 5).Value = ar
Erase ar()
End If
k = k + 1
Next j
Next i
Loop Until k > UBound(x)
Application.ScreenUpdating = True
End Sub
No.3
- 回答日時:
続けてお邪魔します。
>この処理をしたいデータだとメモリが不足していますとなり
Sheet1のA列データは何行目まであるのでしょうか?
Excelの最終列はXFD列の16384列なので、その5倍の81920行までのデータ数であれば
少し時間を要しても前回のコードで大丈夫だと思います。
少し時間短縮をしたい場合は
最初に
>Application.ScreenUpdating = False
と
最後に
>Application.ScreenUpdating = True
を追加すればほとんど時間は要しないとおもいます。
※ もし、Sheet1のデータ数が81921行以上ある場合は
Sheet2を2段で表示する必要があると思います。
※ 実際、そんなにデータが多いとSheet2の画面をスクロールするのも大変でしょうけど・・・m(_ _)m
No.2
- 回答日時:
No.1です。
投稿後気づきました。
VBAでの方法をご希望だったのですね。
No.1で回答したように元データはSheet1のA1セル以降にあり、Sheet2のA列以降5行ずつ表示するとします。
Sub Sample1()
Dim i As Long, cnt As Long
Dim wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row Step 5
cnt = cnt + 1
wS.Cells(1, cnt).Resize(5).Value = .Cells(i, "A").Resize(5).Value
Next i
End With
End Sub
こんな感じでもいけると思います。m(_ _)m
この回答へのお礼
お礼日時:2019/08/15 21:38
ありがとうございます。
早速やってみました。
少ないデータだとうまく動きました。
私がこの処理をしたいデータだとメモリが不足していますとなり
エラーが出てしまいました。ちょっと頑張ってみます。
助かりました。
No.1
- 回答日時:
こんばんは!
色々やり方はあると思いますが、一例です。
元データはSheet1のA1セルからあり、Sheet2のA1セル以降に表示するとします。
Sheet2のA1セルに
=IF(COUNTA(Sheet1!$A:$A)<ROW(A1)+(COLUMN(A1)-1)*5,"",OFFSET(Sheet1!$A$1,(COLUMN(A1)-1)*5+ROW(A1)-1,,1))
という数式を入れ下へ5行分、そのまま右へフィル&コピー!
こんな感じではどうでしょうか?
※ Sheet1のA列には途中に空白セルはない!という前提です。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでのマクロを使ったデータの並べ替え 3 2022/12/03 18:54
- Visual Basic(VBA) 【VBA】もし、値が0だったら左のセルと合わせて削除したい 3 2023/04/20 10:12
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- その他(Microsoft Office) エクセルソートと抽出について 3 2022/10/22 22:09
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Visual Basic(VBA) Excelで横書き50行の漢字テストデータを縦書きのテスト問題にしたい。 6 2022/04/27 15:03
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- Excel(エクセル) Excelの計算式で質問です。 3 2022/06/21 21:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】エクセルにかいてあ...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
スプレッドシート クエリ関数 1...
-
別シートからの文字を変更
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
MOS365 Excel Expert / Excel R...
-
エクセルの数式で教えてください。
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
各ページの1番上の表示について
-
INDIRECTを使わず excelで複数...
-
関数を教えて下さい。
-
Excelのグラフ軸について
-
Excel:一部のフォントでセルの...
-
エクセルで指定した日付、店舗...
-
Excel ウインドウ枠の固定をす...
-
EXACT関数とIF関数の組み合わせ...
-
写真のコピー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報