
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
こんにちは。
それでは、ちょっと、話を元に戻しまして、基本的なコード・パターンをこちらか提示します。
参考本はいくつかあるのですが、入門用のテキストと実践用のコードとは違います。
失礼ですが、個々の部分の問題でいくら質問されても、回答者側の技術的なレベルはエスカレートするか、回答者が放り出すだけで、現実的な解決とはかけ離れていくような感じがします。
上手く行かないときは、その部分だけの「スモール・サンプル」を抜き出してシュミレートしてみることがコツです。掲示板では、質問として与える情報が十分に与えられないのです。分かっていれば、それを提示できても、分からないから、そこは見えないわけです。
それから、Excelは、Excel VBAのスタイルがあって、VBスタイルとは違います。Excel VBAの経験が十分でない人に教わったところで、トンチンカンになるだけだと思います。ここの掲示板では、そのような人も多いです。
私は、["○"] ["1"][Empty] この三つの判定は、慣れないと難しいと思います。
簡単だと思うのは、Excel VBAが詳しくない人です。特に、数字とは何か、Empty とは何か、ということを追求していない人がほとんどです。
Basic なら簡単な問題でも、Excelでは、["1"]は、データ型のキャスティングが起きて、おそらくは、[1]になってしまいます。
こちらで、シミュレートします。
以下のコードは、簡単だと思うかもしれませんが、なぜ、Text プロパティを使うのかとか、経験ないと出来ません。普段、私は、このようなコードは書きませんが、基本的なところは押さえているつもりです。
表は、C1からの数式 =IF(ISBLANK(A2),"Empty",CODE(A2)) となっています。
// Case " ", " ": .Cells(i, 2).Value = "なし"
半角空白, 全角空白が入っています。
-----------------------------------------------
Sub Test1()
Dim i As Long
With Worksheets("Sheet1")
For i = 1 To .Range("A65536").End(xlUp).Row
Select Case .Cells(i, 1).Text
Case "1": .Cells(i, 2).Value = "いち"
Case "○": .Cells(i, 2).Value = "まる"
Case "": .Cells(i, 2).Value = "なし"
Case " ", " ": .Cells(i, 2).Value = "なし" '半角と全角の半角が併記してある
Case Else: .Cells(i, 2).Value = "その他"
End Select
Next i
End With
End Sub

No.5
- 回答日時:
こんばんは。
ご質問の内容では、何をしているのか、空のセルを探しているのか、本来の目的が分かりません。マクロの ="" というのは、長さ0の文字列と、本当のEmpty とは区別が付きません。フィルタでも、長さ0の文字列も、Empty も区別は付きません。
マクロでは、="" と一致しないというのは、どういう現象が起きているのか、こちらが当てることは不可能だと思います。とはいえ、ClearContents を使いたくないのでしたら、空白と思えるセルに対して、ワークシートの関数の=CODE(A1) のように、文字コードを取ってみればよいのではありませんか?または、LENB(A1)で長さを取ればよいと思います。
それと、まれに、シートが壊れていると、そういう現象が現れるはずです。
この回答への補足
項目に対して、"○"とか"1"とか何かしら記入されているか、何も記入されていないかを判断したいのです。
フォーマットが決まっていない不特定の既存ファイルに対応するマクロを組みたいので、ClearContentsをどう使えばよいかわかりません。
CODEはVBAではASCを使えばよいのでしょうか?
すみません。使い方がよくわかりません。
LENBはば、スペースや改行は含まれないのですか?
初心者で申し訳ありません。
よろしくお願いします。
No.4
- 回答日時:
こんばんは。
If Cells(i,j)<>Empty Then
という 'Empty'というのは、Variant 型の変数を使っていない状態のことで、ワークシート上では、あまり意味がないと思います。別に間違いではないけれども、もし、Empty を調べるなら、'IsEmpty'を使うほうがよいのですが、本当に、Empty(空)の状態にするなら、'ClearContents' を使うほうがよいのではないかと思います。「""(長さ0の文字列)」は、何も入っていない状態ではありません。
Trim は、文字の初めと終わりの空白値を取り去るわけですね。それには、数は関係がありません。
果たして、それだけで良いのでしょうか?例えば、文字列の間の空白値は取ることができません。
この回答への補足
ご説明ありがとうございます。
実は、今日試してみたのですが、Trimとreplaceで改行を除いただけでは、うまくいきませんでした。
フィルタをかけたときには、空白セルに該当するのに、なぜマクロでは""と一致しないのでしょうか。
No.3
- 回答日時:
空白(半角、全角)はTrimで取り除くことができます。
(多分、セル内改行も同時に取り除いておいた方がよいのではと思いますが…)
改行もの除くなら、
If Replace(Trim(Range("A1").Text), Chr(10), "") <> "" Then
みたいな判断を行えばよろしいかと思います。
改行は判断にいれなくてもよいのなら、Trimだけでいけるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
-
4
VBA 半角スペースを入れるには...
その他(Microsoft Office)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
7
エクセルでVBAで範囲に対してTRIM関数を適用したい
Access(アクセス)
-
8
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
9
マクロの「Rangeメソッドは失敗しました’Globalオブジェクト」エラーの解決方法について
Excel(エクセル)
-
10
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
-
11
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
12
数式の結果が空白の時の空白扱い
Excel(エクセル)
-
13
エクセルのマクロ(VBA)の変数でスペースを認識しません
Excel(エクセル)
-
14
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
-
17
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
18
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
Vba初心者です。下記のコード助けてください Loopに対するDoがありませんと表示されます Sub
オープンソース
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 連番が途切れていると...
-
IF関数で空欄("")の時、Null...
-
エクセルで数式の入ったセルの...
-
ピボットテーブルで空白セルの...
-
空白セルに斜線(罫線)
-
エクセルのIF関数で、隣のセル...
-
エクセルでCSVを編集するとき、...
-
複数のセルの文字を違うシート...
-
■EXECEL:こんな関数ありますか?
-
Excel:関数が入っているセルに...
-
countaで空白セルもカウントさ...
-
Excel「もし2004年1月1日より前...
-
エクセルのグラフで式や文字列...
-
Excel関数で、長さ0の文字列(
-
Excel > ピボットテーブル「(空...
-
エクセル 平均値の出し方
-
VBでcsvファイルを取り込むとき...
-
エクセルで、合計をもとめたい...
-
excel セル未入力→空白 任意の...
-
エクセル関数のつくりかた
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
Excelで、入力文字の後に自動で...
-
Excel:関数が入っているセルに...
-
「データ要素を線で結ぶ」がチ...
-
数式による空白を無視して最終...
-
エクセル 連番が途切れていると...
-
エクセルのIF関数で、隣のセル...
-
excel2010 空白セルにのみ貼り...
-
ピボットテーブルで空白セルの...
-
空白セル内の数式を残したまま...
-
関数TRANSPOSEで空白セルを0に...
-
形式貼り付けの「空白を無視す...
-
【Excel】 csvの作成時、空白セ...
-
色つき行の一括削除は?
-
エクセルで、「複数のセルの中...
-
【Excel】 Ctrl+方向キー で空...
-
エクセルで上の行の値を自動的...
-
エクセルのグラフで式や文字列...
おすすめ情報