Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 8.1 : Excel 2013)
空白セルに値を代入する方法
投稿日時: 21/10/30 21:09:11
投稿者: ねここあ

空白セルを自動的に探し出して、−(ハイフン)という値を代入させたいのですが、方法が分かりません。
ジャンプで空白セルを選択して、値をCtrl+Enterで一括入力すれば、VBAを使わなくともできるのかもしれませんが、”自動的に”表示させたいです。
どうぞ、よろしくお願い致します。

回答
投稿日時: 21/10/30 21:56:40
投稿者: hatena
投稿者のウェブサイトに移動

SpecialCells(xlCellTypeBlanks) で空白セルを指定できますので、それのValueに代入すればいいでしょう。
 

   'A1を含む表範囲の空白セルに代入
    On Error Resume Next
    Range("B2").SpecialCells(xlCellTypeBlanks).Value = "−"
    On Error GoTo 0

 
On Error Resume Next は「該当するセルが見つかりません。」エラーに対する対処

投稿日時: 21/10/31 09:01:22
投稿者: ねここあ

早速のご回答、ありがとうございます。
エラー対処法まで、教えてくださり、感謝します。
知識が少なくて、申し訳ありません。
再び、質問します。
 
'A1を含む表範囲について、構文の中に
Range("A1")の文字が、なぜ無いのでしょうか?
 
また、Range("B2")を指定するのは、どういう理由からでしょうか?
 
何度も、申し訳ありませんが、宜しくお願いいたします。

回答
投稿日時: 21/10/31 10:31:24
投稿者: hatena
投稿者のウェブサイトに移動

あっ、ごめんなさい。
提示のコードはB2を含む表範囲という意味になりますね。

投稿日時: 21/10/31 12:34:24
投稿者: ねここあ

ありがとうございます。
範囲が複数セル範囲の場合も、
 
 'A1を含む表範囲の空白セルに代入
    On Error Resume Next
    Range("A1").SpecialCells(xlCellTypeBlanks).Value = "−"
    On Error GoTo 0
 
になりますか?
何度も申し訳ありません。
もう一度、ご回答お願いしても、よろしいでしょうか?
 

回答
投稿日時: 21/10/31 13:12:32
投稿者: hatena
投稿者のウェブサイトに移動

それで、A1を含むデータ入力してある矩形範囲を自動認識してくれます。
 
例えば、

  A  B  C  D  E  F
1 a  b  c     d
2    e  f  g
3 h  i        j
4 k        l   
5

なら、実行すると下記になります。
  A  B  C  D  E  F
1 a  b  c  -  d
2 -  e  f  g  -
3 h  i  -  -  j
4 k  -  -  l  -
5

投稿日時: 21/10/31 14:12:52
投稿者: ねここあ

 hatena様
ご回答、ありがとうございました。
おっしゃる通りに記述し、成功しました。
本当に、助かりました。
何度も質問して、申し訳ありませんでした。