No.1ベストアンサー
- 回答日時:
マクロを使わなくても、
元表が列A~列Fまでにあるとすれば
cell(G1)=A1
cell(H1)=A2
cell(I1)=B1
cell(J1)=B2
cell(K1)=C1
cell(L1)=D1
cell(M1)=E1
cell(N1)=E2
cell(O1)=F1
cell(P1)=F2
として、G1:P2(P1ではなくP2です)を選択して下に引っ張る。
G:Pを選択して、コピー「形式を選択して貼り付け」「値」でペースト。
G:Pを「空白以外のセル」でフィルタを掛けて、コピー&別シートにペーストで出来ます。
No.3
- 回答日時:
'データのある当該シートモジュールか、標準モジュール
Sub ArrangedMatrix()
Dim ar() As Variant
Dim i As Long, j As Long, k As Long, n As Long
Dim rng As Range
Dim pstRng As Range
'//
Set rng = Range("A3", Range("A3").End(xlDown)) 'データ範囲
Set pstRng = Range("A20") '貼付け位置
'Worksheets("Sheet2").Range("A1") '違うシートの場合
'//
If Range("A3").End(xlDown).Row = Rows.Count Then
MsgBox "表が違うかもしれません。", vbExclamation
Exit Sub
ElseIf rng.Parent Is pstRng.Parent Then
If Not Intersect(rng, pstRng) Is Nothing Then
MsgBox "貼付け場所が重なっています。", vbExclamation
Exit Sub
End If
End If
ReDim ar(9, Int(rng.Rows.Count / 2) - 1)
For i = 1 To rng.Rows.Count Step 2
For j = 1 To 12
If rng.Cells(i + n, Int((j - 1) / 2) + 1).Value <> "" Then
ar(k, Int(i / 2)) = rng.Cells(i + n, Int((j - 1) / 2) + 1).Value
k = k + 1
If n = 1 Then n = 0 Else n = n + 1
Else
n = 0
End If
Next
k = 0
Next
'項目名
pstRng.Resize(, 10).Value = Array("受注NO", "管理NO", "注文品", "顧客名", "受注金額", "取引日", "営業部門", "営業担当", "営業部門", "製造担当")
pstRng.Offset(1).Resize(Int(rng.Rows.Count / 2), 10).Value = Application.Transpose(ar)
Set rng = Nothing
Set pstRng = Nothing
Beep
End Sub
No.2
- 回答日時:
マクロを使わなくとも次のようにすればよいでしょう。
元の表がシート1のA列からF列に有り、1,2行目は項目名でデータが3行目から下方にあるとします。
お求めの表をシート2に作るとしてA1セルからJ1セルまでに項目が並んで入力されているとします。
A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(OR(A$1="",ROW(A1)>(COUNTA(Sheet1!$A:$A)-2)/2),"",INDEX(Sheet1!$A:$F,ROW(A1)*2+1+IF(COLUMN(A1)<6,IF(MOD(COLUMN(A1),2)=0,1,0),IF(COLUMN(A1)>6,IF(MOD(COLUMN(A1),2)=0,1,0))),IF(COLUMN(A1)<=5,ROUNDUP(COLUMN(A1)/2,0),IF(COLUMN(A1)=6,4,ROUNDUP((COLUMN(A1)+2)/2,0)))))
この回答へのお礼
お礼日時:2010/05/11 16:50
どうもありがとうございます。
考え方はよくわかりましたが、うまくいきませんでした。
けれども関数の記入方等は参考になりましたので、次に活かせそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Visual Basic(VBA) 【マクロ】表への繰り返し転記について 1 2022/11/19 16:30
- Excel(エクセル) vba あるブックから新たにブックを起動したときディスプレイ上で並べて表示 1 2023/08/08 08:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- 家具・インテリア ベッド下の引き出し収納の左右入れ替えについて 2 2022/03/31 15:28
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- ホームページ作成・プログラミング さくらサーバーに置いているホームページを改修したいです 2 2022/11/06 17:13
- 食べ物・食材 遺伝子組み換えされた有機大豆はあるのでしょうか 9 2022/10/16 12:58
- IT・エンジニアリング インフラエンジニア(ネットワークエンジニア)の検証業務について教えてください。 インフラ初心者なので 2 2022/06/26 00:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
【スプレッドシート】指定の日...
-
Microsoft Formsの「個人情報や...
-
会社PCのメールが更新されない
-
【Excel VBA】PDFを作成して,...
-
マイクロソフト 一時使用コード...
-
エクセルでXLOOKUP関数...
-
office2016のパソコン2台インス...
-
Excelのセルの重複チェックが出...
-
teams設定教えて下さい。 ①ビデ...
-
Excel テーブル内の空白行の削除
-
Microsoft365で写真をアルバム...
-
会社におけるOfficeライセンス...
-
VLOOKUP関数について
-
Windows 11で、IME言語バー(IM...
-
officeビジネス型のワードやエ...
-
VBAファイルの保存先について
-
エクセル、ワード、ネット検索...
-
Outlook で宛先が複数の場合の人数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報