- ベストアンサー
エクセルのデータ入れ替え ?
エクセルの文字データーですが、同じシート内にある文字データを簡単に「入れ替える」方法がありましたら教えて下さい。 違うセルにある文字データを「入れ替える」という作業をしたいのです。 現在は、その操作を知らないので、 最初に移動したいデータをどこかの空セルに移動、空いたところに移したいデータを移動 最初に移動したデータを後に空いたセルに再度移動しています。 入れ替えが多いもので簡単にしたいです・・・
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
選択した2つのセルの値を交換するマクロを作ってみました。 ***マクロの登録*** 1.下のマクロをコピーして標準モジュールに貼り付けて下さい。 (標準モジュールの挿入:ツール→マクロ→マクロ→編集でVBE画面に移動し、挿入→標準モジュール) 2.シートでツール→マクロ→マクロ→(Koukanを選択して)オプションで ショートカットキー(Qにしましょう)を入力してOK→マクロダイアログを閉じます。 うまくいっていれば、Ctrl+Shift+Qキーでこのマクロが機能します。 ***交換処理*** 1.交換する2つのセルの選択方法です。 まず1つ目のセルを選択しCtrlキーを押しながら2つ目のセルを選択して下さい。 マクロ実行時、2つ選択していなかったらメッセージが出ます。 (2つ以外はエラーです) 2.Ctrl+Shift+Qキーで2つのセルの値が交換されます。 3.何回でも繰り返せます。 テスト用のシート等を作って試してください。楽になればいいですね。 Option Explicit Public Sub Koukan() Dim rg As Range '選択セルを調べるワーク変数 Dim rgChange(2) As Range '2つの選択セルを単独セルに分割 Dim rgCot As Long '選択セル数のカウンタ For Each rg In Selection '選択セルを調べる rgCot = rgCot + 1 If rgCot <= 2 Then Set rgChange(rgCot) = rg Else Exit For '長大な範囲を選択していた場合の対応 End If Next If rgCot <> 2 Then '2個選択していなかったら中断 MsgBox "セルの選択方法が間違っています。中断します。" Exit Sub End If 'セル内容の交換 Dim rgWork(2) 'ワーク rgWork(1) = rgChange(1) rgWork(2) = rgChange(2) Range(rgChange(1).Address) = rgWork(2) Range(rgChange(2).Address) = rgWork(1) End Sub
その他の回答 (5)
- nishi6
- ベストアンサー率67% (869/1280)
#4を少し修正します。 >(標準モジュールの挿入:ツール→マクロ→マクロ→編集でVBE画面に移動し、挿入→標準モジュール) と書いてしまいましたが、初期状態ではこんな操作はできませんでした。 メニューからツール→マクロ→Visual Basic Editor でVBE画面を起動して下さい。
- Maruchan
- ベストアンサー率33% (5/15)
AセルとBセルの内容をスワップするということですよね。 エクセルの基本機能ではこれは無理と思われます。 ただし、マクロを組めば、可能なことは可能です。 ちなみに以下のような内容になると思われます。 Aセルに移動し、マクロを起動。 1.起動時点のセル位置とセル内容を変数に保存。 2.Bセルを選択するようメッセージを表示。 Bセルに移動し、マクロを再開。 3.Bセルのセル内容を保存し、1.で保存したAセルのセル内容を貼り付け。 4.Aセルのセル位置を参照して、Bセルの内容を貼り付け。
お礼
マクロの組み方が判りません。 アドバイス有難う御座いました。
- 134
- ベストアンサー率27% (162/600)
行単位で、並び替え方にルールがあるなら、データ範囲をドラッグした痕、 ツール→並び替え で可能かと思います。 「標準」では、昇順と降順しかないですが、 ツール→オプション で、「ユーザー設定リスト」を選んで、順番をいれると、オリジナルの並び替えができると思います。
お礼
アドバイス有難う御座います。
- akki-
- ベストアンサー率32% (18/56)
列方向とか行方向とかに限定されるのであれば、 1.変更したい列・行を別の場所にコピーする 2.変更したいセルに =xx(セル番号) と入力し、文字データを取得する 3.できあがった列・行を「値のみ」で貼り付ける。 4.「1」でつくったデータを消す。 というのではいかがでしょう。 いずれにしても、地道な作業になりそうですが.....(^^; 何か計算式などで良い方法はないですかね?
お礼
アドバイス有難う御座います。
- TTak
- ベストアンサー率52% (206/389)
hirocyanさんこんにちは 文字列を入れ替えるということでしたら、メニューバーの[編集]>[置換]として、検索する文字列と置換後の文字列を記入した後、[すべて置換]とすれば、一括で入れ替えられると思います。 データの順番を入れ替えるということでしたら、[データ]>[並べ替え]という機能があります。ヘルプで「並べ替え」を検索してください。
お礼
アドバイス有難う御座います。
補足
説明が不足していました。 各々のデータは共通なデータではなく、まったく個別のデータです。 たとえば名前の入れ替えみたいなものです。 こちらの解釈の意味が違っていましたら御免なさい。
お礼
マクロを組み込みました。 操作性も抜群で、早速利用させて頂きます。 有難う御座いました。