プロが教える店舗&オフィスのセキュリティ対策術

エクセルの文字データーですが、同じシート内にある文字データを簡単に「入れ替える」方法がありましたら教えて下さい。
違うセルにある文字データを「入れ替える」という作業をしたいのです。

現在は、その操作を知らないので、
 最初に移動したいデータをどこかの空セルに移動、空いたところに移したいデータを移動 最初に移動したデータを後に空いたセルに再度移動しています。

入れ替えが多いもので簡単にしたいです・・・

A 回答 (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
    • good
    • 2

#4を少し修正します。


>(標準モジュールの挿入:ツール→マクロ→マクロ→編集でVBE画面に移動し、挿入→標準モジュール)
と書いてしまいましたが、初期状態ではこんな操作はできませんでした。
メニューからツール→マクロ→Visual Basic Editor でVBE画面を起動して下さい。
    • good
    • 0
この回答へのお礼

マクロを組み込みました。
操作性も抜群で、早速利用させて頂きます。
有難う御座いました。

お礼日時:2001/05/11 10:44

AセルとBセルの内容をスワップするということですよね。


エクセルの基本機能ではこれは無理と思われます。
ただし、マクロを組めば、可能なことは可能です。

ちなみに以下のような内容になると思われます。

Aセルに移動し、マクロを起動。
1.起動時点のセル位置とセル内容を変数に保存。
2.Bセルを選択するようメッセージを表示。
Bセルに移動し、マクロを再開。
3.Bセルのセル内容を保存し、1.で保存したAセルのセル内容を貼り付け。
4.Aセルのセル位置を参照して、Bセルの内容を貼り付け。
    • good
    • 0
この回答へのお礼

マクロの組み方が判りません。
アドバイス有難う御座いました。

お礼日時:2001/05/11 10:46

行単位で、並び替え方にルールがあるなら、データ範囲をドラッグした痕、



ツール→並び替え

で可能かと思います。
「標準」では、昇順と降順しかないですが、
ツール→オプション で、「ユーザー設定リスト」を選んで、順番をいれると、オリジナルの並び替えができると思います。
    • good
    • 1
この回答へのお礼

アドバイス有難う御座います。

お礼日時:2001/05/11 10:47

列方向とか行方向とかに限定されるのであれば、


1.変更したい列・行を別の場所にコピーする
2.変更したいセルに =xx(セル番号) と入力し、文字データを取得する
3.できあがった列・行を「値のみ」で貼り付ける。
4.「1」でつくったデータを消す。

というのではいかがでしょう。

いずれにしても、地道な作業になりそうですが.....(^^;
何か計算式などで良い方法はないですかね?
    • good
    • 0
この回答へのお礼

アドバイス有難う御座います。

お礼日時:2001/05/11 10:48

hirocyanさんこんにちは


文字列を入れ替えるということでしたら、メニューバーの[編集]>[置換]として、検索する文字列と置換後の文字列を記入した後、[すべて置換]とすれば、一括で入れ替えられると思います。
データの順番を入れ替えるということでしたら、[データ]>[並べ替え]という機能があります。ヘルプで「並べ替え」を検索してください。

この回答への補足

説明が不足していました。
各々のデータは共通なデータではなく、まったく個別のデータです。
たとえば名前の入れ替えみたいなものです。
こちらの解釈の意味が違っていましたら御免なさい。

補足日時:2001/05/10 17:49
    • good
    • 1
この回答へのお礼

アドバイス有難う御座います。

お礼日時:2001/05/11 10:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!