Excelで、あるセルに入力規則「リスト」を設定しています。
(aaa,bbb,cccが選択できるものとします。)
aaaが選択されている状態から、bbbに選択を変えたいとき、
キーボードから、これらの選択を変える場合、
・Alt+↓
・↓
・Enter
の手順で変更できることを知りました。
この操作を、VBAを使って、ワンクリックでできないか模索中です。
図形を挿入し、そこにマクロを登録して実行を試していますが、
Application.SendKeys ("%({Down}){Down}{Enter}"), True
としてもうまくいきません。
アドバイスを頂けると幸いです。
よろしくお願いします。
主な使用環境
Windows7,Office Professional Plus 2010
No.1ベストアンサー
- 回答日時:
こんばんは。
私の知っている限りでは、SendKeys は使いませんね。
SendKeys は、位置が定まらないからです。子Window を取るとか、セル位置情報で、SendKeys を送ろうと考える人もいるとは思いますが、sどうも、位置決めができないようで、私は、そういう方法は見たことがありません。もしかしたら、UWSC なら可能なのかもしれません。
予め値がわかっている場合は、バカにされたと思うかもしれませんが、直接、セルに
Range("A1").Value = "bbb"
としてしてしまいます。
そうではないという時には、以下のようなスタイルになります。
Cells(1) としているのは、入力規則のセルが、複数ある時があるからです。他の方法もあるのかもしれませんが、私が覚えているのはこのような古典的スタイルです。一応、常識的なエラー処置はしたつもりが、一部余計なものもあるかもしれません。
Const SEL As Long = 1 '選択番号
この部分をワークシート上などに置いてもよいと思います。
'//
Sub TestMacro1()
Dim rngCnd As Variant
Dim myList As Variant
Const SEL As Long = 1 '選択番号
On Error Resume Next
Set rngCnd = ActiveCell.SpecialCells(xlCellTypeAllValidation).Cells(1)
If Err <> 0 Then MsgBox "入力規則セルが見つかりません。", vbExclamation: Exit Sub
On Error GoTo 0
If TypeName(rngCnd) = "Range" Then
myList = Mid(rngCnd.Validation.Formula1, 2)
End If
If Range(myList).Rows.Count >= SEL And SEL > 0 Then
rngCnd.Value = Range(myList).Cells(SEL).Value
Else
MsgBox "その選択は出来ません。", vbExclamation
End If
End Sub
ご回答ありがとうございました。
エラー回避まで作成頂き、助かります。
>予め値がわかってるxxx
のコメントを参照し、リストに用いている、ワークシート内のリスト範囲から
直接値を入れる方法で解決しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excelのプルダウンメニューの内容を人によって可変する方法 2 2023/03/28 14:52
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Excel(エクセル) Excel ドロップダウンリスト(入力規則)に関してです データの入力規則で元データ79000行のド 3 2023/07/17 10:06
- Excel(エクセル) ipadのエクセルでキャラの選択をしたい。 1 2022/09/21 08:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのテーブル上のセルの保護...
-
エクセルでエンターを押すと隣...
-
名簿の漢字名を関数で半角カナ...
-
EXCEL 連動したドロップダウン...
-
【エクセル】入力規則のプルダ...
-
EXCELで縦の行全てに一括して文...
-
Excelで相対度数を求めたいので...
-
Excel入力規則とVLOOKUPの組み...
-
一つのセル内でVLOOKUPで抽出し...
-
エクセルで空白に自動で文字を...
-
エクセルで行の一番上にセルに...
-
エクセルで、複数の同一内容の...
-
エクセルのsheet1をsheet2に反...
-
エクセルのオートフィル機能で...
-
Excel ホイールの拡大縮小でマ...
-
エクセルで年を1年ずつ増やすや...
-
エクセルの数式を等間隔にオー...
-
指定した行に飛ぶ事って可能で...
-
エクセルで休日の「休」という...
-
飛んでいるセル値の平均値の求め方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名簿の漢字名を関数で半角カナ...
-
Excelのテーブル上のセルの保護...
-
EXCEL 連動したドロップダウン...
-
EXCELで縦の行全てに一括して文...
-
エクセルでエンターを押すと隣...
-
【エクセル】入力規則のプルダ...
-
エクセルで行の一番上にセルに...
-
エクセルで決められた合計にな...
-
エクセルで空白に自動で文字を...
-
EXCELのNOW()関数の...
-
空白部分に連番の数字を記入し...
-
Excelでセルを次の行の先頭の列...
-
エクセルで休日の「休」という...
-
エクセルのオートフィル機能で...
-
オートフィルを列すべて(一番...
-
エクセルで年を1年ずつ増やすや...
-
文字列を含む連続データの入力
-
A1 B1 A2 B2 A3 B3 の順に入力...
-
エクセル・・色の着いたセルの...
-
Excel入力規則とVLOOKUPの組み...
おすすめ情報