![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
コピーした範囲を貼り付ける際に、持っているデータの一番最後から貼り付けていく方法を探しています。
VBAの領域でしょうか。。。
例えばセル番地A1からA3には数値の1,2,3がそれぞれ入っている。それをコピーします。そのやりたい方法でA4番地のセルで”貼り付け”をすると3が、A5番地には2が、A6番地には1が貼付られるようにしたいのです。
形式を選択して貼り付け、というメニューの中にもそのような選択肢はありませんでした。
当ジャンル内で"貼付 逆から EXCEL エクセル 逆さま さかさま あべこべ”といったキーワードで検索してもなかったです。
また念のため、”コンピューター [技術者向け] > プログラミング > Visual Basic ”カテゴリもちょっと調べたのですが、なかったので質問させてください。
宜しくお願いします
No.6ベストアンサー
- 回答日時:
こんにちは。
マクロでの解決のようですから、以下のような方法で出来ます。最初にマウスで、コピーする範囲を選択してから、マクロを実行します。ショートカットに取り付けると良いかと思います。
'標準モジュール
Sub ReverseCopy()
'逆さにコピーする
Dim myRng As Range
Dim Dest As Range
Dim i As Long
Dim j As Integer
Dim k As Long
If TypeName(Selection) <> "Range" Then Exit Sub
Set myRng = Selection
Application.DisplayAlerts = False
On Error Resume Next
Set Dest = Application.InputBox("貼り付け先を指定してください", Type:=8)
If Dest Is Nothing Then Exit Sub
On Error GoTo 0
Application.DisplayAlerts = True
Set Dest = Dest.Cells(1)
With myRng
For j = 1 To .Columns.Count
For i = .Rows.Count To 1 Step -1
k = k + 1
Dest(k, j).Value = .Cells(i, j).Value
Next i
k = 0
Next j
End With
End Sub
お礼が遅くなり、誠に申し訳ありません。
コードまでお書き頂き、ありがとうございます。
しかもDialog形式で、任意の所に貼り付けられるだなんて。。。
コメントを書き、自分のものにしてみようと思います。
ありがとうございました。
No.5
- 回答日時:
簡単な方法をひとつ
A B C D E F
1 2 3 4 5(1)
2 3 4 5 6(2)
3 4 5 6 7(3)
4 5 6 7 8(4)
例えば、この様なデータが有ったとしてこれをA列が4→1の順にコピー
できれば良いのですね
F列の最初に1を入力してオートフィルで1づつ加算しますと()内の値になります
そしてコピーしたい所を選択してコピー先にコピーします(A1からF4までを選択)
コピーされたデータを並べ替えしますが、第一キーをF列にすれば出来ませんか?
(F列で降順、範囲の先頭行をデータで並べ替えして下さいね)
何でも関数、マクロ、VBAではなくてこんな方法も有る事を覚えて下さいね
お礼が遅くなり、誠に申し訳ありません。
>何でも関数、マクロ、VBAではなくてこんな方法も有る事
言われる点、よく分かります。
VBAとかでなくても、意外と解決経路ってあるものですよね。
ただ今回は、連番でない場合の逆貼付もありえるので。。。
どちらにせよ、ありがとうございました!
No.4
- 回答日時:
あぅ(^^; 間違えました m(__)m
上記MMULT()の中身が逆でした
誤 =MMULT(A1:A3,C1:F3)
正 =MMULT(C1:F3,A1:A3)です
失礼しました。
shft+ctrl+ENTERすると入力されたセルの中の式は
{=MMULT(C1:F3,A1:A3)} と{}で囲まれたものになります。
必要な数のセルを選択した状態でその中の一番上にだけ入力すれば選択範囲全部におなじ式が入ります。
No.3
- 回答日時:
行列計算で入れ替えるのはいかがでしょうか?
でかくなると面倒なので3つだけで書きます
ずれると見難いかもなので便宜上全角で表記します
A B C D F
----------------
1| 3 0 0 1
2| 8 0 1 0
3| 2 1 0 0
A列の 3、8、2 が逆に並べたいデータだとします
(見やすくするためにB列は空欄にしています)
並べ替えたデータを置く場所を(たとえばH1:H3)選択して
=MMULT(A1:A3,C1:F3)と打ち込み、
shft+ctrl+ENTERで入力します(普通にENTERだけではありません)
並べ替えるデータが4つのときは4×4の、10個ののときは10×10の「単位行列」(の逆並び)を作ればおっけいです。ようは右上から左下への対角線にだけ1が並び、他のところは0がならんだ正方形ということです。
これで数字がその値の大きさ順に並んでなくてもそのままの逆順になると思うのですがお試しください。
お礼が遅くなり、大変申し訳ありません。
MMULT関数、始めて知りました。
行列の積を返す関数、みたいですね。
行列を少し勉強すれば、使いまわせそうです。
ありがとうございます!
No.1
- 回答日時:
貼り付けた後にソートっていう動きではダメでしょうか?
当方、マクロ記憶にてやってみました。
Sub Macro4()
Range("A1:A3").Select
Selection.Copy
Range("A4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A4"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
お礼が遅くなり、大変申し訳ありません。
>Order1:=xlDescending
実際に実行せずの意見で、違っていたら申し訳ないのですが、
上記記述から推測するに、単純に並べ替えるのでしたら、
少し意図と違うかな、と。
1
2
3
4
みたいなケースでしたらいいのでしょうが、場合によっては
1
6
5
2
を
2
5
6
1
と並べ替えたい場合もあるのです。
どちらにせよ、お忙しい中ご回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】フォルダ内にあるPDF...
-
Excelで数値を時間数に変換する...
-
Excelの条件付き書式について
-
Excelシートに画像を貼る時
-
Excelの警告について
-
エクセルまたはGoogleスプレッ...
-
【Excel】版が同じ事を示す番号...
-
GoogleスプレッドシートでA1に...
-
【マクロ】functionプロシージ...
-
エクセルでファイルの最終更新...
-
エクセルの数式バーのフォント...
-
Excelについて
-
EXCELの散布図で日付が1900年に...
-
エクセルの問題です。絶対値の...
-
【マクロ】for nest について ...
-
EXCELで数値が異なった数字を足...
-
セルの数を求めたい
-
Excelの数式について教えてくだ...
-
【マクロ】 IFERROR関数をマク...
-
googleのスプレッドシート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
-
2列に入っているデータを1列...
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルで 自動的に◯や数字を...
-
数字入力後他の文字等が表示さ...
-
Excel 小さくなったスクロール...
-
F9キーについて。
-
【ExcelVBA】ダブルクォーテー...
-
Excelに詳しい方! B列が「日...
-
セルの数を求めたい
-
Excelを無料で使うには? パソ...
-
IFとIFS関数
-
【Excel】別シートから条件に合...
-
EXCELの散布図で日付が1900年に...
-
ある表にフィルターをかけて出...
-
【ExcelVBA】名前を付けて保存→...
-
Excelセルを跨いで合計を出す方法
-
エクセルのツールバーから数値...
おすすめ情報