![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.4ベストアンサー
- 回答日時:
<C:\Temp.txt>
aaa
ccc
ddd
以下は、これを呼び込んで空行以外を出力するサンプルコードです。
Private Sub CommandButton1_Click()
Dim I As Integer
Dim N As Integer
Dim Datas() As String
Datas() = FileReadArray("C:\temp\test.txt")
N = UBound(Datas())
For I = 0 To N
If Len(Trim(Datas(I))) Then
Debug.Print Datas(I)
End If
Next I
End Sub
[イミディエイト]
aaa
ccc
ddd
という実行結果を得ることが出来ます。
このように Len関数で取得した値を真偽判断に利用するという手もあります。
ちなみに、私は、全てこの方式で統一しています。
No.5
- 回答日時:
こんにちは。
#2さんが、お書きになっていますが、少し書き加えると、VBAのNull値は、Variant 型の明示的な代入値です。Variant 型は、変数に入れていない状態のままですと、Empty が入りますが、さらに、明示的に、Null値を入れることが可能です。しかし、私は、数年、VBAを書いておりますが、Null値を積極的に使った経験はありません。
>if mid(da_i,1,1) <> " " then
今回、お書きになった質問だけでは、良く分かりませんが、テキストファイルで、先頭の1文字だけで「" "」 は、通常は、排除できないように思います。Trim を使うなどして、その後で、Len で、文字列の長さを取ります。
「""」は、長さ0の文字列と言って、これは、可能です。なお、以下は、全角スペースと半角スペースを両方扱っています。
Sub TestSample()
Dim tmpBuf As String
Const SAMPLE_TXT = " a"
tmpBuf = SAMPLE_TXT
tmpBuf = Replace(Trim$(tmpBuf), " ", "", , , 1) '1はTextCompare
If Len(tmpBuf) = 0 Then
MsgBox "何もありません。"
Else
MsgBox "文字列があります。: " & SAMPLE_TXT
End If
End Sub
No.3
- 回答日時:
null値の読み飛ばしは、通常は
If Trim(da_i) = "" Then
Goto bb
End If
または
If IsNull(da_i) Then
Goto bb
End If
ですね。スペースを含むものも同時に飛ばすなら前者のほうが有効でしょう。
if mid(da_i,1,1) <> "" thenの場合はnull以外の場合読み飛ばしです。
bbにnull以外の時の処理があるなら構いませんけどね。
No.2
- 回答日時:
エクセルVBAの解説書では
(1)空白のデータ
If A="" THEN
で聞く。
ただエクセルの内部的な、「空白」の状態は、余り明らかにした解説には出会わず、小生には不知。
(2)null値 NULL
エクセルについて言えば、質問者の勝手な使用とおもう。エクセルVBAではこの言葉は使われない(アクセルVBAでは重要概念。エクセルVBAの解説書では出てこない。)
エクセルに反例がWEBとかで有れば、質問者でも回答者でも教えてほしいぐらい。
エクセル関数のなかでエラー値として#NULL!が出てくるのが唯一の例ですが、セルの値としての表現ではなく、「共通部分がない」という
表現で使われている。
(3)スペース
これは全角スペース、半角スペースとも文字コードが決まっており、
その文字コードが、入っている(ユーザーが入れた)状態であることは確実。
(A)先頭1文字で判別
(B)全文字スペースを半月
(C)1部(前、後、途中)のスペースの削除はTRIM、RTRIM、LTRIMなど関数あり
(B)を正確にやるなら、私流で
Sub test01()
s = " " '半角スペース文字列
zs = " " '全角スペース文字列
For i = 1 To 10
If Cells(i, "A") = Left(zs, Len(Cells(i, "A"))) Or _
Cells(i, "A") = Left(s, Len(Cells(i, "A"))) Then
MsgBox i & "行目はスペースです"
End If
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スペースを検索したい
-
select文のwhere句に配列を入れ...
-
あいまい検索で英文字の全角半...
-
DTSパッケージについて
-
差し込み後、元データを変更し...
-
止まなーい雨はない でもお前に...
-
エクセルVBAコードで教えて下さ...
-
フィルターかけた後、重複を除...
-
SELECT 文 GROUP での1件目を...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SQL文で、合計が0のレコードを...
-
for whichの使い方
-
datetime型でNULL値を入れたい。
-
SQL Date型の列から年月だけを...
-
カーソル0件の時にエラーを発生...
-
列のヘッダーを含めるのをデフ...
-
SQLによる"あいうえお"順でソー...
-
SQLで特定の項目の重複のみを排...
-
副問合せの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースを検索したい
-
あいまい検索で英文字の全角半...
-
顧客データベースを作る場合、...
-
INSERT文などの列名などの半角...
-
select文のwhere句に配列を入れ...
-
ORACLEの「DECODE」と同じ意味...
-
末尾の全角スペースの削除
-
Trimの使い方
-
SQLServer2005のストアドプロシ...
-
外部結合で取得した項目にNVL関数
-
WHERE条件の最終桁のスペースに...
-
ストアドの戻り値で配列を返す方法
-
EXCELのVBA NULL、スペ...
-
アンケートメールをACCESSに取...
-
SUBSTR関数の結果が予想と異なる
-
DTSパッケージについて
-
access2007のvbaの配列で配列に...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
おすすめ情報