こんにちは
都内でNWエンジニアをしているものです。
VBA全くの初心者ですが、今まで自分で調べてきて
欲しい情報がなかなかえられていない状態なので、
皆様からのヒントを頂きたく投稿させて頂きました。
内容を下記いたします。
【概要】
・Excelにて10以上のシートに渡ってIPアドレス(数字)を管理しているブックがあります。
・IPアドレスは1~4オクテット各別々のセルに記載されています。
(※例:画像「Ex1」をご参照ください※)
【やりたいこと】
・既存のIP管理ブックに「検索」シートを挿入し、その中に「検索」ボタンを1つ作成します。
・VBAにて検索フォームを作成し、
ユーザーフォーム中にテキストボックスを4つ、コマンドボタンを1つ作成します。
・シート内に作成した「検索」ボタンを押すと、「検索」フォームがポップアップする
ように「検索」ボタンにマクロを登録します。
(※ここまではなんとかできました※)
※以下の部分がどのようにしたらよいのか困っています※
・ポップアップされてきたユーザーフォーム中の
各4つのテキストボックス中にIPの数字を入力した上で、
ユーザーフォーム中のコマンドボタンを押すと検索を開始し4つのテキストボックス中の
数字に全て合致したセルまたは行へシートを跨いで移動する。
ということを行いたいのです。
どのような構文が必要になってくるのかが
まったく見えていないのが現状です。
何卒皆様のご助力を頂きたくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
合致したセルがあったとしてどうしたいのでしょうか。
そのセルの内容を修正したいとかであれば、いったんマクロを終了して
ユーザーフォームを閉じる必要があるので、使いやすいとは思えないのですが
とりあえず、考え方です。
Private Sub CommandButton1_Click()
For i = 2 To Worksheets.Count
For j = 2 To Worksheets(i).UsedRange.Rows.Count
If Worksheets(i).Range("B" & j).Text = TextBox1.Value And _
Worksheets(i).Range("C" & j).Text = TextBox2.Value And _
Worksheets(i).Range("D" & j).Text = TextBox3.Value And _
Worksheets(i).Range("E" & j).Text = TextBox4.Value Then
MsgBox i & "番目のシートの" & j & "行目に存在します。"
Exit Sub
End If
Next
Next
MsgBox "存在しませんでした"
End Sub
最初の For i=2 To で2番目のシートから最後のシートまでの繰り返し
次の For j=2 To でそのシートの2行目から最後の行までの繰り返し
If文で B列、C列、D列、E列とそれぞれのテキストボックスの文字が同じであれば
メッセージを出して終了です。
アドバイスですが、データのシートを
区分け IP マスク とひとつのシートにまとめてしまったほうが使いやすいはずです。
区分けごとに別シートに抽出する必要があれば
もうひとつ抽出のシートを準備して
A1セルに 区分けする 内容 をいれたら、条件にあったデータがそのシートに表示される
仕組みを考えます。
シートは2枚ですみます。検索や移動も簡単です。
No.1
- 回答日時:
>数字に全て合致したセルまたは行
この検索について
4つのデータの実例と複数シートの実例と
それによって、複数のシート上で行うべきことを、(プログラムを離れて)文章で!(箇条書きで)、説明してください。
>または行
セルなら判るが、なぜ「行」が出てくるのですか。
>へシートを跨いで移動する
これは何のこと。移動してどうする?
単に10枚のシートの範囲に、検索範囲を広げるということでは。
10枚のシートはエクセルでの「作業グループ」にして、ある1語句を10シート全部について、1検索で検索できるようだが。
よくあるケース(例えば10枚のシートをすべて探して、該当があれば何かするなら普通のケースと思う)でもなさそうなので。
>見つかった場合にどういうことをするのか
>NWエンジニアといっている割には他人に情況を説明するのが不十分では。
どうもありがとうございます。
説明が足りず申し訳ございません。
エンジニアとしてもまだまだということがわかりました。
それはさておき、
ただやりたいことは、
同じブック中の10シート以上ある中の全シートを検索対象として
・ユーザーフォーム上の4つテキストボックスにそれぞれ数字を入力。
・同ユーザーフォーム中にあるコマンドボタンを押すと、上記で入力した数字4つに
すべて合致するセルを検索する。
・見つかった場合に該当するセルへ移動する。
・見つからない場合はメッセージを返す。
ということですが、まだ足りない点はご指摘頂ければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 指定値をマクロで検索&シート移動 2 2022/04/27 23:29
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
特定の文字を含むシートだけマ...
-
VBA 入力月で該当シートを選択...
-
VBA 存在しないシートを選...
-
Excel VBA 複数行を数の分だけ...
-
別のシートを参照して計算する方法
-
ユーザーフォームに入力したデ...
-
実行時エラー1004「Select メソ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
Excel チェックボックスにチェ...
-
セルのコピーで「オブジェクト...
-
エクセルVBAでダブルクリックを...
-
複数シートに色付きセル(条件つ...
-
重複するidをデータごとにまと...
-
一括印刷マクロ シート名を数字...
-
VBA 最終行まで数式をコピーする
-
Excel マクロについての相談
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報