- ベストアンサー
エクセル マクロ データー入力時
現在、勤務表を作成しております。 そこで入力をPCが慣れていない人でも扱えるように シート上にリストボックスを作成 リストクリックすると ↑ {夜勤 日勤 休日 有給 ○~/ //// }←連続記号も入れています。 のようにリストがあり、そこで選択して 勤務表のセル上にてクリックすると 上記の記号や文字又は連続記号を挿入させたいです。 色々調べましたが下記の内容で良いのでしょうか? もっと詳しく記述が知りたいです。 お願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'マウスをシート上でクリックしたときの動作 'データ入力や削除など、コンボボックスで選択する Dim S As String Dim S2 As String その後の記述が困難です。 例えば A1~C3までの表に 挿入したい場合の記述を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
リストボックスはコントロールツールボックスで作成されていることが前提になります。 リストボックスの名前をListBox1とします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("A1:C3")) Is Nothing Then Exit Sub End If ActiveCell = ListBox1 End Sub でどうでしょうか。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
私も、質問を読んで何をしたいか良く伝わらない。 >入力をPCが慣れていない人でも扱えるように という割りに質問者もエクセル経験が十分でないのでは。 (1)勤務種別 入力規則をどうして使わないのか。これでマクロの記録をとれば即VBA化できる (2)>上記の記号や文字又は連続記号を挿入させたいです。 どういう内容か。特に連続記号とは >勤務表 この程度で会社機密はあるまい。具体例がかけないのか。 開始時間や、退出時間、などか? テキストボックスやエクセルの「セルそのもの」!に入力させるのはどうですか。VBAに興味を持った・できるからとて、コントロール部品の使いすぎやりすぎ無いようにしないと。
お礼
確かにおしゃる通りです。質問が明確では無かったですね。 返事遅れてすいません。
- hallo-2007
- ベストアンサー率41% (888/2115)
質問を読んで感じるのですが コンボボックスではなくて、特定のセルに入力規則でリストを設定してあるのでないでしょうか。 参考までに、A1セルの値が変更された場合に、 変更された値をB2セルに入れる場合は以下のようになります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Range("B2").Value = Target.Value End If End Sub >そこで入力をPCが慣れていない人でも扱えるように ならば、入力をするセル(或いは列、或いは行)に同じような入力規則を設定すればよいと思います。
お礼
ありがとうございました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
何をしたいのか解りませんが、セル入力だけならエクセルの入力規則のリスト機能で可能です。 http://officetanaka.net/excel/function/tips/list.htm#list01
お礼
すいません。質問がわかりずらかったですね。
お礼
返事遅くなりました。すいません ありがとうございました。