A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
入力規則のリストに、ユーザー定義関数は使えないんじゃなかったかなーと思います。
[名前の定義]経由でも『元の値はエラーと判断されます..』状況です。
..と、思ったんですけど、シートを経由して[名前の定義]を使えば何とかなるかな..と。
でもかなりトリッキーな手法です。
1)まずテスト値をセット。
例えばレジストリの"VB and VBA Program Setting"配下にテスト値を設定します。
Sub test()
SaveSetting "MyMacro", "Main", "Data", "a,b,c"
End Sub
#後で掃除してくださいね。
2)ダミーシートを追加し、"dummy"という名前をつける。
3)標準モジュールにFunction追加。
Function GetTestData() As Range
Dim r As Range
Dim s
s = Split(GetSetting("MyMacro", "Main", "Data"), ",")
Set r = Sheets("dummy").Range("A1").Resize(, UBound(s) + 1)
r.Value = s
Set GetTestData = r
End Function
この内容は、カンマ区切り文字列のレジストリテスト値を読み込んで
Splitで分割し、"dummy"シートのA1:C1に値を書き込むというものです。
4)[名前の定義]を設定する。
名前: LIST
参照範囲: =GetTestData()
5)任意のセルに入力規則リスト設定。
元の値:= LIST
『元の値はエラーと判断されます..』メッセージが出るけど無視。
GetTestDataの戻り値をRangeにし、シートと[名前の定義]を経由する事で無理矢理設定します。
シート経由というのが引っ掛かりますが、まあ、非表示にしておくという手も。
GetTestDataの中で"dummy"シートに書きこんでますから、ワークシート関数としては使えません。
それに、入力規則リストにアクセスする度にGetTestDataが走りますから
"dummy"シートも都度書き換わります。
あまり現実的ではないような気がしますね。
#もしかしたらこんなトリッキーな方法でなくても可能なんですかね?
#ご存知の方いらっしゃるかもしれませんのでしばらく待ってみてください。
ユーザー定義関数にこだわらなくてもいい場合は
Workbook_Openイベントなどで"dummy"シートに書き出したほうが遥かにラクです。
>#後で掃除してくださいね。
の分でテストキーの削除。
Sub test2()
Dim s As String
s = GetSetting("MyMacro", "Main", "Data")
If Len(s) > 0 Then
DeleteSetting "MyMacro", "Main", "Data"
End If
End Sub
回答、有難うございます。
早速やってみましたが、シートを経由するのが、ちょっと辛いですね
せめて、「名前の定義」だけで出来れば良いのですが...
もう少し、待ってみます。
有難うございます
No.2
- 回答日時:
リストボタン(ボタンをクリックすると)を作る方法ですね!
※ 指定セル(ここでは B3)をクリックすると セルの右側にリストボタン(▼)が現れ
リストボタンをクリックすると 設定されているリスト(複数のデーター)が表示され
適応するテーターをクリックして入力する方法
この事であれば、簡単です。
添付画像を見ながら設定してください
1) リスト元(H1..H4)を入力します。
H2=空白 (空白データーは必要と思います)
H3=AAA (1個目)
H4=BBB (2個目)
H5=CCC (3個目)
2) セル B3 をクリック
3) メニューバーより データー ⇒ 入力規則 ⇒ 設定 タブ を選択
入力値の種類 ▼ をクリックして リスト を選択
元の値 枠の右側 赤い矢印をクリック
セル H2 をクリック
SHIFT キーを押しながら セル H5 をクリック
データー入力規則の窓を閉じて 「OK」 をクリック
これで設定完了
4) セル B3 をクリックして セル右側の リストボタン(▼)をクリックして
リスト表示をして 適応するリストを選択して クリック
5) 複数のセルに適応したいのであれば
複写ポインター(設定されたセルの右下の小さな○)を目的の方向へドラッグしてください
以上
回答、有難うございます
それを直接、ユーザー定義関数でやりたいのです。
つまり、VBAマクロで、
Public Function GetTestData()
:
(処理は省略)
:
End Function
と、作成したものを
メニューバーよりデータ⇒入力規則⇒設定で「入力値の種類」を「リスト」を選択して
さらに「元の値」に「=GetTestData()」とやりたいのです。
このままやると、エラーになりリストにも表示されないので、どのようなVBAマクロを作ればいいのでしょうか?
No.1
- 回答日時:
もう少し 具体的に 何がしたいのかを 教えてください
どのような 入力 規則を したいのでしょう~
VBA でプログラムすれば どんな ことでも適用できますが・・・
■質問
メニューバー から データー → 入力規則 → 入力値の種類を「ユーザー定義」二変更して
数式の枠に 入力する方法で しているのでしょうか?
ツール → マクロ → Visual Basic Editor (VBA)を選択して プログラムとして記述すれば
問題は、解決できると思います。
でも 少し勉強しないと 無理かも
どのように したいのかが 解かればアドバイスも 可能ですが・・・
VBAの詳しいことは 参考URLを見てください。
参考URL:http://excelvba.pc-users.net/index.html
回答有難うございます。
メニューバー から データー → 入力規則 → 入力値の種類を「ユーザー定義」ではなく、
メニューバー から データー → 入力規則 → 入力値の種類を「リスト」でやりたいのです。
「ユーザー定義」に記述するようなユーザー定義関数や、
セルに記述するようなユーザー定義関数は作成できるのですが、
リストの「元の値」に入力できるような関数が作れなくて、困っています。
ご存知だったら、お教えください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) データ入力規則リスト 空白を無視 3 2022/07/13 15:11
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) 別シートの表の値を参照したい 2 2022/03/30 15:11
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excel ドロップダウンリスト(入力規則)に関してです データの入力規則で元データ79000行のド 3 2023/07/17 10:06
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
EXCELをバッチコマンドで起動したとき、引数を渡せますか
その他(プログラミング・Web制作)
-
シートが保護されている状態で、セルを選択した時に表示されるメッセージ
Visual Basic(VBA)
-
-
4
Excel 条件によって入力禁止にする
Excel(エクセル)
-
5
【Excel】「データの入力規則」の範囲指定方法
Excel(エクセル)
-
6
ユーザー定義関数に#NAME?が返ってくる
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
エクセルで、入力できる箇所を...
-
エクセル 入力規則のリストボ...
-
エクセルの入力規則で作ったリ...
-
Excel 集計表
-
Excelで同じセルに入力し エン...
-
エクセル逆三角マークで選択項...
-
Excelのリストで1文字目のみを...
-
Excelでセルに名前を定義したい...
-
エクセルでセルに入力しないと...
-
エクセルでセルのコメントが消...
-
【Excel】ドロップダウンリスト...
-
EXCEL:入力規則の「リスト」は...
-
カンマで区切った数値をCOU...
-
Excel 一番右のセルを参照する
-
書類テンプレートの年月日を揃...
-
表内で、Enterキーで横→行の最...
-
エクセルでセルに入力されたデ...
-
エクセルの入力規則で。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセル逆三角マークで選択項...
-
エクセルでセルにポインタする...
-
シートを保護しても入力規則を...
-
エクセルVBA ブックを閉じる前...
-
【Excel】ドロップダウンリスト...
-
エクセルでセルのコメントが消...
-
エクセル 入力規則のリストボ...
-
Excel 集計表
-
入力規則の入力時メッセージの...
-
エクセルの入力規則で作ったリ...
-
エクセルVBA ユーザーフォーム...
-
ドロップダウンリスト(INDIREC...
-
Excel 自動的に半角英数になり...
-
カンマで区切った数値をCOU...
-
エクセルで、入力制限(プルダ...
-
Excelで同じセルに入力し エン...
-
Excelでセルに名前を定義したい...
-
エクセルで。
-
エクセルのセルの手入力を禁止。
おすすめ情報