任意のセル(行)を選択して、入力画面より文字を入力し表示させます。
複数セルを選択した場合は、選択セルを結合して表示しています。
すでに入力されたセルを含んだセルを選択した場合は、エラーを表示したいと思っています。
未入力セルを選択、入力(結合)されたセルのみを選択した場合は、処理を実行します。
例えば、、、
1)「入力されたセル」のみ選択した場合 → 処理
2)「未入力セル」のみ選択した場合 → 処理
3)「入力されたセル」+「入力されたセル」を選択した場合 → エラー表示
4)「入力されたセル」+「未入力セル」を選択した場合 → エラー表示
5)「未入力セル」+「入力されたセル」を選択した場合 → エラー表示
6)「未入力セル」+「入力されたセル」+「未入力セル」を選択した場合 → エラー表示
下記プログラムでは、上記1)2)3)4)の場合の処理はうまくいくのですが、
5)6)の場合はエラーが表示されません。
------------------------------------------------------
x = Selection(1).Column
y = Selection(1).Column + Selection.Column.Count -1
z = ActiveCell.Row
If ActiveCell.Value <> "" Then
Set CheckRange = Sheet1.Range(Cells(z,x),(z,y))
If CheckRange.MergeCells Then
(処理)
Else
Message"(エラー表示)"
End
End If
Set CheckRange = Nothing
End If
-----------------------------------------------------
どのようにしたらよいのでしょうか。
まずそのサンプルコードがそもそも正常動作しないようなんですが・・・コピペしてる訳ではないのでしょうか?
それから
If ActiveCell.Value <> "" Then
の判別の結果(2)は処理にもエラーにも分岐しませんよ。当然5も6も。
単純に選択したRnage一つ一つに対してValueがあるかどうかを一つ一つチェックする必要がありますので、まずは根本的にアルゴリズムを考え直すところからやり直した方が宜しいかと。