• 締切済み

文字だけ削除する関数ありますか?

エクセルで、ClearContents を使い文字を削除すると セルのIF文も消えてしまうのですが、文字だけ消す 方法はあるのでしょうか? よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#3 です。あまり、ご質問者さんの反応を見ずに、言葉を重ねたくはないのですが、文章的に足りないような気がしましたので、もう一度、書かせていただくと、 Range("D11").SpecialCells(xlCellTypeConstants).ClearContents は、Range("D11") 自体では、SpecialCellsの領域を支配する力を持ちません。 排他的領域(選択されていない場所)と分けられてはいないことです。 したがって、正しく書くと、Range("A1", ActiveSheet.UsedRange).SpecialCells と同義になります。 これは、Excelのワークシートの機能の保護機能です。 例えば、仮に、 Range("A1:D30").SpecialCells(xlCellTypeConstants).ClearContents としても、UsedRange の範囲が、"A1:D10" までだとしたら、.SpecialCells の制御範囲は、"A1:D10" までです。当たり前のような気がしますが、xlCellTypeConstants では、関係ありませんが、xlCellTypeBlanks(ブランクセル)を探す場合などには、これが関わってきます。これは、結構、間違えやすいです。 したがって、実質的な範囲(UsedRange)の範囲はともかくとして、セル一つではダメだということですね。

全文を見る
すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

>でもなぜか、シート全部の文字が..消えました。 #01さんの回答でなにが問題か、具体的に補足されていませんね。 特定範囲に限定して「文字」を削除したいのですか? もし範囲を限定して「数式以外の文字」を消したいというのなら Sub Macro1()  With ActiveSheet   Application.Intersect(.Range("A1:G50"), _    .Cells.SpecialCells(xlCellTypeConstants)).ClearContents  End With End Sub のようなマクロが考えられます(A1:G50の範囲の定数を削除)

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 ちょっと補足しますが、 SpecialCells というのは、Excel(ワークシート)側のメソッドで、その範囲の取り方には癖がありますので、気をつけたほうが良いです。 SpecialCells というのは、UsedRange と複合的に合わさった機能を持っています。 だから、セル全体(Cells)を行っても、UsedRange の先には、範囲は、及びません。 逆に、 × Range("D11").SpecialCells(xlCellTypeConstants).ClearContents 他のセルへの排他的選択がされていませんので、UsedRange になるはずです。二つ以上のセルの範囲が必要です。 時々、以下のような方法で不満を持つ方がいらっしゃますが、 この際は、一つずつ、VBA側の方法で、  For Each c In ActiveSheet.UsedRange または、特定の範囲 で判定したほうが確実な場合もあります。 Excel 側のメソッド(オブジェクト・ブラウザ上)は、検査してから使ったほうがよいです。おかしな動作が時々あります。だいぶ、改良されたようです。

全文を見る
すると、全ての回答が全文表示されます。
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

> 消えるには期待どおりの結果なんですが、シートの文字全部消えました(笑) 失礼しました。ある範囲の数式以外の文字を全部削除するのと思っていました。 > Range("D11").SpecialCells(xlCellTypeConstants).ClearContents でもいいのですが、1セルだけなら、 If Not Range("D11").HasFormula Then Range("D11").ClearContents でいいかと思います。(でもかえって長くなってますが…)

Kyokunan
質問者

お礼

ありがとうございます。 Range("D11").SpecialCells(xlCellTypeConstants).ClearContents でいいですよね。 でもなぜか、シート全部の文字が..消えました。 困ったっ。

全文を見る
すると、全ての回答が全文表示されます。
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

範囲をRとすると、 R.SpecialCells(xlCellTypeConstants).ClearContents で数式でなくて定数が入っているセルだけをクリアできます。

Kyokunan
質問者

お礼

ありがとうございます。 消えるには期待どおりの結果なんですが、シートの文字全部消えました(笑) Range("D11").SpecialCells(xlCellTypeConstants).ClearContents セルD11だけ消すならこれで良いのですよね?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelの空文字セルの削除方法を教えてください

    別のシートでIf文を使い計算しています。 =IF(条件式,"",表示文字) 計算した結果をシートに値のみで貼り付けをしています。 Ctrl + 矢印で値が表示されているセルへ飛ぼうとしても空白のセルが値が入っていると認識され表示されているセルへ飛べません。 手動で一つ一つ空文字を削除すると表示されているセルへ飛ぶことが出来ます。 自動で空文字を削除するにはどうしたらいいのでしょうか? Excelは2000を使用しています。

  • if関数で、文字だったら計算しないって出来ますか?

    =if(A1=文字,"",A1*2)のように、セルの値が文字かどうかを判断するif文の書き方を教えてください

  • EXCELにて 空文字の削除関数

    EXCELのセル内で 空白文字を削除したいのです。 例 "AA   "→ "AA"   "BBBB   " → "BBBB" 何か 関数無いでしょうか?

  • EXCEL関数でこの文字がきたときに「●」と打ち込みたい

    エクセル初心者です。 この文字列、例えば「リンゴ」がきたときのみ、横のセルに「●」がくるようにしたいのですが、 =IF(J8="リンゴ","●")では無理でした。 何かよい方法はございますでしょうか? 関数で無理なら、VBAでもかまいません。よろしくお願い申し上げます。

  • エクセルで一文字の削除が出来ない

    エクセルでセルをダブルクリックして、今までは一文字を削除していましたが 急にマウスのダブルクリックしてもセル全体の削除しかできなくなりました。 ワードでは、一文字削除は出来ます。 初心者で何かクリックしてしまったかもしれません・・・・・

  • エクセルで同じ文字列が入った行を削除したい

    現在エクセルで3000個近くの文字列(社名)の入ったセルが個々にあります。 しかし、現在12,000セルくらい、上記の社名等が入ったセルがあるため、 同じ文字列(社名)がはいったセルを削除して、正式に何個の社名があるかをしりたいのです。 よって、列を読み込んで、同じ文字列がはいった行を抜粋して削除し、1社だけのこしていく方法は ないのでしょうか? フィルタ等でもひとつひとつ読み込んで、一つだけ削除しても、セル数が多すぎてとても1日ではおわりません。 何か良い方法はないでしょうか?おしえてください。こまっています;

  • エクセルのIF関数で、文字が入力されていたならば~

    エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。 =IF(A1="『どんな文字でも』","",+B1-C1) A1セルに『どんな文字でも』入っていたならば、空白に。 文字が入っていなければB1セルからC1セルを引く、という状態です。 この『どんな文字でも』の部分に何を入れればいいのか教えてください。 またIF関数以外でも同様のことができれば構いません。 宜しくお願いします。

  • エクセルの関数の使い方を教えてください。

    3か所のセルのいずれかに「普通」という文字が入力されていればあるセルに「○」という文字を、 いずれにも入力されていなければ「×」という文字を出力させたいのですが、IF文で作ろうとしても うまくいきません。 1か所のセルに対してならば下記の式で出来るのですが、複数のセルを対象にする方法が解りません。 =IF(A1="普通","○","×")  A1からA3の3つのセルを対象に指定したいのですが。 よろしくおねがいします。

  • IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?

    例えば、一つのセルに「済」や「完」の(+条件書式などで網掛けがかかったような)文字が入ったら、自動的にその「行」が削除されるような、そんな関数(例えばIF関数などを組み合わせて)や機能はエクセルにありますでしょうか? ご存知でしたらどうぞよろしくお願い致します。 バージョンは97です

  • エクセル関数の質問です。

    エクセル関数の質問です。 A2のセルの4文字目がGならばD2セル+5、A2のセルの4文字目がFならばD2セル-10 その計算でD2のセルが5以下なら空白という関数を書きたのですがわかりません。 それぞれのIF文は以下のようにできたのですがこのIF文を一緒に書きたいのですがうまくいきません。 =IF(IF(MID(A2,4,1)="G",D2,D2+5)<=5,"",IF(MID(A2,4,1)="G",D2,D2+5)) =IF(IF(MID(A2,4,1)="F",D2,D2-10)<=5,"",IF(MID(A2,4,1)="G",D2,D2-10)) どうすればよろしいのでしょうか?どうかご教授よろしく願いいたします。

専門家に質問してみよう