-PR-
解決済み

エクセルのデータ入れ替え ?

  • 困ってます
  • 質問No.74186
  • 閲覧数1008
  • ありがとう数10
  • 気になる数1
  • 回答数6
  • コメント数0

お礼率 42% (281/654)

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

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

入れ替えが多いもので簡単にしたいです・・・
通報する
  • 回答数6
  • 気になる1
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

選択した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件)

  • 回答No.1
レベル12

ベストアンサー率 52% (206/389)

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

お礼率 42% (281/654)

説明が不足していました。
各々のデータは共通なデータではなく、まったく個別のデータです。
たとえば名前の入れ替えみたいなものです。
こちらの解釈の意味が違っていましたら御免なさい。
投稿日時 - 2001-05-10 17:49:08
お礼コメント
hirocyan

お礼率 42% (281/654)

アドバイス有難う御座います。
投稿日時 - 2001-05-11 10:49:13


  • 回答No.2
レベル8

ベストアンサー率 32% (18/56)

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

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

いずれにしても、地道な作業になりそうですが.....(^^;
何か計算式などで良い方法はないですかね?
お礼コメント
hirocyan

お礼率 42% (281/654)

アドバイス有難う御座います。
投稿日時 - 2001-05-11 10:48:19
  • 回答No.3
レベル12

ベストアンサー率 27% (162/600)

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

ツール→並び替え

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

お礼率 42% (281/654)

アドバイス有難う御座います。
投稿日時 - 2001-05-11 10:47:36
  • 回答No.5
レベル6

ベストアンサー率 33% (5/15)

AセルとBセルの内容をスワップするということですよね。
エクセルの基本機能ではこれは無理と思われます。
ただし、マクロを組めば、可能なことは可能です。

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

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

お礼率 42% (281/654)

マクロの組み方が判りません。
アドバイス有難う御座いました。
投稿日時 - 2001-05-11 10:46:30
  • 回答No.6
レベル13

ベストアンサー率 68% (791/1163)

#4を少し修正します。
>(標準モジュールの挿入:ツール→マクロ→マクロ→編集でVBE画面に移動し、挿入→標準モジュール)
と書いてしまいましたが、初期状態ではこんな操作はできませんでした。
メニューからツール→マクロ→Visual Basic Editor でVBE画面を起動して下さい。
お礼コメント
hirocyan

お礼率 42% (281/654)

マクロを組み込みました。
操作性も抜群で、早速利用させて頂きます。
有難う御座いました。
投稿日時 - 2001-05-11 10:44:53
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ