複数のセルのコピー、その後その情報を操作してペーストする方法がわかりません。
シート1にある情報は、
A1:E8は、1行づつ統合されています。A1:E1が統合されておりvalue=「1」、A2:E2が統合されておりvalue=「2」、・・A8:E8が統合されておりvalue=「8」、という具合です。
A9:E19は、統合されておらず、それぞれのセルに情報が入っています。
それらA1:E19を1単位として、右隣に同じ形式(2単位目はF1:J19)の情報が100個ほど並んでいます。
このシート1に対し、
Set IntTest = Application.InputBox(Prompt:="範囲をドラッグしてください。",Type:=8)
で「$A$1:$E$8,$B$9:$B$19」と入力したら、その情報をコピーして、別シート2のA列1列にそれらの情報をペーストしたいのです。その後次々に、シート1の入力した単位の隣の単位に対しても同じことをしていきたいのです。シート1の2単位目のF1:J19に対して、相対的に同じ部分をシート2のB列1列に貼り付け・・という具合に。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> A1:E19を1単位として、右隣に同じ形式(2単位目はF1:J19)の情報が
> 100個ほど並んでいます。
100 個というのが意味不明です。
A ~ E 列なら 1 単位辺り 5 列なので、100 単位となると 5 × 100 で
500 列必要になりますね。。Excel2007?
若しくは、5 列 × 20 単位 = 100 列 という意味ですか?
>「$A$1:$E$8,$B$9:$B$19」と入力したら、その情報をコピーして、
> 別シート2のA列1列にそれらの情報をペーストしたいのです。
仮に、「$A$1:$E$8,$B$9:$F$19」が選択された場合はどうします?
ポイントになりそうなのは、
1. MergeArea
2. Offset
ですかね。。働きはヘルプで調べてみて下さい。
結合セルの値は、結合セルの一番左角のセルから取得します。例えば
A1:C10 が結合されているなら A1、F10:J20 なら F10 のように。
ご希望の動作を正しく理解している自信がありませんが、とりあえず
テストコードということで回答してみます。
Sub macro()
Dim Sh As Worksheet
Dim rSrc As Range
Dim r As Range
Dim i As Long
Dim lRow As Long
Dim lCol As Long
Set rSrc = Application.InputBox( _
Prompt:="範囲をドラッグしてください。", _
Type:=8)
If rSrc Is Nothing Then Exit Sub
Set Sh = Worksheets.Add(After:=ActiveSheet)
lRow = 1
lCol = 1
For i = 1 To 20
For Each r In rSrc
' // MergeArea で取得されるセルの一番左角のセルであった時
' // のみ転記処理を行う。結合セルであるかどうかは問題ではない
If r.Address = r.MergeArea(1).Address Then
Sh.Cells(lRow, lCol).Value = r.Value
lRow = lRow + 1
End If
Next
' // 1単位は 5 列で構成されるので、次の単位における
' // 同位置は Offset(0,5)
Set rSrc = rSrc.Offset(0, 5)
lRow = 1
lCol = lCol + 1
Next
Set rSrc = Nothing
End Sub
つたない質問から、良い回答を書いていてありがとうございます。
If r.Address = r.MergeArea(1).Address Then
の部分、特に参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報