選択範囲を左右対称形でカット&ペーストするマクロを作成したいのですが。
F1あ
F2い G2う
F3え G3お H3か
上記でF1:H3を選択して実行すると、InputBoxに貼付け先を指定し、仮にD1を選ぶと以下の結果になります。
D1あ
C2う D2い
B3か C3お D3え
以下のマクロを作成しましたがうまくいきません。
rc = Selection.Rows.count
cc = Selection.Columns.count
Set pt = Application.InputBox("貼り付け先", "Paste", Type:=8)
For j = 1 To rc
For i = 1 To cc
Selection.Offset(j - 1, i - 1).Cut pt.Offset(j - 1, 1 - i)
Next i
Next j
実行結果ですが。
InputBoxの指定先を基点に左右対称ではなくそのままの向きでカット&ペーストされます。
また、カット&ペースト処理のところでエラーになって止まってしまいます。
どこがおかしいのでしょうか?
ご指摘お願いします。
No.4ベストアンサー
- 回答日時:
#2で書いたコトに加えて、
Cut メソッドは、変数を破壊的に使用するようです。
rc = Selection.Rows.Count
cc = Selection.Columns.Count
Set pt = Application.InputBox("貼り付け先", "Paste", Type:=8)
d = pt.Address
s = Selection.Cells(1, 1).Address
For j = 1 To rc
For i = 1 To cc
Set pt = Range(d)
Set x = Range(s)
If Not (x.Offset(j - 1, i - 1) = Empty) Then
x.Offset(j - 1, i - 1).Cut pt.Offset(j - 1, 1 - i)
End If
Next i
Next j
のように修正したところ動作できました。
No.3
- 回答日時:
For文を下記のように変更しました。
「Set pt = ~」までは変更していません。
prc = pt.Row
pcc = pt.Column
For j = Selection.Row To Selection.Row + rc - 1
k = 0
For i = Selection.Column To Selection.Column + cc - 1
Cells(j, i).Cut Cells(prc + l, pcc - k)
k = k + 1
Next i
l = l + 1
Next j
No.2
- 回答日時:
Selection.Offset(j - 1, i - 1) は、オフセットで指定した1つのセルを指しているのではありません。
例えば
Selection が F1:H3 の時
Selection.Offset(1, 1) は、G2:I4 になります。
ありがとうございます。
目から鱗が落ちたような思いです。
が、"cc = Selection.Columns.count"の後ろに、"ActiveCell.Select"を追記して複数セル選択を解除して試してみましたが、うまくいきませんでした。
No.1
- 回答日時:
単純にシート1の選択セルをシート2のA1から
左右逆に転記するのは↓のようになります。
今回は貼り付け先指定ですので改造が必要です。
Sub gyaku()
Dim i As Long
Dim j As Long
Dim k As Long
Dim r As Range
Dim tenkirow As Long
Dim tenkicol As Long
Set r = Selection
For i = r.Resize(1).Row To r.Resize(1).Row + r.Rows.Count - 1
k = k + 1
For j = r.Columns.Count + r.Resize(, 1).Column - 1 To r.Resize(, 1).Column Step -1
tenkirow = k
tenkicol = r.Columns.Count + r.Resize(, 1).Column - j
Worksheets(2).Cells(tenkirow, tenkicol).Value = Worksheets(1).Cells(i, j).Value
Next j
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) ログインIDの一発入力? 5 2023/07/07 12:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
エクセルでの検索ボックスの作...
-
【EXCEL】先週の月曜日の日付を...
-
アポストロフィーの一括挿入 ...
-
フォントの色を指定して削除出...
-
シート保護とグループ化機能を...
-
Excel ハイパーリンクのURLを別...
-
Excelで、図形内の文字をセルに...
-
excelで セルの移動時に...
-
マクロを実行すると画像がズレ...
-
クリックすると文章が表示され...
-
空白セルを空セルに置き換える...
-
VBA 見つからなかった時の処理
-
現在のセルの位置を返す関数は...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excelで挿入した図をセルの中央...
-
フォントの色を指定して削除出...
-
VBA 見つからなかった時の処理
-
エクセルでの検索ボックスの作...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
エクセルでPDFリンクを大量...
-
【EXCEL】先週の月曜日の日付を...
-
EXCELのセルや文字色の反映
-
セルがクリックされた回数をカ...
おすすめ情報