テキストBOX1~3にある文字と一致する文字を20列目から探すという式を書きました。
これはこれでできたのですが。。。。
検索範囲を20列目と21列目にしたいのですがどのように書けば良いのかわからなくなってしまい
orで繋げてみたりまるっと21列目のコードも追加してみたりしたのですが、、、エラーが出るばかりでどうすればよいのかわからなくなってしまいました。
どなたか、、、、お優しい方。教えていただけないでしょうか。よろしくお願い致します。
For i = LBound(myData) To UBound(myData)
If myData(i, 20) Like "*" & TextBox1.Value & "*" And myData(i, 20) Like "*" & TextBox2.Value & "*" And myData(i, 20) Like "*" & TextBox3.Value & "*" And myData(i, 11) = ComboBox1.Value Then
No.2ベストアンサー
- 回答日時:
こんにちは
>エラーが出るばかりでどうすればよいのかわからなく~~
ご提示のコードが断片的なので、他との整合性は分かりませんけれど、部分で見る限り文法的な問題はないと思われます。
ですので、ご提示のものは、20列目で上手くできているコードであろうと推測しました。
>検索範囲を20列目と21列目にしたいのですが~~
方法はいろいろあると思います。
20列目と21列目をループさせたり、ベタで両方書いても宜しいかと思います。
一方で、内容が単純に含まれているか否かだけの判断のようですので、両方をまとめて含むか/否かの判定をしても良さそうに感じましたので・・・
tmp = myData(i, 20) & myData(i, 21)
If tmp Like "*" & TextBox1.Value & "*" And _
tmp Like "*" & TextBox2.Value & "*" And _
tmp Like "*" & TextBox3.Value & "*" And _
myData(i, 11) = ComboBox1.Value Then
のような判断でも事足りそうな気がします。
(実際になさりたいことの詳細がわからないので、このような条件で良いのかどうかは正確には分かりませんけれど)
あるいは、「含む」の判断をInstr関数で代用して、
If InStr(tmp, TextBox1.Value) And InStr(tmp, TextBox2.Value) And ~~
などとすることで、もう少しコンパクトに記述できるかも知れませんね。
tmp = myData(i, 20) & myData(i, 21)
でまとめれば良いんですね!!
バッチリできました!!!
何ということでしょう!!!感激です。
No.1
- 回答日時:
こんにちは。
直接の回答ではないのですが、
質問内容が、全てを説明されていない様で、幾つかわからないのですが。
①検索範囲を20列目と21列目の両方で全て含まれている?
それとも、それぞれで一致を確認? 片方だけ、又は両方?
>検索範囲を20列目と21列目
myData(i, 20) これが、20列目を指されているのでしょうか?
>And myData(i, 11) = ComboBox1.Value
これが何をされているのか、説明にないですね。
myData(i, 20)と、TextBox1、TextBox2、TextBox3の関係は何かあるの
でしょうか?
可能かは分かりませんが、TextBoxの語句が全て含まれていて、順番が確定
しているなら下記の様にはできないのでしょうか?
(順番として、最初にTextBox1、次にTextBox2、最後にTextBox3なら。)
myData(i, 20) Like "*" & TextBox1 & "*" & TextBox2 & "*" & TextBox3 & "*"
同じ様に2行に書いた方が良い様な気がしますが、①がどちらかによって
書き方も変わってくるかと。
補足をしてお礼を忘れてしまっていました。
なんて失礼な・・・・
ありがとうございます!!!
こんなに説明が不足しているのにご回答いただき嬉しいです。
まだまだ勉強中なのでがんばります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
(Excel VBA)and,orについて
Excel(エクセル)
-
VBA IF文でORを使ったとき後ろの条件が実行されない
Visual Basic(VBA)
-
-
4
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
5
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
6
エクセルマクロでシート名を条件にする方法
Excel(エクセル)
-
7
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
8
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
9
エクセルへのデータの貼付時に書式が反映されない!
Visual Basic(VBA)
-
10
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
11
可視セルを対象としたcountifができるでしょうか?
その他(Microsoft Office)
-
12
コマンドボタンのEnterイベント後に、フォーカスを移動したい。
その他(Microsoft Office)
-
13
worksheet_changeがループする
PowerPoint(パワーポイント)
-
14
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
15
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
16
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
-
17
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
18
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
VBA 数式を最終行までコピー
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
実行時エラー'-2147467259(8000...
-
mailstorehomeのエクスポートで...
-
ActiveCell.FormulaR1C1の変数
-
SQLでエラーです。
-
インポート時のエラー「データ...
-
IISの仮想ディレクトリ作成がわ...
-
【VBAエラー】Nextに対するFor...
-
pythonのopenpyxlについて
-
マクロの「SaveAs」でエラーが...
-
HTMLソースが表示のページのも...
-
ASP.NETのサーバー移行に伴うエ...
-
ApplicationとWorksheetFunctio...
-
フランスの生年月日(jj/mm/aaaa)
-
実行時エラー´5854´ 文字列型パ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
エクセル関数を教えてください
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
【VBA】ワークブックを開く時に...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
マクロの「SaveAs」でエラーが...
-
WindowsでのPythonの挙動について
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
エクセルVBA 「On Error GoTo...
-
Filter関数を用いた結果、何も...
-
ACCESSで値を代入できないとは?
おすすめ情報
説明が下手くそで申し訳ないです。
TextBox1And2And3のワードを含み、かつComboBox1で指定した条件を満たす行を探す。
ワードの検索範囲は20と21列目。をやりたいです!
①検索範囲を20列目と21列目の両方で全て含まれている?それとも、それぞれで一致を確認? 片方だけ、又は両方?
→TextBoxに入っているワードが20行目もしくは21行目に入っているかを確認したいです。
>検索範囲を20列目と21列目 myData(i, 20) これが、20列目を指されているのでしょうか?
→はい。仰るとおりです。
>And myData(i, 11) = ComboBox1.Value
これが何をされているのか、説明にないですね。
→何も記載しておらず・・・申し訳ありません。
男性・女性・不明をプルダウン設定しており、11行目で一致するものを検索するようにしております。
ご確認、コメントありがとうございます!
myData(i, 20) Like "*" & TextBox1 & "*" & TextBox2 & "*" & TextBox3 & "*"
のようにまとめて書くこともできるんですね・・・ちょっと試してみます。
ご質問頂いた内容を補足に追記してみました。
何故か画像の添付ができなくて・・・・キャプチャを載せられませんでした。
2行書いてうまくいくかもう一度試してみます!!ありがとうございます♪