Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7320 / 13644 ツリー ←次へ | 前へ→

【39818】入力規則のリスト Hiro 06/7/1(土) 23:27 質問[未読]
【39821】Re:入力規則のリスト kobasan 06/7/1(土) 23:58 回答[未読]
【39823】Re:入力規則のリスト kobasan 06/7/2(日) 0:08 発言[未読]
【39832】Re:入力規則のリスト Hiro 06/7/2(日) 10:13 お礼[未読]
【39833】Re:入力規則のリスト kobasan 06/7/2(日) 10:57 発言[未読]
【39834】Re:入力規則のリスト Hiro 06/7/2(日) 11:07 お礼[未読]

【39818】入力規則のリスト
質問  Hiro  - 06/7/1(土) 23:27 -

引用なし
パスワード
   L列に データ → 入力規則 → 入力値の種類 → リストで
(挿入 → 名前 → 作成にてリストで表示されるアイテム作成)
作成したリストをL列のセルを選択したときにリストがドロップダウン
されるようにしたいのですが、(Alt+↓と同じ動作)
Worksheet_Activate イベントに記述すればと思い、調べてみたのですが
それらしきものが見つかりませんでした。それともコードでは出来ないの
でしょうか?
ご回答よろしくお願いいたします。

【39821】Re:入力規則のリスト
回答  kobasan  - 06/7/1(土) 23:58 -

引用なし
パスワード
   ▼Hiro さん今晩は。

C1に入力規則を指定している場合、これでできます。
使用するシートモジュールに貼り付けてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = Range("C1").Address Then
  SendKeys "%{down}"  'リストをdown表示
  End If
End Sub


>L列に データ → 入力規則 → 入力値の種類 → リストで
>(挿入 → 名前 → 作成にてリストで表示されるアイテム作成)
>作成したリストをL列のセルを選択したときにリストがドロップダウン
>されるようにしたいのですが、(Alt+↓と同じ動作)
>Worksheet_Activate イベントに記述すればと思い、調べてみたのですが
>それらしきものが見つかりませんでした。それともコードでは出来ないの
>でしょうか?
>ご回答よろしくお願いいたします。

【39823】Re:入力規則のリスト
発言  kobasan  - 06/7/2(日) 0:08 -

引用なし
パスワード
   >>L列に

を見落としていたので

>  If Target.Address = Range("C1").Address Then



  If Not Intersect(Target, Range("L:L")) Is Nothing Then

としてください。

【39832】Re:入力規則のリスト
お礼  Hiro  - 06/7/2(日) 10:13 -

引用なし
パスワード
   ▼kobasan さん:
早速のご回答ありがとう御座います。
おかげさまで思った通りの動作を得ることが出来ました。

調べていた中で

>  If Not Intersect(Target, Range("L:L")) Is Nothing Then

の構文を以下のように書いても同様な動作を得られたのですが、

If Target.Column = 12 Then

動作上どのような違いがあるのかわかりません。
もしよろしければ、教えていただけないでしょうか?

【39833】Re:入力規則のリスト
発言  kobasan  - 06/7/2(日) 10:57 -

引用なし
パスワード
   Hiro さんおはようございます。

>>  If Not Intersect(Target, Range("L:L")) Is Nothing Then
>
>の構文を以下のように書いても同様な動作を得られたのですが、
>
>If Target.Column = 12 Then
>
>動作上どのような違いがあるのかわかりません。
>もしよろしければ、教えていただけないでしょうか?

どちらも、TargetがL列にあるかを調べています。
分からないことがあれば、VBEのヘルブを利用するといいです。

以下ヘルブの引用です。

Intersect メソッド
複数のセル範囲の共有セル範囲を表す Range オブジェクトを返します。

expression.Intersect(Arg1, Arg2, ...)

expression  省略可能です。Application オブジェクトを返すオブジェクト式を指定します。

Arg1, Arg2, ...  必ず指定します。セル範囲 (Range オブジェクト) の名前を指定します。複数の Range オブジェクトを指定する必要があります。

使用例
次の使用例は、シート 1 にある 2 つの名前付きセル範囲 rg1 と rg2 の共有セル範囲を選択します。共有セル範囲がない場合は、メッセージを表示します。

Worksheets("Sheet1").Activate
Set isect = Application.Intersect(Range("rg1"), Range("rg2"))
If isect Is Nothing Then
  MsgBox "共通部分がありません。"
End If

【39834】Re:入力規則のリスト
お礼  Hiro  - 06/7/2(日) 11:07 -

引用なし
パスワード
   ▼kobasan さん:
おはよう御座います。
ご丁寧にありがとう御座います。
IntersectでHELPを調べると一致する項目がなかったので
お聞きしました。
Not Intersectではいろいろな項目が出てきました。
ありがとう御座いました。

7320 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free