【お題】NEW演歌

いつもお世話になります

今、カンマ区切りのデータを使って処理するプログラムを作成していますが
データが無いもないときの処理について、正しい処理はどっちなのか疑問になったので
教えてください

ABC = ""
    ・(ABCに入力無し)
tmp = Split(ABC, ",")
For i = 0 To Ubound(tmp)
  (処理)
Next i
この場合、Ubound(tmp)は -1 となり(処理)は実行しませんので
これで良いと思いますが

Webで調べても空の場合 -1 になるということは書いてありませんでした
ちょっと、心配なったので
If ABC<>"" then をFor文の前に入れようかと考えていますが
その前に皆様に聞いてみようと思い投稿してみました

すみません、変な質問で!
以上、よろしくお願い申し上げます

A 回答 (3件)

この部分だけの事なら、If ABC<>"" thenは不要です。



無ければ何もしない訳であり、tmpに-1が返される事もFor文で考慮されてる訳だからです。
    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございます

そうですね
古い人間なので、if文を入れようかなっと思ったんですが
無しで行きます

ありがとうございました
これからもよろしくお願いいたします

お礼日時:2022/03/19 09:29

>If ABC<>"" then


この場合は、使っても使わなくてもお好きな方で。

逆に、よく引っかかるのがExcelのセルの値で
xxx = Range(Cells(2,1), Cells(Rows.Count,1).End(xlup)).value
で、対象が無いとき、1件のとき、複数のときで後の処理が異なる。
    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございます

そうですね
xxx = Range(Cells(2,1), Cells(Rows.Count,1).End(xlup)).valueは
知らなかったです
今度、試してみます

ありがとうございました
No.3さんの答えのように外しちゃおうかなっと思います
これからもよろしくお願いいたします

お礼日時:2022/03/19 09:27

よく見かけるとしたら無駄に処理へ回らないよう、



>If ABC<>"" then をFor文の前に入れようかと考えています

この方法をされているコードはありましたね。(類似を含め)

-1 ってのは Split の最小要素番号が 0 であるのに対し、何かしら1つだけ文字列があれば 0 になるでしょうけど、何もないので『どうしろって言うんだ?』的に -1 を返すのかなと今回の質問で知りましたが私はそう感じました。
    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございます

そうなんです
私も今回テストしてみて分かったんです
そこでIf ABC<>"" thenはいらないかなっと思って
相談してみました

No.3さんの答えのように外しちゃおうかなっと思います
ありがとうございました
これからもよろしくお願いいたします

お礼日時:2022/03/19 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A