VBAサンプル集
指定文字、指定数式でジャンプ機能(Union)

ExcelマクロVBAの実用サンプル、エクセルVBA集と解説
最終更新日:2020-04-04

指定文字、指定数式でジャンプ機能(Union)


ジャンプ機能がありますが、ジャンプのセル選択では特定の文字や数式は指定できません。
ある文字を含むセルや、ある関数を含むセルを一括で選択状態にするのは、ジャプ機能では出来ません。


そこで、マクロVBAでこれらができるようにして見ました。
何に使うかは・・・ご自由に!

ジャンプのセル選択以外でセルを選択するには

ジャンプのセル選択では特定の文字や数式は指定できません。

マクロ VBA サンプル画像

そこで、「検索」を使います。

マクロ VBA サンプル画像

「検索する文字列」を指定して「すべて検索」

マクロ VBA サンプル画像

検索結果の一覧の一番上が選択された状態になります。
もし、選択状態になっていない場合は、どの行でも良いので選択します。


Ctrl + A

VBA マクロ 特定文字へのジャンプ

指定文字、指定数式でジャンプ機能のVBA

Sub ジャンプ機能()
  Dim myRange As Range
  Dim selRange As Range
  Dim strFind As String
  
  strFind = InputBox("対象ブック:" & ActiveWorkbook.Name & vbLf & _
            "対象シート:" & ActiveWorkbook.ActiveSheet.Name & vbLf & vbLf & _
            "計算式の場合は、先頭に=を付けて下さい。", _
            "指定文字列検索&選択")
  If strFind = "" Then
    Exit Sub
  End If
  
  For Each myRange In ActiveSheet.UsedRange
    If Left(strFind, 1) = "=" Then
      If InStr(UCase(myRange.Formula), UCase(Mid(strFind, 2))) > 0 Then
        If selRange Is Nothing Then
          Set selRange = myRange
        Else
          Set selRange = Union(selRange, myRange)
        End If
      End If
    Else
      If InStr(UCase(myRange), UCase(strFind)) > 0 Then
        If selRange Is Nothing Then
          Set selRange = myRange
        Else
          Set selRange = Union(selRange, myRange)
        End If
      End If
    End If
  Next
  If selRange Is Nothing Then
    MsgBox ("該当セルは存在しませんでした。")
  Else
    selRange.Select
  End If
End Sub



指定文字、指定数式でジャンプ機能の解説

InputBox関数

InputBox関数は、文字列の入力を求める関数です。
InputBox関数は、ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します。InputBox関数 構文 InputBox(prompt[,title][,default][,xpos][,ypos] [,helpfile,
現在のブック、シートを表示して、入力を求めるようにしました。
対象は現在のブック、シートになるので、
このマクロのあるブック以外でも処理可能です。
計算式を検索する場合は、先頭に「=」をつけて、「=IF」のように指定します。

ActiveSheet.UsedRange

UsedRangeは、現在のシートで使用されているセル範囲になります。
・最終行取得の基本:手動ではCtrl + ↑、VBAではCells(1, 1).End(xlDown) ・最終列の取得 ・特殊な表の場合 ・CurrentRegion ・SpecialCells(xlCellTypeLastCell) ・UsedRange ・Findメソッド ・サイト内関連ページ
For Eachで、この中から、1つづつセルを取り出しています。

InStr関数

InStr(文字列, 検索文字)
InStr関数は、検索文字で文字列を検索しその位置を返します。
・InStr関数 ・InStrB関数 ・InStr関数の使用例 ・InStr関数の応用例1 ・InStr関数の応用例2 ・InStr関数の応用例3 ・InStr関数の練習問題 ・ ・
存在しない場合は、0が返ります。

UCase関数

UCase関数は、英文字を大文字に変換します。
・UCase関数 ・UCase$ ・UCase関数の使用例
従って、「A」と「a」は同じとみなします。
大文字小文字を区別する場合は、このUCaseを削除すれば良いです。

Unionメソッド

Unionメソッドは、2つのセル範囲を1つのセル範囲に結合します。
・Unionメソッド ・Areasプロパティ ・Unionメソッドで連結した結果のRangeオブジェクトの状態について ・Unionメソッドの使用例 ・Unionメソッドの実践例

指定文字、指定数式でジャンプ機能の最後に

どのような場面で、どのように使うか・・・
特に考えずに書いてみました。
そんなに多くの利用場面はないと思いますが、
ジャンプを使って、あれっ、出来ない、と思った事がある人や、
検索機能では操作が面倒だと思った人等々、
そのうち、使用する機会が、、、あるかもしれない。



同じテーマ「マクロVBAサンプル集」の記事

ユーザー定義関数でハイパーリンクのURLを取得(Hyperlink)
カラーのコード取得(256RGB⇔16進変換)
時刻になったら音を鳴らして知らせる(OnTime)
指定文字、指定数式でジャンプ機能(Union)
「値の貼り付け」をショートカットに登録(OnKey)
「セルの結合」をショートカットに登録(OnKey)
半角カナのみ全角カナに変換する
計算式の元となる数値定数を消去する(Precedents)
Beep音で音楽(Beep,Sleep)
日付の検索(配列の使用)
ストップウォッチ(1/100秒)(Timer)


新着記事NEW ・・・新着記事一覧を見る

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ