いつもお世話になっております。
VBAを勉強して3ヶ月程度の初心者です。
VBAでの入力規則の設定について質問させていただきます。
A1セルに入力規則の設定を行い、0~10までの数値を選択できるようにしたいと考えています。
Sub Test()
Range("A1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation _
, Formula1:="0,1,2,3,4,5,6,7,8,9,10"
End Sub
とコードを記述すれば、確かに望みの仕様は満たされるのですが、複数のセルに入力規則を設定する場合、
また、リストの数が増えた場合を考えて、"1,2,3,4,5,6,7,8,9,10"を変数に出来ない?と考えて・・・
Sub Test2()
Dim kazu(10) As Long
kazu(0) = 0
kazu(1) = 1
kazu(2) = 2
kazu(3) = 3
kazu(4) = 4
kazu(5) = 5
kazu(6) = 6
kazu(7) = 7
kazu(8) = 8
kazu(9) = 9
kazu(10) = 10
Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation _
, Formula1:=kazu
End Sub
なんて事もやってみましたが・・・駄目でした。
もう一点、初期値に0を表示したい場合は、入力規則コードの後に、
Range("A1").Value=0
と表示すればよいのでしゅか?
ご指導をよろしくお願いいた
No.4ベストアンサー
- 回答日時:
入力規則のリストネタを、カンマ区切りの文字列で作成するだけです。
シンプルに:
sub macro1()
dim i as integer
dim buf as string
for i = 0 to 10
buf = buf & "," & i
next i
buf = mid(buf,2)
range("A1").validation.delete
range("A1").validation.add type:=xlvalidatelist, formula1:=buf
range("A1") = 0
end sub
#参考
>初期値に0を表示したい場合は、入力規則コードの後に、
入力規則コードの「前」に初期値を記入することで、入力規則で「許可していない値を初期値として」セットする事もできます。
No.3
- 回答日時:
配列を使わなくても、リスト用シートを作成した方が早いのではないでしょうか?
例えば、sheet2のA1に1、A2に2・・・
とリストを作成しておいて、そこから参照すれば、リスト項目が増えた場合でも対応できます。
なお、質問文ではセルを選択していますが、任意の場所(選択セル(複数可))
に対して実行できるようにしています。
_______________
Sub sample()
Dim ListWS As Worksheet
Set ListWS = Worksheets("sheet2") 'リスト用シート
Dim MyRg As Range
Set MyRg = Selection '選択しているセルを格納
ListWS.Range("A1").CurrentRegion.Name = "MyList" 'リスト用シートに名前を付ける
'currentregionとは、選択しているセルを含む、空白で囲まれた範囲
With MyRg.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertInformation, _
Formula1:="=MyList"
MyRg.Value = 0
End With
End Sub
でどうでしょうか?
No.1
- 回答日時:
配列kazuに収められている数値を","で繋ぐ必要があります。
ここではJoin関数を使いましたので変数の型はLongではエラーが出るので
Variantにしています。
Dim kazu(10) As Variant, i As Long
For i = 0 To 10
kazu(i) = i
Next
Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation _
, Formula1:=Join(kazu, ",")
>Range("A1").Value=0
>と表示すればよいのでしゅか?
良いのでは
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) VBA カゥントで数値の範囲を規制 1 2022/05/20 06:20
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
入力規則のリスト選択
Visual Basic(VBA)
-
ドロップダウンリストの初期表示値の指定
Microsoft ASP
-
ドロップダウンリスト 自動表示したい
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
8
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
エクセルVBAでmeに相当するものは?
Excel(エクセル)
-
11
EXCEL VBAで、EXCELの入力規則でリストに設定された内容をすべて取得したい
Visual Basic(VBA)
-
12
worksheet_changeがループする
PowerPoint(パワーポイント)
-
13
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
14
VBA Constの指定シートのセルを指定する方法
Visual Basic(VBA)
-
15
初期値をIF文で設定した後入力リストで入力を行いたい
Excel(エクセル)
-
16
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
17
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
18
エクセルへのデータの貼付時に書式が反映されない!
Visual Basic(VBA)
-
19
エクセルで複数シートのセルに同じ名前の定義を
Excel(エクセル)
-
20
エクセルでプルダウン選択されたらマクロの処理を実行させる方法
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報