![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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も見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【EXCEL】画像の黄色部分の抽出...
-
絶対参照
-
Excelで表を作ったところに文字...
-
文字2桁、3桁交じりの文字列...
-
Excelピボットテーブルの1行目
-
マクロエクセルのブロック解除
-
Excelについての質問です。 B2...
-
エクセルのクイックアクセスツ...
-
ユーザー定義関数をアドイン登...
-
エクセルのクイックアクセスツ...
-
職場の人から聞かれており、こ...
-
REGEXREPLACE関数について、
-
DATE関数で現在の年齢を出した...
-
エクセルでCtrl+Tでテーブルの...
-
下記マクロでMsgBox "空白です...
-
エクセルで表
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
スプレッドシートで使う数式を...
-
エクセルのデーターが2か月前の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報