No.2ベストアンサー
- 回答日時:
No.1です。
投稿後もう一度質問文を読み返してみると
元データのA列すべてを表示しなければいけないのですね?
前回はSheet2のA列に頭9桁を表示させ
その行のB列以降にアルファベット以降のを表示させていました。
↓のコードに変更してみてください。
Sub Sample2() 'この行から//
Dim i As Long, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
.Rows(1).Insert
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("B:C").Insert
With Range(.Cells(1, "B"), .Cells(lastRow, "B"))
.Formula = "=LEFT(A1,9)"
.Value = .Value
End With
With Range(.Cells(1, "C"), .Cells(lastRow, "C"))
.Formula = "=SUBSTITUTE(A1,B1,"""")"
.Value = .Value
End With
.Range("B1") = "ダミー"
.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
.Rows(1).AutoFilter field:=2, Criteria1:=wS.Cells(i, "A")
Range(.Cells(2, "A"), .Cells(lastRow, "A")).SpecialCells(xlCellTypeVisible).Copy '★
wS.Cells(i, "B").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next i
.Range("B:C").Delete
.Rows(1).Delete
wS.Rows(1).Delete
wS.Range("A:A").Delete '(追加)★
End With
wS.Columns.AutoFit
Application.ScreenUpdating = True
wS.Activate
End Sub 'この行まで//
※ コード内の★の行だけに手を加えています。m(_ _)m
この回答へのお礼
お礼日時:2016/01/20 04:58
ありがとうございます。出来ました。手でコピーするには大量のデータでしたので大変助かりました。VBAですね。勉強して活用したいと思います。ありがとうございました。
No.1
- 回答日時:
こんばんは!
画像を拝見すると
A列の1行目からデータがあり、頭から9桁のデータを1行にまとめたい!
というコトですよね?
関数でできるかもしれませんが、手っ取り早くVBAでやってみました。
元データはSheet1のA列にあり、Sheet2に表示させるとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から//
Dim i As Long, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
.Rows(1).Insert
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("B:C").Insert
With Range(.Cells(1, "B"), .Cells(lastRow, "B"))
.Formula = "=LEFT(A1,9)"
.Value = .Value
End With
With Range(.Cells(1, "C"), .Cells(lastRow, "C"))
.Formula = "=SUBSTITUTE(A1,B1,"""")"
.Value = .Value
End With
.Range("B1") = "ダミー"
.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
.Rows(1).AutoFilter field:=2, Criteria1:=wS.Cells(i, "A")
Range(.Cells(2, "C"), .Cells(lastRow, "C")).SpecialCells(xlCellTypeVisible).Copy
wS.Cells(i, "B").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next i
.Range("B:C").Delete
.Rows(1).Delete
wS.Rows(1).Delete
End With
wS.Columns.AutoFit
Application.ScreenUpdating = True
wS.Activate
End Sub 'この行まで//
※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。
まずはこの程度で・・・m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) エクセルで月末、月初の判定をしたい。 4 2022/05/18 23:22
- Excel(エクセル) エクセルで納品書を作成中ですが、関数を教えて下さい。 2 2022/09/05 10:32
- Excel(エクセル) エクセルの関数いれれますか? 1 2022/03/25 20:39
- Excel(エクセル) エクセルを活用して受注表を作成中ですが関数が分からなく困ってました。 1 2022/07/22 09:14
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Excel(エクセル) エクセルで一定の数値を超えたとき”一定数”、超えなかったら計算式を入れたい 3 2022/04/05 10:31
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの重複データに色付け
-
Excel VBA オートフィルタの結...
-
Excel VBAでオートフィルタで抽...
-
Excel VBAの質問。行のコピーと...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
Excel VBAで列を行に変換するには
-
EXCEL VBAでA列にある空白行よ...
-
Excel マクロ 検索結果を別シ...
-
WPSOffice_マクロの有効化について
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
名前の変わるブックをアクティ...
-
LDPlayerのマクロの編集方法を...
-
【マクロ】必要な項目(列)の...
-
【Excel VBA】マクロでExcel自...
-
複数のExcelファイルの印刷設定...
-
エクセルについて教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
数値に見えるものはすべて数値...
-
エクセルのデータがない行には...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
【VBA】条件に一致しない行を削...
-
エクセルのVBAで指定した行数の...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
マクロにて指定の文字間の文字...
-
Excel97 指定した行だけマク...
-
EXCEL VBAでA列にある空白行よ...
-
excel2021で実行できないマクロ...
-
Excel 別ブックから該当データ...
-
VBAでの重複データに色付け
-
Excel VBA オートフィルタの結...
-
エクセルで階層図を作る方法
-
VBAで特定の行と一つ上の行を削...
-
【至急】Excel 同一人物の情報...
-
Excelで、マウスで範囲を選択し...
おすすめ情報