アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2000を使っています。
B列に部屋番号、C列に部屋名を入力する表です。

部屋番号が入力(変更)されたら、マクロを実行して部屋名を自動的に入力したいのですが、どうしたらいいでしょうか?

例えば、部屋番号100と入力したら和室、200と入力したらリビングという具合です。
データは一件につき一行です。

宜しくお願い致します

A 回答 (3件)

VBAでVLOOKUPが使えます。


関数でよいのですが、あえてやれば
H1:I4に
101和室A
102和室B
201洋室S
301ホールA
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ext1
If Target.Column = 1 Then
If Target = "" Then
r = Target.Row
Cells(r, "B") = ""
Else
r = Target.Row
Cells(r, "B") = WorksheetFunction.VLookup(Target, Range("h1:i5"), 2, False)
End If
End If
ext1:
End Sub
結果
A列に入力するとして、B列に表示
A列 B列
201洋室S
301ホールA
201洋室S
311
211
Delete、オフコード値などはテスト済みですが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そうですか、VBAで関数を使うという手もありましたね。この方法でも試してみたいと思います。
ありがとうございました。

お礼日時:2006/02/11 21:49

マクロですか・・・


関数のVLOOKUPかHLOOKUPを使う方法が良いのではないでしょうか?

(1)基本になる部屋番号・部屋名のリストを作ります。
このリストは実際に運用している表とは少し離れたところ(例えばF列に部屋番号・G列に部屋名)に作る方がよいです。
(2)部屋名を表示させたい列(B列ですね)を選択し、関数ボタンを押下。検索/行列からVLOOKUPを選択してください。
(3)検索値:検索させるデータ、つまり部屋番号を入力するA列を指定。
 範囲:(1)で作っておいたリスト
 列番号:(1)のリストの何列目に部屋名があるのか。今回は「2」ですね
 検索の型:今回は 「0」 で良いでしょう。

こうすると、A列に部屋番号を入れたら自動的にB列に部屋名を表示するようになります。マクロの必要はないでしょう。
    • good
    • 0
この回答へのお礼

関数を入れてしまうと、消してしまった時に焦る人がいます(笑)
ですから、できるだけワークシート上には関数を書きたくないのです。
保護をかけると、行削除等困ることもでてきますし。
ですから入力したら「あれ?もう入ってる」と感じてもらえるようにしたかったのです。
ありがとうございました。

お礼日時:2006/02/09 19:58

>部屋番号が入力(変更)されたら、マクロを実行して部屋名を自動的に入力したいのですが、どうしたらいいでしょうか?



これをわざわざマクロで?

数式だったら
=if(b1=100,"和室",if(b1=200,"リビング",""))

マクロで
Sheet module に

Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Cells(1, 1)
If Intersect(.Cells, Range("b:b")) Is Nothing Then Exit Sub
Select Case .Value
Case 100
x = "和室"
Case 200
x = "リビング"
End Select
.Offset(, 1).Value = x
End With
End Sub

この回答への補足

すみません。この方法でやってみたいのですが
アクティブセルがA列にあります。

With Target.Cells(1, 1)
If Intersect(.Cells, Range("b:b")) Is Nothing Then Exit Sub
.Offset(, 1).Value = x


以上の3行を修正する必要があると思うのですが
いかがでしょうか?
Intersectがよく分からず困っています。

大変申し訳ありません。宜しくお願い致します。

補足日時:2006/02/09 19:52
    • good
    • 0

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