
いつもお世話になっております。
ある列(例としてはA列)に「Rose」というデータが入っていたり無かったりしています。(他の列には何かしらのデータが入っています。)
A列に何も入っていなかった場合、別のマクロ(例として「test2」)へ移行するように組みたいのですが、空白の認識が上手くいきません。ご教授お願いいたします。
Sub test1()
r = Range("65536").End(xlUp).Row
For i = 2 To r
If InStr("Rose", Cells(nLine, 1)) = "" Then
Call test2
Exit Sub
End If
Next
End Sub
環境はwindowsXP Excel2003です。
よろしくお願いいたします。
No.5
- 回答日時:
>「Rose」というデータが入っていたり無かったりしています
>A列に何も入っていなかった場合
何も入ってなかった場合を検索する訳ですから、
Roseという文字列は何の関係もありませんね。
で、提示のコードのInstr関数は意味がないということになります。
そのInstr関数の使い方も間違ってますが、それを置いといて、
Instr関数は、「含む」かどうかを検索する関数です。
例えば、aaaRose、aaaRoseBBB、RoseXXXなど
空白かどうかを判断するなら、単純に
If Cells(i, "A").Value = "" Then
で十分です。
そしてまた、Roseを「含ない」ことを判断する場合は
If InStr(Cells(i, "A").Value, "Rose") = 0 Then
とか、
If Not Cells(i, "A").Value Like "*Rose*" Then
などとすればいいでしょう。
以上です。
ご回答ありがとうございました。
シンプルなコードのご提示ありがとうございます。
自分のコードがまだまだ無駄が多いと痛感でございます。
No.3
- 回答日時:
>Cells(nLine, 1))
nLineはこの行実行以前に定義して行番号の数値が入って居ないとおかしい。
なぜ突然nLineか?何かをコピーしたままか?
ーー
>InStr("Rose", Cells(nLine, 1)) = ""
Instr関数は文字列に該当が無ければ0を返す。
だからこの使い方はおかしい。
ーー
空白か?と聞くのにInstr関数は使わない。
ーーー
表題は
>空白なら別のマクロへ移動したい
だがそのことだけなら
Call test2
や
test2
でよいので、聞くまでもなく実現している。
後述するが空白処理後返ってこなくてもよいのか?
ーー
>Range("65536").End(xlUp).Row
の65536はどの列かを普通指定する。前列最終行が同じとは限らない。
Range("A65536").End(xlUp).Row
Sub test01()
r = Worksheets("Sheet1").Range("65536").End(xlUp).Row
MsgBox r
End Sub
はエラーになる。
質問のコードは、1度も実行もしてみないで質問したのか。
---
初めての空白セルが現れると、test2を処理して、終わっちゃうがそれでよいのか?普通は最終行まで何かを処理するのでは。
質問例では空白で無ければ、何もしてないので、これでよいのかな。
2番目のセルのRoseも見つけなければならないと思うから、何か変だ。
ーーー
もう少し解説書・WEBのコード例などの例を日ごろから勉強しないと、というレベルだと思う。
深夜にもかかわらず、ご回答ありがとうございました。
実際はものすごく長いコードの一部分だったので、その部分を引っ張ってきたのですが…
解りやすい質問の仕方は難しいです…が、これにくじけずに精進いたします。
No.2
- 回答日時:
上記回答の訂正です。
【誤】
If InStr("Rose", Cells(nLine, 1)) = "" Then の行を
If Cells(r, 1).value = "" or IsNull(Cells(r, 1).value) Then に変えてください。
【正】
If InStr("Rose", Cells(nLine, 1)) = "" Then の行を
If Cells(i, 1).value = "" or IsNull(Cells(i, 1).value) Then に変えてください。
No.1
- 回答日時:
>A列に何も入っていなかった場合、別のマクロ(例として「test2」)へ移行するように組みたいのですが、空白の認識が上手くいきません。
上記を満たせば良いのであれば
If InStr("Rose", Cells(nLine, 1)) = "" Then の行を
If Cells(r, 1).value = "" or IsNull(Cells(r, 1).value) Then に変えてください。
→ nLineという変数は添付されたコードのどこにも出現しませんが??
→ InStr関数は、ある文字列に対して指定した文字列が出現する位置を取得する関数なので、戻り値が""になることはあり得ないと思います。
関数については[URL:http://officetanaka.net/excel/vba/function/InStr …]が参考になるかと思います。
<引用>
InStr関数は、引数string1で指定した文字列の中から引数string2で指定した文字列を検索して、見つかった位置を返します。たとえば、InStr("ABCDEF", "DE")は4を返します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) VBA 罫線について B列3行目から21行毎にデータがはいります。 データがはいったらデータが入った 6 2022/11/15 17:22
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
-
4
マクロについて質問です 範囲内のセルが空白か調べるにはどのようなプログラムになるんでしょうか? セル
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002
Visual Basic(VBA)
-
8
VBAで文字列を数値に変換したい
Excel(エクセル)
-
9
エクセルマクロで特定の範囲が空白という条件
Excel(エクセル)
-
10
未記入がある場合はマクロを実行させない方法
その他(Microsoft Office)
-
11
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
12
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
13
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
14
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
15
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
16
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
17
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
18
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
19
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
20
エクセル マクロ 最終列までを全選択
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
IIF関数の使い方
-
データグリッドビューの一番最...
-
vba 2つの条件が一致したら...
-
マクロ 最終列をコピーして最終...
-
VBAで、離れた複数の列に対して...
-
rowsとcolsの意味
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
【Excel VBA】カンマと改行コー...
-
Changeイベントでの複数セルの...
-
Cellsのかっこの中はどっちが行...
-
targetをA列のセルに限定するに...
-
【Excel VBA】 B列に特定の文字...
-
EXCEL VBAで教えてください。
-
URLのリンク切れをマクロを使っ...
-
Application.Max
-
VBAでのリスト不一致抽出について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
【VBA】2つのシートの値を比較...
-
Changeイベントでの複数セルの...
-
VBAで指定範囲内の空白セルを左...
-
【Excel VBA】 B列に特定の文字...
-
データグリッドビューの一番最...
-
VBAで、特定の文字より後を削除...
-
文字列の結合を空白行まで実行
-
VBAを使って検索したセルをコピ...
-
二つのリストを比べて部分一致...
-
マクロについて。S列の途中から...
-
マクロ 最終列をコピーして最終...
おすすめ情報