
以下のようなデータ
A列 B列
192.170.1.1 192.171.1.1
192.171.1.2 192.170.1.2
IPアドレスの第2オクテッドを比較し数値の小さいほうをが左にくるように
VBAでクリック釦を作成したいのですがどのように記述すればよいでしょうか?
釦をクリックすると
A列 B列
192.170.1.1 192.171.1.1
192.170.1.2 192.171.1.2
のように該当のセルがA列・B列入れかえができる。
IPアドレスを取得する関数は
ユーザー関数を使用してsplitn(範囲、第○オクテッド)で
第2オクテッドの数値は取得できます。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
淡々と比較して条件を満たせば書き換えるだけですが。
準備:
オートシェイプとか画像とか使ってシートにボタン絵柄を載せる
右クリックしてマクロの登録で下記のようなのを取り付ける
sub macro1()
dim i as long
dim buf
for i=1 to range("A65536").end(xlUp).row
if val(split(cells(i, "A"), ".")(1)) > val(split(cells(i, "B"), ".")(1)) then
buf = cells(i, "A")
cells(i, "A") = cells(i, "B")
cells(i, "B") = buf
end if
next i
End Sub
No.1
- 回答日時:
エクセルの並べ替えは、セルにそのデータが実際になければ、言葉で「第2オクテッドを比較し」など表現できても、並べ替えできない(しにくい)。
対応したデータを配列などに入れて、その配列データを元にソートアルゴリズムでプログラムする方法は理論的にはあるが、面倒でテストも十分出来ない場合が多いので使うべきではない。エクセルVBAには配列に対するソートはない(例 [配列].Sort Key1、・・・のようなものはない。
ちなみに、VB.NET系では「vb.net 配列 ソート」でググってみよ。
エクセルVBAのSortメソッドは、シートのRangeに対してあるのだ。
ーー
だから新しい列のセルに対応行のA列から第1オクテッドを省いたデータを実際に作り、その列を対象にソートするほか無いと思う。
そのコードはマクロの記録で判るだろう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】hyperlink関数を解除してもハイパーリンクが活きるようにできますか? 3 2023/05/22 11:22
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) substitute関数についての質問です 3 2023/06/21 11:57
- Visual Basic(VBA) 範囲内で最大値を見つけ、その隣のセルの値を返す 2 2022/03/23 19:34
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
データを区切る方法
-
エクセル マクロ 定型ごと抜...
-
【再投稿】【マクロ】元データ...
-
EXCELを最大にて開いた際、特定...
-
Excel2010 特定の値から別シー...
-
エクセルマクロ 検索と抽出
-
ExcelのVBAで複数行削除を行う場合
-
エクセルでA列が「1」から「3...
-
LEFT関数とIF関数の組み合わせ...
-
Excelでの散布図作成について。
-
エクセル 2010 マクロ 指定列(J...
-
VBA 2つのシートのデータ転記
-
エクセル 特定文字列のある列...
-
【エクセル数式】複数行に渡る...
-
エクセルVBA ボタンでリストを...
-
文字結合の「&」の使い方につ...
-
Excelのオートフィルタでデータ...
-
「 複数の各レコードごと 」 ...
-
excel レイアウト用の線を引くには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
LEFT関数とIF関数の組み合わせ...
-
VLOOKUPの列番号の最大は?
-
VBA 指定した列にある日時デー...
-
Excelの行数、列数を増やしたい...
-
エクセルのソートで、数字より...
-
列方向、行方向の定義
-
VBAで別ブックの列を検索し、該...
-
エクセル マクロ 範囲指定で...
-
CSVファイルの「0落ち」にVBA
-
エクセルマクロPrivate Subを複...
-
エクセルで最初の行や列を開け...
-
最近急にVBAの処理速度が遅くな...
-
VBA
-
Excel文字列一括変換
-
エクセルで複数列の検索をマク...
-
エクセル マクロ 範囲の値を上...
-
横軸を日付・時間とするグラフ化
-
Alt+Shift+↑を一括で行うには、...
おすすめ情報