VBAを使って列の結合を行うとしています。
内容は
・A3とA4を結合~A59とA60を結合(60まで)
という具合に、セル2つで一つの組み合わせです。
・これが列単位にA列~Y列まで同じように行おうとしています。
・一つ一つマクロで記述するとえらい手間がかかるので
簡略するマクロ文は無いでしょうか?
・また、この作業はsheet3で行おうとしています。
内容はsheet1に書かれていまして、
(A4~Y4までが1レコードでA20~Y20まであります。)
マクロで普通にsheet3にコピーをすると1レコード目の後に
2レコード目が飛んで3レコード目が次にきてしまいます。
・これはどうすればよいでしょうか?
素人であまりよく分かりません
ご教授宜しくお願いします。
No.2ベストアンサー
- 回答日時:
Sub Macro1()
name1 = Worksheets(1).Name
name3 = Worksheets(3).Name
Worksheets(3).Activate
n = 4
For r = 3 To 59 Step 2
For c = 1 To 25
Worksheets(name3).Range(Cells(r, c), Cells(r + 1, c)).Merge
Worksheets(name3).Cells(r, c).Value = Worksheets(name1).Cells(n, c)
Next
n = n + 1
Next
End Sub
ですね。
No.3
- 回答日時:
質問の表現をはっきりさせること。
私なら下記にする。
ーー
●Sheet1-->Sheet3へコピー、Sheet3でセル結合する。
言いたいことはSheet1からSheet3へデータを写すということであって
、コピー操作ではないのでは?紛らわしい。
●範囲はA3:Y60(>A20~Y20まであります、と矛盾しない?)
●セル結合は、3行目と4行目、5と6・・のようにおこなう。
●A4とA5には、それぞれデータが入っているのか?
文字列は結合もできるが、数字セルはどうするのか?
あるいはSheet1の結合前の1行データを、セル結合後のSheet3の行に入れていくのか。
●行数を2倍にするの。普通には意味がないと思うが?行幅を広げればすむのでは?
こういうのはC列8行ぐらいで質問して、回答を質問者側でY列、60行?まで広げればよい。
ーー
補足要求の返事もない場合が多いので、独断でやってみる。
例データ
Sheet1 A3:C11
a1234
b23123
c3445
d45678
e12432
f2345
g4112
h7334
コード
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet3")
'---
For j = 1 To 3 'C列までの例
For i = 3 To 8 * 2 + 2 Step 2 '8行の例
sh2.Range(sh2.Cells(i, j), sh2.Cells(i + 1, j)).MergeCells = True
k = Int((i - 1) / 2) + 2
sh2.Cells(i, j) = sh1.Cells(k, j)
Next i
Next j
End Sub
ーー
結果
Sheet3 A3:18
a1234
b23123
c3445
d45678
e12432
f2345
g4112
h7334
ーー
>素人であまりよく・・
質問文章の課題の説明が、あいまいと思った。VBAが判ってくると
明確に表現できるようになるもの。
マクロの記録で済むものとは随分考え方が違っているので、質問者には、荷が重いと思う。
No.1
- 回答日時:
Sub Test()
Dim i As Long
Dim j As Long
Application.ScreenUpdating = False
With Worksheets("Sheet3")
For i = 1 To 25
For j = 3 To 59 Step 2
.Range(.Cells(j, i), .Cells(j + 1, i)).Merge
Next
Next
i = 3
For j = 4 To 20
.Cells(i, 1).Resize(, 25).Value = _
Worksheets("Sheet1").Range("A" & j).Resize(, 25).Value
i = i + 2
Next
End With
Application.ScreenUpdating = True
End Sub
こんな感じの事でしょうか?
ファイルをコピーしてから試してみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
エクセルのマクロで結合セルに値を貼り付けたい
Excel(エクセル)
-
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
6
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
7
VBAのFind関数で結合セルを検索するとヒットしない
Visual Basic(VBA)
-
8
複数の列の値を結合して別の列へ返す
Visual Basic(VBA)
-
9
文字列の結合を空白行まで実行
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルで特定の文字列が入っ...
-
特定の文字がある行以外を削除...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルVBA:リストに登録した...
-
excelのデータで色つき行の抽出...
-
セルではなく行や列、シート全...
-
セルの色によって条件文をつけ...
-
エクセルの幅 高さをセンチで...
-
Excel グラフのプロットからデ...
-
電話番号の入力方式が違うデー...
-
Excelでカタカナ・ひらがな・英...
-
エクセルVBA 最終行を選んで並...
-
excel 小さすぎて見えないセル...
-
アクティブになっている行をマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
エクセルで特定の文字列が入っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
AのセルとB行を比較して、一致...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
VBAで色の付いているセルの行削除
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
罫線の斜線を自動で引くマクロ
-
アクティブになっている行をマ...
-
エクセル2016で時間を入力して...
-
EXCELマクロを使い、空白行では...
-
エクセルマクロで偶数行(又は...
-
セルの色によって条件文をつけ...
おすすめ情報