アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルは長年使っていたのですが、
マクロも使いたいと思いネットで色々調べています。

やりたいことは、 選択したセル範囲の中で空""のセルに'を入れる
マクロを作りたいのですが、
どうしたら良いのでしょうか?

マクロ以外の方法もあれば教えて欲しいのですが、
この機会にマクロに挑戦しようと思いました。
宜しくお願いいたします。

今作成している途中のマクロはこんな感じですが
上手く動きません

Sub NullCellAddDash ()

Dim cellrange As Range
For Each cellrange In Selection.Cells
If cellrange = "" Then
cellrange = "'"

End If
Next
End Sub

A 回答 (4件)

もしかして数式かなにかでエラーして、#VALUE!ってなっているセルを含んでいませんか?



そういうセルは文字列として比較ができないため、エラーとなってしまいます。

エラーが起こったとき、デバッグボタンを押して、cellrangeにマウスカーソルを近づけたときに"エラー XXXX"とかって表示されていたら、比較ができないからエラーしていると考えられます。

回避するにはFor Each...の前に、
On Error Resume Next
って入れてやってみてください。
エラーが起こったらスキップするって意味です。
    • good
    • 0
この回答へのお礼

完璧です!!!
まさにその通りで、修正したら上手く行きました。

さらに質問させてもらっていいですか?
>cellrangeにマウスカーソルを近づけたときに"エラー XXXX"とかって表示されていたら
Macだからなのかも知れませんが、エラーが起きたらメッセージボックスが
出てきてそこにエラーXXって出てきました。
デバックボタンを押すとマクロの行の途中がハイライトされるだけです。

もう一つ
マクロが終了したというのはどうやって判断するんですか?
プログラムでマクロが終了したという表示をさせること出来ますか?

お礼日時:2008/07/11 01:47

>Macだからなのかも知れませんが、エラーが起きたらメッセージボックスが


>出てきてそこにエラーXXって出てきました。
>デバックボタンを押すとマクロの行の途中がハイライトされるだけです。

それで正常だと思います。下記が参考になるでしょう。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …

>プログラムでマクロが終了したという表示をさせること出来ますか?

この場合、End Subの前に
msgbox "終了"

って入れるだけです。2つ目のURLを参考にすれば、
どのセルを処理中にエラーしたかなども調べることができるでしょう。
    • good
    • 0
この回答へのお礼

本当にありがとうございます。
とても勉強になりました。

お礼日時:2008/07/11 17:03

動いているように思えるのですが・・・


どううまく動かないのでしょうか?

'を画面に表示させたいなら、"''"を入力しないといけないと
表示されませんよ。

1文字目の'は文字列を表す記号として扱われるはずで、
画面には表示されてこないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
選択範囲を小さくするとうまくいくことが多いのですが、
大きく選択すると、型が違いますとエラーが出ることもあります。
マクロに間違いがなければ使い方の問題だと思います。
ありがとうございました。

お礼日時:2008/07/10 14:14

セルにダッシュを表示させたい場合は以下になります。



cellrange = "''"

ダッシュ1つでは後続する値が文字列であることを表す特殊な
記号になりますので上記のような表現になります。
    • good
    • 0
この回答へのお礼

もともとはセルを参照すると、空欄なはずなのに
"0"と表示されてしまうのが嫌だったのです。
IFを使えば出来ますが、
もっとスマートな方法はないかと考えていました。
ありがとうございます。

お礼日時:2008/07/10 14:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!