現在、下記のようなコードを書いています。データテーブルの縦と横の検索値を探してその列数と行数を返したいのですが、下記の Sub検索1 と Sub検索2 を1つのSubで実行させるにはどうしたらよいのでしょうか?よろしくお願い致します。
-----------------------------------------
Sub 検索1()
Worksheets("Data").Activate
Dim x As Integer
For x = 3 To 22
If Cells(2, x).Value >= 12 Then
MsgBox x
Exit Sub
End If
Next
MsgBox "見つかりません"
End Sub
---------------------------------------------
Sub 検索2()
Worksheets("Data").Activate
Dim i As Integer
For i = 4 To 42
If Cells(i, 2).Value = "A" Then
MsgBox i
Exit Sub
End If
Next
MsgBox "見つかりません"
End Sub
No.4ベストアンサー
- 回答日時:
Worksheets("Data").Activate
Dim x As Integer
Dim y as Integer
For x = 3 To 22
If Cells(2, x).Value >= 12 Then
MsgBox x
For y = 4 To 42
If Cells(y, 2).Value = "A" Then
MsgBox y
Exit Sub
End If
Next
End If
Next
MsgBox "見つかりません"
End Sub
これだと、縦位置2の行で、まず横方向で12を探し見つかったら、その位置をメッセージ表示します。
で、横位置2の列を、縦方向に検索し見つかったら、メッセージ表示をし、関数を抜けます。見つからなければ”見つかりません”のメッセージを表示します。
こんな所で如何でしょう?
PAPA0472さん!ありがとうございます。
OKです。とりあえずうまくいきましたので、あとで構文の内容を勉強してみます。助かりました。
No.3
- 回答日時:
あっは(^^;
コーディング間違ってましたね。ごめんなさい。
Worksheets("Data").Activate
Dim x As Integer
Dim y as Integer
For y = 4 To 42
For x = 3 To 22
If Cells(y, x).Value >= 12 Then
MsgBox x
Exit Sub
End If
If Cells(y, x).Value = "A" Then
MsgBox y
Exit Sub
End If
Next
Next
MsgBox "見つかりません"
End Sub
で大丈夫です。
この回答への補足
PAPA0427さん!回答有難うございます。
ただ、すまみせん。私の説明が悪かったようです。実はデータテーブルの横に対応する検索値Aと縦の項目に対応する検索値Bがありまして(._.;) 最初に書いておくべきでしたね。
まずSub検索1は、データテーブルのC2からV2までの横の項目と検索値A(ここでは"12"です)を照合させてます。その結果、その列数をとってきてます。
次にSub検索2で、データテーブルのB4からB42までの縦の項目と検索値B(ここでは"A"です)を照合させています。その結果、その行数をとってきてます。
まだ書いていないのですが、この後、Sub検索1とSub検索2で得た行と列のセルの値をもってこようと考えています。
度々申し訳ございません。宜しくお願い致します。
No.2
- 回答日時:
>Sub検索1 と Sub検索2 を1つのSubで実行させるには
ここの所が良くわからないのですが、こうしたらどうでしょうか。
Option Explicit
Dim x As Integer
Dim i As Integer
Sub test()
Call 検索1
Call 検索2
MsgBox ("x= " & x)
MsgBox ("i= " & i)
End Sub
Sub 検索1()
Worksheets("Sheet1").Activate
For x = 3 To 22
If Cells(2, x).Value >= 12 Then
Exit Sub
End If
Next
MsgBox "見つかりません"
End Sub
Sub 検索2()
Worksheets("Sheet1").Activate
For i = 4 To 42
If Cells(i, 2).Value = "A" Then
Exit Sub
End If
Next
MsgBox "見つかりません"
End Sub
この回答への補足
ki-aaaさん!早速ありがとうございます。
説明不足ですみませんでした。
Sub Test()で2つのSubを実行させるということですね・・・これでも構いませんが、試してみたら、見つからなかった場合、MsgBox"見つかりません"の後に最終行又は列の次の値を返してきます。なぜでしょう?
No.1
- 回答日時:
両方まとめれば出来ますよ。
Worksheets("Data").Activate
Dim x As Integer
Dim y as Integer
For y = 4 To 42
For x = 3 To 22
If Cells(y, x).Value >= 12 Then
MsgBox x
Exit Sub
End If
If Cells(i, 2).Value = "A" Then
MsgBox i
Exit Sub
End If
Next
Next
MsgBox "見つかりません"
End Sub
もしくは、
Sub 検索
If 検索1 = False then
if 検索2 = False then
Exit Sub
End If
End If
End Sub
Function 検索1() As Blooean
検索1 = False
Worksheets("Data").Activate
Dim x As Integer
For x = 3 To 22
If Cells(2, x).Value >= 12 Then
MsgBox x
検索1 = True
Exit Function
End If
Next
MsgBox "見つかりません"
End Function
---------------------------------------------
Function 検索2() As Blooean
検索2 = False
Worksheets("Data").Activate
Dim i As Integer
For i = 4 To 42
If Cells(i, 2).Value = "A" Then
MsgBox i
検索2 = True
Exit Function
End If
Next
MsgBox "見つかりません"
End Function
でしょうかね。
この回答への補足
PAPA0427さん!さっそくありがとうございます。
すみません!エラーになりました。
デバックしたら「If Cells(i, 2).Value = "A" Then」にマーカーがついて、アプリケーション定義またはオブジェクト定義のエラーになります。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wors赤い波線の検索
-
エクセルの検索窓で毎回検索場...
-
Wordで検索が一時停止する
-
メモ帳で検索ができない windows10
-
サンダーバードで本文検索できない
-
エクセルでctrl+Fで検索できる...
-
iPhoneのメール差出人検索
-
VBAの質問になります Userform内で
-
Excelでの検索について
-
使い勝手も有ると思いますが ...
-
「RunSQL」と「Execute」の違い
-
Excelで、セルにメモが入力され...
-
Microsoft エクセル リボンの表...
-
ツールバーが端にいってしまい...
-
「 メモ帳(.txt)を一括で検索し...
-
Google Chromeの検索バーで、い...
-
powerDVD18で再生速度を変えたい
-
ワードの数式エディタで・・・
-
エクスプローラの表示を2分割...
-
PCMAXについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの検索窓で毎回検索場...
-
VBAの質問になります Userform内で
-
編集した画像(JPEG)の保存場所...
-
Evernote 検索すると「権限が失...
-
wors赤い波線の検索
-
Excelでの検索について
-
Wordで検索が一時停止する
-
検索エンジン反映遅い
-
エクセルでctrl+Fで検索できる...
-
VLOOKUP関数で空白を選択すると...
-
Wordマクロの検索で、、、
-
Thunderbirdの検索結果をグラフ...
-
サンダーバードで本文検索できない
-
メモ帳で検索ができない windows10
-
右クリックメニューの順番変更...
-
Windows2000をXP風のスキンにし...
-
エクセルマクロの質問
-
減尐とはなに?
-
ワードのクリップアートが表示...
-
TechNet での検索方法を教えて...
おすすめ情報