
A 回答 (5件)
- 最新から表示
- 回答順に表示
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)の範囲はともかくとして、セル一つではダメだということですね。
No.4
- 回答日時:
>でもなぜか、シート全部の文字が..消えました。
#01さんの回答でなにが問題か、具体的に補足されていませんね。
特定範囲に限定して「文字」を削除したいのですか?
もし範囲を限定して「数式以外の文字」を消したいというのなら
Sub Macro1()
With ActiveSheet
Application.Intersect(.Range("A1:G50"), _
.Cells.SpecialCells(xlCellTypeConstants)).ClearContents
End With
End Sub
のようなマクロが考えられます(A1:G50の範囲の定数を削除)
No.3
- 回答日時:
こんばんは。
ちょっと補足しますが、
SpecialCells
というのは、Excel(ワークシート)側のメソッドで、その範囲の取り方には癖がありますので、気をつけたほうが良いです。
SpecialCells というのは、UsedRange と複合的に合わさった機能を持っています。
だから、セル全体(Cells)を行っても、UsedRange の先には、範囲は、及びません。
逆に、
× Range("D11").SpecialCells(xlCellTypeConstants).ClearContents
他のセルへの排他的選択がされていませんので、UsedRange になるはずです。二つ以上のセルの範囲が必要です。
時々、以下のような方法で不満を持つ方がいらっしゃますが、
この際は、一つずつ、VBA側の方法で、
For Each c In ActiveSheet.UsedRange または、特定の範囲
で判定したほうが確実な場合もあります。
Excel 側のメソッド(オブジェクト・ブラウザ上)は、検査してから使ったほうがよいです。おかしな動作が時々あります。だいぶ、改良されたようです。
No.2
- 回答日時:
> 消えるには期待どおりの結果なんですが、シートの文字全部消えました(笑)
失礼しました。ある範囲の数式以外の文字を全部削除するのと思っていました。
> Range("D11").SpecialCells(xlCellTypeConstants).ClearContents
でもいいのですが、1セルだけなら、
If Not Range("D11").HasFormula Then Range("D11").ClearContents
でいいかと思います。(でもかえって長くなってますが…)
ありがとうございます。
Range("D11").SpecialCells(xlCellTypeConstants).ClearContents
でいいですよね。
でもなぜか、シート全部の文字が..消えました。
困ったっ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Visual Basic(VBA) 列を指定して値を左から5文字にそろえる 1 2022/06/10 20:28
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/04/01 09:10
- Illustrator(イラストレーター) pdfファイルで送られてきた絵や写真だけを消す方法 3 2022/06/19 11:31
- Excel(エクセル) エクセルである文字が入っている行とその上下の行を削除したいのですが、一気にできる方法はないですか? 5 2022/10/14 14:14
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複数のセルを一括で...
-
エクセルでセルを10個分くらい...
-
複数の離れた選択範囲をコピー...
-
Excel2007の仕様?
-
エクセルのコピー
-
エクセルVBAでフィルタ抽出...
-
波線は無理??
-
エクセル関数 CountIf について...
-
EXCEL VBA 複数セルのコピー
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
エクセルで既に入力してある文...
-
セルを結合したA4とA5の条件付...
-
複数の条件に合う行番号を取得...
-
空白でないセルの値を返す方法...
-
EXCELで、結合されたセルに連続...
-
excelでSUBTOTAL関数を設定した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの複数のセルを一括で...
-
エクセルでセルを10個分くらい...
-
エクセル空白以外の文字を抽出
-
ワードの表のセル 網掛けのコピー
-
エクセルVBAでフィルタ抽出...
-
Excel セルの値を数値と認識しない
-
波線は無理??
-
マクロ 複数セルコピー後、1つ...
-
複数の離れた選択範囲をコピー...
-
エクセル2007で総当り表を作り...
-
excel ハイパーリンクをまとめ...
-
オートシェイプ(矢印)の貼り付け
-
WEB上の文章 ⇒ EXCEL...
-
Excelで「"」ダブルクォテーシ...
-
エクセル関数 CountIf について...
-
Excelで指定した範囲の数値の減算
-
可視セル以外の範囲をコピーし...
-
EXCEL VBA 複数セルのコピー
-
文字だけ削除する関数ありますか?
-
excel 複数のセル範囲を指定し...
おすすめ情報