以下の作業をマクロで処理したいと思っています。
エクセルのシート1に
A B C
1 aaa アアア あああ
2 bbb イイイ いいい
3 ccc ウウウ ううう
4 ddd エエエ えええ
5 eee オオオ おおお
という表があったとします。
これらの文字列の横の組合せ(125通)の全てを
シート2のA列に表示させたいのです。
この表は5の3条の組合せなのですが、
実際には列も行数も多くて、列ごとに行数もバラバラです。
組合せの数が、65536行を超えるときにはシート2のB列に、
それも超えるならC、D、E列と表示させていきたいと思っています。
贅沢な希望かもしれませんが処理が早いほうがいいです。
マクロについては、まったくの初心者で何がなんだかわかりません。
じっくり勉強すればできることなのかもしれませんが、ちょっと急いでいます。
どうぞよろしくお願いいたします。
エクセルでは無理とか、テキストエディターの方が便利だ、
または、有料でも便利なソフトなどのアドバイス等ありましたらお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
レスがつかないようなので。
MicrosoftAccessはお持ちでないですか?エクセルでやるよりずいぶん簡単に出来ますよ。
あまりお勧めではありませんがエクセルのマクロでも処理可能です。
しっかり動作確認していないので不具合があったら申し訳ありません。
以下をモジュールにコピーし「Main」を実行してください。
ただしシートの並びは左からシート1、シート2としておく事。
Dim shtIn As Worksheet
Dim shtOut As Worksheet
Dim lngRowIn() As Long
Dim lngRowInCnt() As Long
Dim lngColIn As Long
Dim lngColInCnt As Long
Dim lngRowOut As Long
Dim lngColOut As Long
Public Sub Main()
Application.ScreenUpdating = False
Set shtIn = ThisWorkbook.Worksheets(1)
Set shtOut = ThisWorkbook.Worksheets(2)
lngColInCnt = shtIn.Cells(1, 1).End(xlToRight).Column
ReDim lngRowIn(1 To lngColInCnt)
ReDim lngRowInCnt(1 To lngColInCnt)
For lngColIn = 1 To lngColInCnt
lngRowInCnt(lngColIn) = shtIn.Cells(65536, lngColIn).End(xlUp).Row
Next
lngRowOut = 65536: lngColOut = 0
subSetRowIn 1
Application.ScreenUpdating = True
End Sub
Private Sub subSetRowIn(lngCol As Long)
Dim strOut As String
For lngRowIn(lngCol) = 1 To lngRowInCnt(lngCol)
If lngCol < lngColInCnt Then
subSetRowIn lngCol + 1
Else
If lngRowOut < 65536 Then
lngRowOut = lngRowOut + 1
Else
lngRowOut = 1
lngColOut = lngColOut + 1
End If
strOut = ""
For lngColIn = 1 To lngColInCnt
strOut = strOut & shtIn.Cells(lngRowIn(lngColIn), lngColIn)
Next
shtOut.Cells(lngRowOut, lngColOut) = strOut
End If
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Excel(エクセル) エクセルの大きなシートでグラフを見つける 4 2022/07/28 10:07
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの保護で、列の表示や...
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
エクセルの列の限界は255列以上...
-
VBAで繰り返しコピーしながら下...
-
【VBA】複数のシートの指定した...
-
SUMPRODUCTにて別シートのデー...
-
VLOOKアップ関数の結果の...
-
エクセルの複数シートにあるデ...
-
Excel VBA ピボットテーブルに...
-
エクセル マクロ 標準モジュー...
-
【条件付き書式】countifsで複...
-
ある数値に対して、値を返す数...
-
Excel の複数シートの列幅を同...
-
エクセルで横並びの複数データ...
-
エクセル 日報売上を月報に展開...
-
スプレッドシートでindexとIMPO...
-
【VBA】ピボットテーブルを既存...
-
【VBA】シート名と見出しが一致...
-
アンケート集計をエクセルで行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
オートフィルタ使用時にCOUNTIF...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
エクセル関数に詳しい方、教え...
-
【条件付き書式】countifsで複...
-
Excel の複数シートの列幅を同...
-
エクセル マクロ 標準モジュー...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
VLOOKアップ関数の結果の...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
Excel VBA ピボットテーブルに...
-
【エクセル】1列のデータを交...
-
エクセルVBAで、ある文字を含ん...
-
エクセルのブック分割マクロを...
-
excel 複数のシートの同じ場所...
おすすめ情報