![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ExcelVBA2013です。
列の取得でつまづいております。
お手数ですが、ご教授下さい。
下記のコードで選択範囲のコピー貼り付けは出来ていますが、列幅がコピーされていませんでした。
CC3のセルを基準にOffsetとResizeで範囲拡大してコピーしているためだと思います。
CC3の左隣のAX3:CB3はセル結合されています(○月)。(その下の4行目は日付の1~31が入力)
列は、今回はAX3:CC3まで(1月分)取得できればよいです。(可変します)
MaxCol = Range("J5").End(xlToRight).Column で列取得できます。
行の位置は、MaxRow = Range("I5").End(xlDown).Row で取得した値です。
それで、列全体を取得しようと、 MaxCol = Columns(MaxCol).Select で最終列は取得できましたが、そこから列選択の拡大ができればと思っています。
現在は、AX3:CC237まで取得コピーして、隣の列に貼り付けで列幅が違う。
希望はAX:CCまでの列を取得選択コピーして貼り付け。
Sub SAMPLE()
Dim MaxRow As Variant, MaxCol As Variant
Dim r As Range, c As Range
MaxRow = Range("I5").End(xlDown).Row '最終行番号
MaxCol = Range("J5").End(xlToRight).Column '最終列番号
Set c = Cells(3, Cells(3, Columns.Count).End(xlToLeft).Column) '表の右上角のセル番地を取得
c.Select
c.Offset(0, -31).Resize(MaxRow - 2, 32).Copy c.Offset(0, 1) '表右上から1月分選択範囲拡大してコピー隣の列より貼りつけ
End Sub
No.2ベストアンサー
- 回答日時:
>列幅がコピーされていませんでした。
ご相談の直接の回答としては
変更前:
c.Offset(0, -31).Resize(MaxRow - 2, 32).Copy c.Offset(0, 1)
変更後:
c.Offset(0, -31).Resize(MaxRow - 2, 32).entirecolumn.Copy destination:=cells(1, c.column + 1)
とかで十分です。
No.1
- 回答日時:
やりたいことは、
3行目の最終セルが結合してる列の最終セルまでを、結合セルの隣に列幅も含めてコピーする
でいいのかな?
Cells(3, Cells(3, Columns.Count).End(xlToLeft).Column).Select
Range(Selection, Selection.End(xlDown)).Copy
Selection.Offset(, 1).PasteSpecial xlPasteAll
Selection.PasteSpecial Paste:=xlPasteColumnWidths
この回答への補足
関係ないかもしれませんが、1点もれがありました。CC3:CC4は結合しています。
試してみました。
1行目のコードで、CC3を選択していました。
2行目以降で、CC3のみしかコピーされず、隣にはりつけていました。
CC列は合計列で、その左に31列(1か月分)あります。さらに、その左も同じように前月分が存在しています。
合計欄も含め、最右側にある1か月分を列毎コピーしたいと思っています。
AX:CCの列全体選択→コピー→CDに貼り付け。
CCを選択して、そこから、31列さかのぼって、列全体を選択出来ればと思っているのですが、列全体を選択できないでいます。
これで分かりますでしょうか?他に情報が必要でしたら、教えてください。すいません。お手数かけます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
ある列のセルに特定の文字が入...
-
エクセルで特定の文字が入って...
-
セル内文章から、英数字のみ取...
-
桁の違う数値での並び替え
-
エクセルのまとめてカッコをつ...
-
エクセルで、数字列の中にハイ...
-
エクセルで直近の連続回数を求める
-
連続データを1行おきに貼り付け...
-
Excel2013 カラースケールを別...
-
Excelの結合でA列とB列の内容...
-
Excel 頭に「0」がついている...
-
Excel 指定行までコピーをおこ...
-
excelで、1つのセルに入ってい...
-
【エクセル】2行に一行のように...
-
エクセルの1つのセル内にある...
-
VLOOKUPのあいまい検索(スペー...
-
エクセルに入力した文字列に句...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
エクセルで特定の文字が入って...
-
ある列のセルに特定の文字が入...
-
エクセルのまとめてカッコをつ...
-
桁の違う数値での並び替え
-
Excelでグループの最大値から項...
-
連続データを1行おきに貼り付け...
-
Excel 頭に「0」がついている...
-
excelで、1つのセルに入ってい...
-
エクセルで、数字列の中にハイ...
-
セル内文章から、英数字のみ取...
-
Excel 指定行までコピーをおこ...
-
エクセルの関数
-
Excel強制終了
-
エクセルに入力した文字列に句...
-
INDIRECTの列を可変にしたい
-
【エクセル】2行に一行のように...
-
Excelの結合でA列とB列の内容...
おすすめ情報