エクセル VBAで離れたセルの値を交換する

隣接したセルの値を交換するのはマウスとキー操作の組み合わせで可能ですが、これが

離れたセル

の場合、不可能です。関数にもありません。


なので、VBAを利用してみます。

エクセル VBA(Visual Basic for Applications) → Officeアプリケーションソフトの拡張機能

準備

「開発タブ」を追加する

1 オプションをクリック
Excel VBA 001.png
2 リボンのユーザー設定をクリック
Excel VBA 002.png
3 開発にチェックを入れる
Excel VBA 003.png

これで「開発」タブが追加されました
Excel VBA 004.png

では、ちょっと覗いてみましょう。

★VBEを起動する
 → VBE (Visual Basic Editor) とは、Excelに搭載したVBA用のエディターのことです

開発タブをクリックすると、Visual basic というコマンドが表示されます。

Excel VBA 005.png

Visual Basic Editorを起動

Excel VBA 006.png

★標準モジュールの追加
 →標準モジュールとは、プログラムのコードを記述する「用紙」です

Excel VBA 007.png
Thisworkbook → 挿入 → 標準モジュール と辿って「標準モジュール」をクリック

標準モジュールが挿入されたら、以下のコードをコピー&ペーストします

Public Sub swap()
Dim w, x As Range, y As Range
If Selection.Areas.Count <> 2 Then Exit Sub
Set x = Selection.Areas(1)
Set y = Selection.Areas(2)
w = x.Formula
x.Formula = y.Formula
y.Formula = w
End Sub

Excel VBA 008.png

VBEの画面を終了させます。

実行してみます


入れ替えたいセルを選択(Ctrlキーを使う)→ マクロを呼び出し実行する

という流れです。




この記事へのコメント