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

下記画像のように最終行から最終列を範囲指定し
○、×、ーをプルダウンで埋め込もうとしているのですが
変数のセットがどうにもこうにもうまくいかず、想定の結果となりません。
どのように指定すればよいかご教授お願いいたします。

Sub Macro1()
Dim valRng As Range
With Range("A1").CurrentRegion
Set valRng = Range(.Cells(, ), .Cells(.Cells.Count))
↑この箇所の設定方法がよくわかっておりません。
End With
With valRng.Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="○,×,-"
End With
End Sub

「最終行から最終列までを範囲指定する方法。」の質問画像

A 回答 (4件)

No.3です。



修正する必要はないと思いますよ。(画像通りであれば)

Sub megu()

With Range("A1").CurrentRegion
With Intersect(.Cells, .Offset(1, 1).Cells).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="○,×,-"
End With
End With

End Sub

と前後にSub ~ End Subをつけるだけです。
ただし画像の内容が実際と違えば無論ダメかもしれませんけど。
    • good
    • 0

ジジィなので古いやり方でごめんなさいな。



With Range("A1").CurrentRegion
With Intersect(.Cells, .Offset(1, 1).Cells).Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="○,×,-"
End With
End With
    • good
    • 3
この回答へのお礼

ご回答ありがとうございます。

すみません。私の知識不足もあり
修正してマクロを実行してみようとしたのですがエラーになってしまいました。
回答していただいた内容をどのように修正すべきかご教授お願いできますでしょうか?

お礼日時:2021/07/14 10:56

考え過ぎのような気もしますが,次のコードではダメでしょうか。



Sub Macro1()
Dim valRng As Range
Set valRng = Range("A1").CurrentRegion
With valRng.Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="○,×,-"
End With
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

A列と1行目もプルダウンが入ってしまいます。
こちらB2:B~G2:Gの範囲を設定したいです。
ここではGまでですが、こちらは値が毎回変化する想定です。

お礼日時:2021/07/14 10:47

こんばんは、



CurrentRegionを使っている場合の一例です。
.Item(.Count).Row を使うのが簡単かも
画像の黄色範囲は .Range("B2", .Cells(.Item(.Count).row, "G"))
列方向も変化するのなら
.Range("B2", .Cells(.Item(.Count).row, .Item(.Count).Column))
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ここではG列までと記載しておりますが、
こちら毎回変わる想定です。
※すみません。記載が足りていませんでした。
.Range("B2", .Cells(.Item(.Count).row, "G"))
こちらの"G"はどのように記載すればよろしいでしょうか?
毎回変わる想定でどのように範囲指定すればよいかわかりませんでした。

お礼日時:2021/07/14 10:41

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