
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
-
4
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
5
エクセルでVBAで範囲に対してTRIM関数を適用したい
Access(アクセス)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
8
エクセルVBAでシートモジュールでのパブリック変数
Excel(エクセル)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
VBA 半角スペースを入れるには...
その他(Microsoft Office)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
14
エクセル関数で文字列の中のスペースの有無を調べたい。
Excel(エクセル)
-
15
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
16
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
17
全ての変数を一気にリセットする方法はありますか?
PowerPoint(パワーポイント)
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
数式の結果が空白の時の空白扱い
Excel(エクセル)
-
20
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
if関数の複数条件について
-
【画像あり】オートフィルター...
-
エクセルでCSVを編集するとき、...
-
エクセルで上の行の値を自動的...
-
ピボットテーブルで空白セルの...
-
数式による空白を無視して最終...
-
Excel > ピボットテーブル「(空...
-
エクセルで入力すると隣のセル...
-
【Excel】 csvの作成時、空白セ...
-
excel2010 空白セルにのみ貼り...
-
形式貼り付けの「空白を無視す...
-
《Excel2000》SUMPRODUCT関数で...
-
Excelで、入力文字の後に自動で...
-
Excel:関数が入っているセルに...
-
エクセルで空白文字の前後を入...
-
エクセルのグラフで式や文字列...
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセル 連番が途切れていると...
-
エクセルで、「複数のセルの中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
【画像あり】オートフィルター...
-
エクセルでCSVを編集するとき、...
-
エクセル 連番が途切れていると...
-
Excel > ピボットテーブル「(空...
-
エクセルで入力すると隣のセル...
-
「データ要素を線で結ぶ」がチ...
-
Excelで、入力文字の後に自動で...
-
Excel:関数が入っているセルに...
-
【関数】=EXACT(a1,b1) a1とb1...
-
空白セル内の数式を残したまま...
-
ピボットテーブルで空白セルの...
-
形式貼り付けの「空白を無視す...
-
数式による空白を無視して最終...
-
関数TRANSPOSEで空白セルを0に...
-
excel2010 空白セルにのみ貼り...
-
エクセルのIF関数で、隣のセル...
-
【Excel】 Ctrl+方向キー で空...
-
SUMIFS関数で「計算式による空...
-
【Excel】 csvの作成時、空白セ...
おすすめ情報