電子書籍の厳選無料作品が豊富!

会社で、毎月リストを作成するのに誰かExcelに詳しい人が作ったファイルをフォーマットとしてずっと使っているのですが、同じようなファイルを新規で作って欲しいと先輩から頼まれました。
(はっきり言って、かなりムチャ振りです)


そのファイルというのは、

(1)リスト入力というシート  と他に
(2)品番マスター
(3)店名マスターなどといったシートがあり

(1)リスト入力というシートに毎月品番などの注文リストを入力するのですが、

(1)リスト入力シートのA列ー品番のセルをダブルクリックすると(2)品番マスターシートにとび、

そのシートの中から品番を選ぶと(1)リスト入力のA列に入力されるというものです。


入力を選択式にするなら入力規則などの方法があると思いますが、先輩から、ドロップダウンがだらだら長くなるのがイヤなので、今使っているファイルのような感じの選択式にして欲しいと言われました。



そこで、Excelの本を調べたり、その使っているファイルをいろいろ調べてみたのですが、私はExcelはそこそこ使える程度でしかないので、これってマクロ使ってるのかなぁ?ぐらいしかわからないのです。

ファイルを見た感じとしては、どこを探しても記録されたマクロは見当たらず、ひょっとしたらあまりいろいろいじられないように、マクロを非表示にしてあるようなのかしらと思うのですが、そもそもこういう選択式にしてあるファイルを他で見たことがないので、マクロを使っているかどうかも実はよく判っていません。


ど素人がとんでもない質問をしている自覚はありますが、先輩命令では逆らえず、とっても困ってます。

自分でも本などを調べて勉強いたしますので、どなたかお判りの方、やり方だけでも教えていただけたら大変助かります。

よろしくお願いします。

A 回答 (2件)

シートは、リスト 店名 品名 の三シートが有るものとします。



標準モジュール

Option Explicit
Public myRange As Range

リストシート シートモジュール
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Set myRange = Target
Select Case Target.Column
Case Is = 1 'A列
Sheets("品名").Activate
Case Is = 3 'C列
Sheets("店名").Activate
Case Is = 5 'E列

Case Else
Set myRange = Nothing
End Select
End Sub

品名シート シートモジュール
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If myRange Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
Cancel = True
myRange.Value = Target.Value
Sheets("リスト").Activate
Set myRange = Nothing
End Sub

店名シート シートモジュール
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If myRange Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
Cancel = True
myRange.Value = Target.Value
Sheets("リスト").Activate
Set myRange = Nothing
End Sub
    • good
    • 0
この回答へのお礼

詳しく教えていただいて、ありがとうございます。

こんなに詳しく教えていただいて、大変お手数をおかけしてしまったと申し訳ないですが、やりたかったことができそうな気がしてきました。

早速試してみます。

お礼日時:2011/08/01 22:36

>ファイルを見た感じとしては、どこを探しても記録されたマクロは見当たらず、ひょっとしたらあまりいろいろいじられないように、マクロを非表示にしてあるようなのかしらと思うのですが、そもそもこういう選択式にしてあるファイルを他で見たことがないので、マクロを使っているかどうかも実はよく判っていません。



ご質問内容はダブルクリックで作動するイベントマクロで対応しているように見えます(「マクロ」からは表示されません)。
そのシートのシート名を右クリックして「コードの表示」をしてみてください。

>ど素人がとんでもない質問をしている自覚はありますが、先輩命令では逆らえず、とっても困ってます。

先輩が希望するようなブックを作成するには、少なくともVBAの基本部分が理解できていないと作成できないと思うので、もし期限がある仕事なら正直に現状を話されて、時間の余裕もらうように対応をされたほうが良いと思います。

また、サンプルコードを提示してほしいなら、ご質問の際に具体的なシートのレイアウトを提示して、わからない部分をポイントを絞って質問されたほうが良いと思います。
    • good
    • 0
この回答へのお礼

具体的な対応方法をありがとうございます。

どういう機能で作ってあるかもよくわかっていなかったので、とても助かりました。

早速コードの表示を試してみます。

お礼日時:2011/08/01 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!